/** * @param Tema $tema * @return integer[] */ private function getUnusedChasti($tema) { $chasy = $tema->chasy ?: 2; $chastiCount = ceil($chasy / 2); $chasti = range(1, $chastiCount); $zcts = $tema->getZanyatiya_chastej_tem_rel()->joinWith('zanyatie_rel')->where($this->zanyatieIsUsedCond())->all(); $usedChasti = ArrayHelper::getColumn($zcts, 'chast_temy', false); $result = array_diff($chasti, $usedChasti); sort($result); return $result; }
/** * @param $data * @param $nomer * @param $tema * @param $chastTemy * @param KursForm $kurs * @return array */ private function createZanyatie($data, $nomer, $tema, $chastTemy, $kurs) { $zanyatie = new Zanyatie(); $zct = new ZanyatieChastiTemy(); $zanyatie->data = $data; $zanyatie->nomer = $nomer; $zct->tema = $tema; $zct->chast_temy = $chastTemy; $temaRecord = Tema::findOne($tema); $zanyatie->setDefaultsFromKurs($kurs, $temaRecord); return [$zanyatie, $zct]; }
public function getTema_rel() { return $this->hasOne(Tema::className(), ['id' => 'tema']); }
/** * @return ActiveQuery */ public function getTemy_rel() { return $this->hasMany(Tema::className(), ['id' => 'tema'])->via('zanyatiya_chastej_tem_rel'); }
/** * @return ActiveQuery */ public function getTemy_rel() { return $this->hasMany(Tema::className(), ['podrazdel' => 'id'])->inverseOf('podrazdel_rel'); }