/** * Returns registration's associated scorecard. Creates one if none exists. * * @param boolean $detailed Whether to create hole detail score for scorecard * * return common\models\Scorecard */ public function getScorecard($detailed = false) { if (!($scorecard = $this->getScorecards()->one())) { // Scorecard::findOne(['registration_id'=>$registration->id]) $scorecard = new ScorecardForCompetition(['scorecard_type' => Scorecard::TYPE_COMPETITION, 'registration_id' => $this->id, 'status' => Scorecard::STATUS_OPEN]); $scorecard->save(); if ($detailed) { $scorecard->makeScores(); } } return $scorecard; }
/** * Bulk update status or delete for PJAXed gridview. */ public function actionBulkStatus() { $ids = (array) Yii::$app->request->post('ids'); // Array or selected records primary keys $status = Yii::$app->request->post('status'); if (!$ids) { // Preventing extra unnecessary query return; } foreach (ScorecardForCompetition::find()->andWhere(['id' => $ids])->each() as $r) { $r->status = $status; $r->save(); } }