Example #1
0
 /**
  * Build flight and place registration in it. Create flight if necessary.
  * @return flight_id updated or created
  */
 private function makeTeam($team_str)
 {
     $team_arr = explode('-', $team_str->id);
     // team-123
     $team = Team::findOne($team_arr[1]);
     if (!$team) {
         // need to create it
         $team = new Team();
         $team->name = $team_arr[1];
         $team->save();
         $team->refresh();
     }
     $name = '';
     foreach ($team_str->registrations as $registration_str) {
         $registration_arr = explode('-', $registration_str);
         // registration-456
         if ($registration = Registration::findOne($registration_arr[1])) {
             $registration->team_id = $team->id;
         }
         $registration->save();
         $name .= $registration->golfer->name . ' / ';
     }
     $name = rtrim($name, ' /');
     $team->name = substr($name, 0, 80);
     $team->handicap = $team_str->handicap;
     $team->save();
     return $team->id;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Membership::find();
     $membershipTable = Membership::tableName();
     $teamTable = Team::tableName();
     $playerTable = Player::tableName();
     $ampluaTable = Amplua::tableName();
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['amplua' => function ($query) use($ampluaTable) {
         $query->from(['amplua' => $ampluaTable]);
     }]);
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 20]]);
     // enable sorting for the related columns
     $addSortAttributes = ["team.name", "amplua.name", "player.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$membershipTable}.id" => $this->id, 'command_id' => $this->command_id, 'player_id' => $this->player_id, 'number' => $this->number, 'amplua_id' => $this->amplua_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')]);
     $query->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.name')]);
     $query->andFilterWhere(['like', 'amplua.name', $this->getAttribute('amplua.name')]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Forward::find();
     $forwardTable = Forward::tableName();
     $playerTable = Player::tableName();
     $teamTable = Team::tableName();
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 50], 'sort' => ['defaultOrder' => ['goals' => SORT_DESC, 'penalty' => SORT_DESC]]]);
     // enable sorting for the related columns
     $addSortAttributes = ["player.lastname", "team.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$forwardTable}id" => $this->id, 'goals' => $this->goals, 'penalty' => $this->penalty, 'matches' => $this->matches, 'team_id' => $this->team_id, 'player_id' => $this->player_id, 'season_id' => $this->season_id]);
     $query->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')])->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.lastname')]);
     return $dataProvider;
 }
Example #4
0
 public static function addFlights($competition, $registrations)
 {
     $flight_size = $competition->flight_size ? $competition->flight_size : Competition::FLIGHT_SIZE_DEFAULT;
     $position = Flight::find()->andWhere(['competition_id' => $competition->id])->max('position');
     if (!intval($position) > 0) {
         $position = 0;
     }
     $position++;
     $count = $flight_size;
     // we collect the teams for which we don't have a registration yet
     $team_ids = [];
     foreach ($registrations->each() as $registration) {
         $team_ids[$registration->team_id] = $registration->team_id;
     }
     foreach (Team::find()->andWhere(['id' => $team_ids])->each() as $team) {
         if ($count >= $flight_size) {
             $count = 0;
             $flight = new Flight();
             $flight->position = $position++;
             $flight->save();
             $flight->refresh();
         }
         foreach ($team->getRegistrations()->each() as $registration) {
             $registration->flight_id = $flight->id;
             $registration->save();
         }
         $count++;
     }
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Contract::find();
     $contractTable = Contract::tableName();
     $playerTable = Player::tableName();
     $teamTable = Team::tableName();
     $seasonTable = Season::tableName();
     $ampluaTable = Amplua::tableName();
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['teamFrom' => function ($query) use($teamTable) {
         $query->from(['teamFrom' => $teamTable]);
     }]);
     $query->joinWith(['season' => function ($query) use($seasonTable) {
         $query->from(['season' => $seasonTable]);
     }]);
     $query->joinWith(['amplua' => function ($query) use($ampluaTable) {
         $query->from(['amplua' => $ampluaTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     $addSortAttributes = ["player.lastname", "teamFrom.name", "team.name", "season.name", "amplua.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$contractTable}.id" => $this->id, 'command_id' => $this->command_id, 'season_id' => $this->season_id, 'amplua_id' => $this->amplua_id, 'number' => $this->number, 'command_from_id' => $this->command_from_id, 'year_from' => $this->year_from, 'year_till' => $this->year_till, 'matches' => $this->matches, 'goals' => $this->goals, 'is_active' => $this->is_active, 'debut' => $this->debut, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'teamFrom.name', $this->getAttribute('teamFrom.name')])->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')])->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.lastname')])->andFilterWhere(['like', 'season.name', $this->getAttribute('season.name')])->andFilterWhere(['like', 'amplua.name', $this->getAttribute('amplua.name')]);
     return $dataProvider;
 }
 public function getTeam($reset = false)
 {
     if ($reset || !isset($this->_team)) {
         $this->_team = $this->hasOne(Team::className(), ['id' => 'team_id']);
     }
     return $this->_team;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Tournament::find();
     $tournamentTable = Tournament::tableName();
     $teamTable = Team::tableName();
     $leagueTable = League::tableName();
     $championshipTable = Championship::tableName();
     $seasonTable = Season::tableName();
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['league' => function ($query) use($leagueTable) {
         $query->from(['league' => $leagueTable]);
     }]);
     $query->joinWith(['championship' => function ($query) use($championshipTable) {
         $query->from(['championship' => $championshipTable]);
     }]);
     $query->joinWith(['season' => function ($query) use($seasonTable) {
         $query->from(['season' => $seasonTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 20], 'sort' => ['defaultOrder' => ['points' => SORT_DESC]]]);
     // enable sorting for the related columns
     $addSortAttributes = ["team.name", "league.name", "championship.name", "season.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$tournamentTable}id" => $this->id, 'command_id' => $this->command_id, 'championship_id' => $this->championship_id, 'season_id' => $this->season_id, 'played' => $this->played, 'won' => $this->won, 'draw' => $this->draw, 'lost' => $this->lost, 'goals_for' => $this->goals_for, 'goals_against' => $this->goals_against, 'points' => $this->points, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'fair_play' => $this->fair_play, 'league_id' => $this->league_id]);
     $query->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Transfer::find();
     $transferTable = Transfer::tableName();
     // set up query with relation to `player.lastname`
     $playerTable = Player::tableName();
     // set up query with relation to `teamFrom.name` and `teamTo.name`
     $teamTable = Team::tableName();
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['teamFrom' => function ($query) use($teamTable) {
         $query->from(['teamFrom' => $teamTable]);
     }]);
     $query->joinWith(['teamTo' => function ($query) use($teamTable) {
         $query->from(['teamTo' => $teamTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     // enable sorting for the related columns
     $addSortAttributes = ["player.lastname", "teamFrom.name", "teamTo.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$transferTable}.id" => $this->id, 'season_id' => $this->season_id, 'transfer_type_id' => $this->transfer_type_id, 'player_id' => $this->player_id, 'probability' => $this->probability, 'command_from_id' => $this->command_from_id, 'command_to_id' => $this->command_to_id, 'is_active' => $this->is_active, 'contract_date' => $this->contract_date, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'sum', $this->sum])->andFilterWhere(['like', 'clubs', $this->clubs])->andFilterWhere(['like', 'others', $this->others])->andFilterWhere(['like', 'teamFrom.name', $this->getAttribute('teamFrom.name')])->andFilterWhere(['like', 'teamTo.name', $this->getAttribute('teamTo.name')])->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.lastname')]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = TeamCoach::find();
     $teamCoachTable = TeamCoach::tableName();
     $coachTable = Coach::tableName();
     $teamTable = Team::tableName();
     $seasonTable = Season::tableName();
     $query->joinWith(['coach' => function ($query) use($coachTable) {
         $query->from(['coach' => $coachTable]);
     }]);
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['season' => function ($query) use($seasonTable) {
         $query->from(['season' => $seasonTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     $addSortAttributes = ["coach.name", "team.name", "season.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$teamCoachTable}.id" => $this->id, 'team_id' => $this->team_id, 'season_id' => $this->season_id, 'coach_id' => $this->coach_id, 'is_main' => $this->is_main]);
     $query->andFilterWhere(['like', 'coach.name', $this->getAttribute('coach.name')])->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')])->andFilterWhere(['like', 'season.name', $this->getAttribute('season.name')]);
     return $dataProvider;
 }
 protected function findModel($id)
 {
     if (($model = Team::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 public function getTeam()
 {
     if ($this->_team === false) {
         $this->_team = Team::findOne($this->team_id);
     }
     if ($this->_team === null) {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
     return $this->_team;
 }
Example #12
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Team::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'created_date' => $this->created_date, 'updated_date' => $this->updated_date]);
     $query->andFilterWhere(['like', 'image', $this->image])->andFilterWhere(['like', 'name_en', $this->name_en])->andFilterWhere(['like', 'name_ru', $this->name_ru])->andFilterWhere(['like', 'name_am', $this->name_am])->andFilterWhere(['like', 'sname_en', $this->sname_en])->andFilterWhere(['like', 'sname_ru', $this->sname_ru])->andFilterWhere(['like', 'sname_am', $this->sname_am])->andFilterWhere(['like', 'position_en', $this->position_en])->andFilterWhere(['like', 'position_ru', $this->position_ru])->andFilterWhere(['like', 'position_am', $this->position_am]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Team::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'event_id' => $this->event_id]);
     $query->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'contact', $this->contact]);
     return $dataProvider;
 }
Example #14
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = TeamModel::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['id' => $this->id, 'added_by_id' => $this->added_by_id]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'logo', $this->logo]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Composition::find();
     $compositionTable = Composition::tableName();
     $teamTable = Team::tableName();
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 30]]);
     // enable sorting for the related columns
     $addSortAttributes = ["team.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$compositionTable}.id" => $this->id, 'match_id' => $this->match_id, 'contract_id' => $this->contract_id, 'is_substitution' => $this->is_substitution, 'is_basis' => $this->is_basis, 'number' => $this->number, 'is_captain' => $this->is_captain, 'command_id' => $this->command_id]);
     $query->andFilterWhere(['like', 'contract_type', $this->contract_type])->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')]);
     return $dataProvider;
 }
Example #16
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $teamTable = Team::tableName();
     // set up query with relation to `country.name`
     $countryTable = Country::tableName();
     $query = Team::find();
     $query->joinWith(['country' => function ($query) use($countryTable) {
         $query->from(['country' => $countryTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 20]]);
     // enable sorting for the related columns
     $addSortAttributes = ["country.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$teamTable}.id" => $this->id, 'country_id' => $this->country_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', "{$teamTable}.name", $this->name])->andFilterWhere(['like', 'country.name', $this->getAttribute('country.name')])->andFilterWhere(['like', 'info', $this->info]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Career::find();
     $team = new Team();
     $league = new League();
     $season = new Season();
     $player = new Player();
     $careerTable = Career::tableName();
     $teamTable = Team::tableName();
     $leagueTable = League::tableName();
     $seasonTable = Season::tableName();
     $playerTable = Player::tableName();
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['league' => function ($query) use($leagueTable) {
         $query->from(['league' => $leagueTable]);
     }]);
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['season' => function ($query) use($seasonTable) {
         $query->from(['season' => $seasonTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     $addSortAttributes = ['team.name', 'player.lastname', 'league.name', 'season.name'];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$careerTable}.id" => $this->id, 'player_id' => $this->player_id, 'season_id' => $this->season_id, 'championship_matches' => $this->championship_matches, 'championship_goals' => $this->championship_goals, 'cup_matches' => $this->cup_matches, 'cup_goals' => $this->cup_goals, 'euro_matches' => $this->euro_matches, 'euro_goals' => $this->euro_goals, 'avg_mark' => $this->avg_mark, 'goal_passes' => $this->goal_passes]);
     $query->andFilterWhere(['like', "team.name", $this->getAttribute('team.name')])->andFilterWhere(['like', "player.lastname", $this->getAttribute('player.lastname')])->andFilterWhere(['like', "league.name", $this->getAttribute('league.name')])->andFilterWhere(['like', "season.name", $this->getAttribute('season.name')]);
     return $dataProvider;
 }
Example #18
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTeamGuest()
 {
     return $this->hasOne(Team::className(), ['id' => 'command_guest_id']);
 }
Example #19
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTeam()
 {
     return $this->hasOne(Team::className(), ['id' => 'team_id']);
 }
Example #20
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getWinningTeam()
 {
     return $this->hasOne(Team::className(), ['id' => 'winning_team_id']);
 }
Example #21
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTeamFrom()
 {
     return $this->hasOne(Team::className(), ['id' => 'command_from_id']);
 }
Example #22
0
 /**
  * Returns competition teams, if any
  *
  * @return \yii\db\ActiveQuery
  */
 public function getTeams()
 {
     return $this->hasMany(Team::className(), ['id' => 'team_id'])->viaTable('registration', ['competition_id' => 'id']);
 }
 public function copyToEvent($event_id)
 {
     $old_event = $this->event;
     $new_event = Event::findOne($event_id);
     $time_diff = $new_event->start - $old_event->start - floor(($new_event->start - $old_event->start) / (60 * 60 * 24));
     $new_team = new Team();
     $new_team->attributes = $this->attributes;
     $new_team->name = "Copy of " . $this->name;
     $new_team->event_id = $event_id;
     $new_team->save();
     //Copy shifts
     $old_shifts = $this->shifts;
     foreach ($old_shifts as $old_shift) {
         $new_shift = new Shift();
         $new_shift->attributes = $old_shift->attributes;
         $new_shift->team_id = $new_team->id;
         $new_shift->start_time += $time_diff;
         $new_shift->save();
     }
     return $new_team->id;
 }
 public function actionIndex()
 {
     $event = $this->loadEvent(Yii::$app->params['currentEvent']);
     $dp = new ActiveDataProvider(['query' => Team::find()->where(['event_id' => Yii::$app->params['currentEvent']]), 'pagination' => false]);
     return $this->render('index', ['event' => $event, 'teams' => $dp]);
 }
Example #25
0
$availableTeams = [];
if (!$model->isNewRecord) {
    $team = Team::findOne($model->command_home_id);
    if (isset($team->id)) {
        $availableTeams = [$team->id => $team->name];
    }
}
echo $form->field($model, 'command_home_id')->widget(SelectizeDropDownList::classname(), ['loadUrl' => Url::to(['team/team-list']), 'items' => $availableTeams, 'options' => ['multiple' => false], 'clientOptions' => ['valueField' => 'value', 'labelField' => 'text', 'persist' => false]]);
?>
        </div>
        
        <div class="col-sm-6">
            <?php 
$availableTeams = [];
if (!$model->isNewRecord) {
    $team = Team::findOne($model->command_guest_id);
    if (isset($team->id)) {
        $availableTeams = [$team->id => $team->name];
    }
}
echo $form->field($model, 'command_guest_id')->widget(SelectizeDropDownList::classname(), ['loadUrl' => Url::to(['team/team-list']), 'items' => $availableTeams, 'options' => ['multiple' => false], 'clientOptions' => ['valueField' => 'value', 'labelField' => 'text', 'persist' => false]]);
?>
        </div>
    </div>

    <div class="row">
        <div class="col-sm-3 home-side">
            <?php 
if (isset($model->command_home_id) && isset($model->season_id)) {
    ?>
            <?php 
 public function makeCopy($new_start)
 {
     $new_start += $this->start % (60 * 60 * 24);
     $new_end = $new_start + ($this->end - $this->start);
     $time_diff = $new_start - $this->start - floor(($new_start - $this->start) / (60 * 60 * 24));
     var_dump($time_diff);
     //Clone event
     $new_event = new Event();
     $new_event->attributes = $this->attributes;
     $new_event->formStart = date(self::DATE_FORMAT, $new_start);
     $new_event->formEnd = date(self::DATE_FORMAT, $new_end);
     $new_event->name = "Copy of " . $this->name;
     $new_event->save();
     //Clone teams
     $old_teams = $this->teams;
     foreach ($old_teams as $old_team) {
         $new_team = new Team();
         $new_team->attributes = $old_team->attributes;
         $new_team->event_id = $new_event->id;
         $new_team->save();
         //Clone shifts
         $old_shifts = $old_team->shifts;
         foreach ($old_shifts as $old_shift) {
             $new_shift = new Shift();
             $new_shift->attributes = $old_shift->attributes;
             $new_shift->team_id = $new_team->id;
             $new_shift->start_time += $time_diff;
             $new_shift->save();
         }
     }
     return $new_event->id;
 }
Example #27
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Match::find();
     $championship = new Championship();
     $teamHome = new Team();
     $stadium = new Stadium();
     $arbiter = new Arbiter();
     $championshipPart = new ChampionshipPart();
     $matchTable = Match::tableName();
     $championshipTable = Championship::tableName();
     $championshipPartTable = ChampionshipPart::tableName();
     $teamTable = Team::tableName();
     $stadiumTable = Stadium::tableName();
     $arbiterTable = Arbiter::tableName();
     $query->joinWith(['championship' => function ($query) use($championshipTable) {
         $query->from(['championship' => $championshipTable]);
     }]);
     $query->joinWith(['teamHome' => function ($query) use($teamTable) {
         $query->from(['teamHome' => $teamTable]);
     }]);
     $query->joinWith(['teamGuest' => function ($query) use($teamTable) {
         $query->from(['teamGuest' => $teamTable]);
     }]);
     $query->joinWith(['arbiterMain' => function ($query) use($arbiterTable) {
         $query->from(['arbiterMain' => $arbiterTable]);
     }]);
     $query->joinWith(['arbiterAssistant1' => function ($query) use($arbiterTable) {
         $query->from(['arbiterAssistant1' => $arbiterTable]);
     }]);
     $query->joinWith(['arbiterAssistant2' => function ($query) use($arbiterTable) {
         $query->from(['arbiterAssistant2' => $arbiterTable]);
     }]);
     $query->joinWith(['arbiterAssistant3' => function ($query) use($arbiterTable) {
         $query->from(['arbiterAssistant3' => $arbiterTable]);
     }]);
     $query->joinWith(['arbiterAssistant4' => function ($query) use($arbiterTable) {
         $query->from(['arbiterAssistant4' => $arbiterTable]);
     }]);
     $query->joinWith(['arbiterReserve' => function ($query) use($arbiterTable) {
         $query->from(['arbiterReserve' => $arbiterTable]);
     }]);
     $query->joinWith(['championshipPart' => function ($query) use($championshipPartTable) {
         $query->from(['championshipPart' => $championshipPartTable]);
     }]);
     $query->joinWith(['stadium' => function ($query) use($stadiumTable) {
         $query->from(['stadium' => $stadiumTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10], 'sort' => ['defaultOrder' => ['date' => SORT_DESC]]]);
     // enable sorting for the related columns
     $addSortAttributes = ["championship.name", "teamHome.name", "teamGuest.name", "arbiterMain.name", "arbiterAssistant1.name", "arbiterAssistant2.name", "arbiterAssistant3.name", "arbiterAssistant4.name", "arbiterReserve.name", "championshipPart.name", "stadium.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$matchTable}.id" => $this->id, 'is_visible' => $this->is_visible, 'home_shots' => $this->home_shots, 'guest_shots' => $this->guest_shots, 'home_shots_in' => $this->home_shots_in, 'guest_shots_in' => $this->guest_shots_in, 'home_offsides' => $this->home_offsides, 'guest_offsides' => $this->guest_offsides, 'home_corners' => $this->home_corners, 'guest_corners' => $this->guest_corners, 'home_fouls' => $this->home_fouls, 'guest_fouls' => $this->guest_fouls, 'home_yellow_cards' => $this->home_yellow_cards, 'guest_yellow_cards' => $this->guest_yellow_cards, 'home_red_cards' => $this->home_red_cards, 'guest_red_cards' => $this->guest_red_cards, 'home_goals' => $this->home_goals, 'guest_goals' => $this->guest_goals, 'is_finished' => $this->is_finished, "{$matchTable}.championship_id" => $this->championship_id, "{$matchTable}.season_id" => $this->season_id, "{$matchTable}.league_id" => $this->league_id, "{$matchTable}.command_home_id" => $this->command_home_id, "{$matchTable}.command_guest_id" => $this->command_guest_id]);
     $createdTime = strtotime($this->created_at);
     $startDay = date("Y-m-d 00:00:00", $createdTime);
     $endDay = date("Y-m-d 00:00:00", $createdTime + 60 * 60 * 24);
     if ($this->created_at) {
         $query->andFilterWhere(['between', 'created_at', $startDay, $endDay]);
     }
     $updatedTime = strtotime($this->updated_at);
     $startDay = date("Y-m-d 00:00:00", $updatedTime);
     $endDay = date("Y-m-d 00:00:00", $updatedTime + 60 * 60 * 24);
     if ($this->updated_at) {
         $query->andFilterWhere(['between', 'updated_at', $startDay, $endDay]);
     }
     $date = strtotime($this->date);
     $startDay = date("Y-m-d 00:00:00", $date);
     $endDay = date("Y-m-d 00:00:00", $date + 60 * 60 * 24);
     if ($this->date) {
         $query->andFilterWhere(['between', 'date', $startDay, $endDay]);
     }
     $query->andFilterWhere(['like', 'round', $this->round])->andFilterWhere(['like', 'announcement', $this->announcement])->andFilterWhere(['like', "teamHome.name", $this->getAttribute('teamHome.name')])->andFilterWhere(['like', "teamGuest.name", $this->getAttribute('teamGuest.name')])->andFilterWhere(['like', 'championship.name', $this->getAttribute('championship.name')])->andFilterWhere(['like', 'arbiterMain.name', $this->getAttribute('arbiterMain.name')])->andFilterWhere(['like', 'arbiterAssistant1.name', $this->getAttribute('arbiterAssistant1.name')])->andFilterWhere(['like', 'arbiterAssistant2.name', $this->getAttribute('arbiterAssistant2.name')])->andFilterWhere(['like', 'arbiterAssistant3.name', $this->getAttribute('arbiterAssistant3.name')])->andFilterWhere(['like', 'arbiterAssistant4.name', $this->getAttribute('arbiterAssistant4.name')])->andFilterWhere(['like', 'arbiterReserve.name', $this->getAttribute('arbiterReserve.name')])->andFilterWhere(['like', 'championshipPart.name', $this->getAttribute('championshipPart.name')])->andFilterWhere(['like', 'stadium.name', $this->getAttribute('stadium.name')]);
     return $dataProvider;
 }
Example #28
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTeams()
 {
     return $this->hasMany(Team::className(), ['id' => 'team_id'])->viaTable('{{%video_team}}', ['video_id' => 'id']);
 }
Example #29
0
 public function actionTeam()
 {
     $team = Team::find()->all();
     return $this->render('team', ['team' => $team]);
 }
 /**
  * Vote for selected float answer
  * @param $matchID int
  * @return mixed Json
  */
 public function actionAutogen($matchID)
 {
     $match = \common\models\Match::findOne($matchID);
     if (!isset($match)) {
         throw new NotFoundHttpException('Страница не найдена.');
     }
     if (in_array($match->teamHome->id, \common\models\Team::getTeamsConstants())) {
         $ourTeam = $match->teamHome;
         $opponentTeam = $match->teamGuest;
     } else {
         $ourTeam = $match->teamGuest;
         $opponentTeam = $match->teamHome;
     }
     $basisPlayers = \common\models\Composition::find()->where(['match_id' => $match->id, 'command_id' => $ourTeam->id, 'is_basis' => 1])->all();
     $compositionTable = \common\models\Composition::tableName();
     $matchEventTable = \common\models\MatchEvent::tableName();
     $substitutionPlayers = \common\models\Composition::find()->innerJoin($matchEventTable, "{$matchEventTable}.substitution_id = {$compositionTable}.id")->where([$compositionTable . '.match_id' => $match->id, 'command_id' => $ourTeam->id])->all();
     $teamPlayers = array_merge($basisPlayers, $substitutionPlayers);
     $question = new Question();
     $question->title = 'Оценки игрокам ' . $ourTeam->name . ' в матче с ' . $opponentTeam->name;
     $question->voutes = 0;
     $question->is_active = 1;
     $question->is_float = 1;
     $question->is_multipart = 0;
     $question->mark = 0;
     if ($question->save()) {
         foreach ($teamPlayers as $teamPlayer) {
             $answer = new Question();
             $answer->parent_id = $question->id;
             $answer->title = $teamPlayer->name;
             $answer->mark = 0;
             $answer->save();
         }
     }
     return $this->redirect(['view', 'id' => $question->id]);
 }