public static function doesHaveProgram($kurs_id) { /** * @var Kurs $kurs */ $kurs = Kurs::find()->joinWith('razdelyKursaRel')->joinWith('kimRel')->joinWith('umkRel')->joinWith('kontroliruyushihKursaRel')->joinWith('temyDiplomnihRabotRel')->where(['kurs.id' => $kurs_id])->one(); if ($kurs->annotaciya != null or $kurs->aktualnost != null or $kurs->cel != null or $kurs->zadachi != null or $kurs->zadachi != null or $kurs->planiruemyeRezultaty != null or $kurs->formaItogovojAttestacii != null or $kurs->harakteristikaNovojKvalifikacii != null or $kurs->trebovaniya_k_urovnyu_podgotovki != null or $kurs->formaObucheniya != null or $kurs->informacionnyeUsloviya != null or $kurs->kadrovyeUsloviya != null or $kurs->uchebnometodicheskieUsloviya != null or $kurs->tehnicheskieUsloviya != null or $kurs->itogovayaAttestaciya != null or $kurs->rezhimZanyatij != null or $kurs->spisokLiteratury != null or $kurs->chasyItogovojAttestacii != null or $kurs->opisanieItogovojAttestacii != null or $kurs->nedelyaItogovojAttestacii != null or $kurs->harakteristikaNovojKvalifikacii != null or $kurs->sostaviteli != null or $kurs->recenzenti != null or $kurs->itogovayaAttestaciyaTekst != null or count($kurs->razdelyKursaRel) > 0 or count($kurs->kimRel) > 0 or count($kurs->umkRel) > 0 or count($kurs->kontroliruyushihKursaRel) > 0 or count($kurs->temyDiplomnihRabotRel) > 0) { return true; } else { return false; } }
public function actionCopyProgram() { Yii::$app->response->format = Response::FORMAT_JSON; $from = Yii::$app->request->post('from'); $to = Yii::$app->request->post('to'); $response = new JsResponse(); $transaction = \Yii::$app->db->beginTransaction(); try { if (Kurs::doesHaveProgram($to)) { Kurs::deleteProgram($to); } /** * @var Kurs $from_kurs * @var Kurs $to_kurs */ //$from_kurs = Kurs::findOne($from); $from_kurs = Kurs::find()->joinWith('kimRel')->joinWith('umkRel')->joinWith('kontroliruyushihKursaRel')->joinWith('temyDiplomnihRabotRel')->joinWith('razdelyKursaRel.podrazdelyKursaRel.temyRel')->joinWith('razdelyKursaRel.podrazdelyKursaRel.kimRel')->joinWith('razdelyKursaRel.podrazdelyKursaRel.umkRel')->joinWith('razdelyKursaRel.podrazdelyKursaRel.kontroliruyushihPodrazdelaKursaRel')->joinWith('razdelyKursaRel.podrazdelyKursaRel.temyRel.kimRel')->joinWith('razdelyKursaRel.podrazdelyKursaRel.temyRel.umkRel')->where(['kurs.id' => $from])->one(); //kurs $to_kurs = Kurs::findOne($to); $to_kurs->annotaciya = $from_kurs->annotaciya; $to_kurs->aktualnost = $from_kurs->aktualnost; $to_kurs->cel = $from_kurs->cel; $to_kurs->zadachi = $from_kurs->zadachi; $to_kurs->zadachi = $from_kurs->zadachi; $to_kurs->planiruemyeRezultaty = $from_kurs->planiruemyeRezultaty; $to_kurs->formaItogovojAttestacii = $from_kurs->formaItogovojAttestacii; $to_kurs->harakteristikaNovojKvalifikacii = $from_kurs->harakteristikaNovojKvalifikacii; $to_kurs->trebovaniya_k_urovnyu_podgotovki = $from_kurs->trebovaniya_k_urovnyu_podgotovki; $to_kurs->formaObucheniya = $from_kurs->formaObucheniya; $to_kurs->informacionnyeUsloviya = $from_kurs->informacionnyeUsloviya; $to_kurs->kadrovyeUsloviya = $from_kurs->kadrovyeUsloviya; $to_kurs->uchebnometodicheskieUsloviya = $from_kurs->uchebnometodicheskieUsloviya; $to_kurs->tehnicheskieUsloviya = $from_kurs->tehnicheskieUsloviya; $to_kurs->itogovayaAttestaciya = $from_kurs->itogovayaAttestaciya; $to_kurs->rezhimZanyatij = $from_kurs->rezhimZanyatij; $to_kurs->spisokLiteratury = $from_kurs->spisokLiteratury; $to_kurs->chasyItogovojAttestacii = $from_kurs->chasyItogovojAttestacii; $to_kurs->opisanieItogovojAttestacii = $from_kurs->opisanieItogovojAttestacii; $to_kurs->nedelyaItogovojAttestacii = $from_kurs->nedelyaItogovojAttestacii; $to_kurs->harakteristikaNovojKvalifikacii = $from_kurs->harakteristikaNovojKvalifikacii; $to_kurs->sostaviteli = $from_kurs->sostaviteli; $to_kurs->recenzenti = $from_kurs->recenzenti; $to_kurs->itogovayaAttestaciyaTekst = $from_kurs->itogovayaAttestaciyaTekst; $to_kurs->save(); //temy_diplomnih_rabot foreach ($from_kurs->temyDiplomnihRabotRel as $item) { $new_tema_diplomnoj_raboty = new TemaDiplomnojRabotyKursa(); $new_tema_diplomnoj_raboty->kurs = $to_kurs->id; $new_tema_diplomnoj_raboty->nazvanie = $item->nazvanie; $new_tema_diplomnoj_raboty->save(); } //kim_kurs foreach ($from_kurs->kimRel as $item) { $new_kim_kurs = new KimKursa(); $new_kim_kurs->kim = $item->id; $new_kim_kurs->kurs = $to_kurs->id; $new_kim_kurs->save(); } //umk_kurs foreach ($from_kurs->umkRel as $item) { $new_umk_kurs = new UmkKursa(); $new_umk_kurs->umk = $item->id; $new_umk_kurs->kurs = $to_kurs->id; $new_umk_kurs->save(); } //kontroliruyushie_kursa foreach ($from_kurs->kontroliruyushihKursaRel as $item) { $new_kontroliruyshij_kursa = new KontroliruyuschijKursa(); $new_kontroliruyshij_kursa->kontroliruyuschijFizLico = $item->kontroliruyuschijFizLico; $new_kontroliruyshij_kursa->kurs = $to_kurs->id; $new_kontroliruyshij_kursa->kontroliruyuschijVakansiya = $item->kontroliruyuschijVakansiya; $new_kontroliruyshij_kursa->save(); } //razdels foreach ($from_kurs->razdelyKursaRel as $razdel) { /** * @var RazdelKursa $razdel */ $new_razdel = new RazdelKursa(); $new_razdel->kurs = $to_kurs->id; $new_razdel->nazvanie = $razdel->nazvanie; $new_razdel->nomer = $razdel->nomer; $new_razdel->tip = $razdel->tip; $new_razdel->save(); //podrazdels foreach ($razdel->podrazdelyKursaRel as $podrazdel) { /** * @var PodrazdelKursa $podrazdel */ $new_podrazdel = new PodrazdelKursa(); $new_podrazdel->razdel = $new_razdel->id; $new_podrazdel->forma_kontrolya = $podrazdel->forma_kontrolya; $new_podrazdel->rukovoditel = $podrazdel->rukovoditel; $new_podrazdel->nomer = $podrazdel->nomer; $new_podrazdel->nazvanie = $podrazdel->nazvanie; $new_podrazdel->raschitano_chasov_lekcyj = $podrazdel->raschitano_chasov_lekcyj; $new_podrazdel->raschitano_chasov_praktik = $podrazdel->raschitano_chasov_praktik; $new_podrazdel->raschitano_chasov_srs = $podrazdel->raschitano_chasov_srs; $new_podrazdel->chasy_kontrolya = $podrazdel->chasy_kontrolya; $new_podrazdel->aktualnost = $podrazdel->aktualnost; $new_podrazdel->cel = $podrazdel->cel; $new_podrazdel->zadachi = $podrazdel->zadachi; $new_podrazdel->planiruemye_rezultaty = $podrazdel->planiruemye_rezultaty; $new_podrazdel->mesto_discipliny_v_strukture_programmy = $podrazdel->mesto_discipliny_v_strukture_programmy; $new_podrazdel->informacionnye_usloviya = $podrazdel->informacionnye_usloviya; $new_podrazdel->uchebnometodicheskie_usloviya = $podrazdel->uchebnometodicheskie_usloviya; $new_podrazdel->kadrovye_usloviya = $podrazdel->kadrovye_usloviya; $new_podrazdel->materialnotehnicheskie_usloviya = $podrazdel->materialnotehnicheskie_usloviya; $new_podrazdel->literatura = $podrazdel->literatura; $new_podrazdel->status = $podrazdel->status; $new_podrazdel->nedelya_nachalo = $podrazdel->nedelya_nachalo; $new_podrazdel->nedelya_konec = $podrazdel->nedelya_konec; $new_podrazdel->rukovoditel_vakansiya = $podrazdel->rukovoditel_vakansiya; $new_podrazdel->save(); //podrazdel_kim foreach ($podrazdel->kimRel as $kim) { $new_podrazdel_kim = new KimPodrazdelaKursa(); $new_podrazdel_kim->podrazdelKursa = $new_podrazdel->id; $new_podrazdel_kim->kim = $kim->id; $new_podrazdel_kim->save(); } //podrazdel_umk foreach ($podrazdel->umkRel as $umk) { $new_podrazdel_umk = new UmkPodrazdelaKursa(); $new_podrazdel_umk->podrazdelKursa = $new_podrazdel->id; $new_podrazdel_umk->umk = $umk->id; $new_podrazdel_umk->save(); } //kontroliruyushie_podrazdela_kursa foreach ($podrazdel->kontroliruyushihPodrazdelaKursaRel as $item) { $new_kontroliruyshij_podrazdela = new KontroliruyuschijPodrazdelaKursa(); $new_kontroliruyshij_podrazdela->kontroliruyuschijFizLico = $item->kontroliruyuschijFizLico; $new_kontroliruyshij_podrazdela->podrazdelKursa = $new_podrazdel->id; $new_kontroliruyshij_podrazdela->kontroliruyuschijVakansiya = $item->kontroliruyuschijVakansiya; $new_kontroliruyshij_podrazdela->save(); } //podrazdel_temy foreach ($podrazdel->temyRel as $tema) { /** * @var Tema $tema */ $new_tema = new Tema(); $new_tema->podrazdel = $new_podrazdel->id; $new_tema->tip_raboty = $tema->tip_raboty; $new_tema->forma_kontrolya = $tema->forma_kontrolya; $new_tema->prepodavatel_fiz_lico = $tema->prepodavatel_fiz_lico; $new_tema->nomer = $tema->nomer; $new_tema->nazvanie = $tema->nazvanie; $new_tema->soderzhanie = $tema->soderzhanie; $new_tema->chasy = $tema->chasy; $new_tema->nedelya = $tema->nedelya; $new_tema->prepodavatel_vakansiya = $tema->prepodavatel_vakansiya; $new_tema->save(); //tema_kim foreach ($tema->kimRel as $kim) { $new_tema_kim = new KimTemy(); $new_tema_kim->tema = $new_tema->id; $new_tema_kim->kim = $kim->id; $new_tema_kim->save(); } //tema_umk foreach ($tema->umkRel as $umk) { $new_tema_umk = new UmkTemy(); $new_tema_umk->tema = $new_tema->id; $new_tema_umk->umk = $umk->id; $new_tema_umk->save(); } } } } $transaction->commit(); } catch (Exception $e) { $transaction->rollBack(); $response->type = JsResponse::ERROR; $response->msg = $e->getMessage(); } return $response; }
}], ['format' => 'raw', 'value' => function ($kurs) { /* @var $kurs KursExtended */ $editLinkClass = ''; if ($kurs->statusProgrammy == StatusProgrammyKursa::ZAVERSHENA) { $editLinkClass = ' hidden'; } $result = Html::a('Редактор', ['/kurs/edit', 'id' => $kurs->id], ['class' => 'btn btn-primary' . $editLinkClass]) . Html::tag('p', '', ['class' => $editLinkClass]) . Html::button('Сделать копию', ['class' => 'btn btn-primary', 'ng-click' => 'main.copyProgram(' . $kurs->id . ')']) . Html::tag('p') . Html::button('Удалить программу', ['class' => 'btn btn-primary', 'ng-click' => 'main.deleteProgram(' . $kurs->id . ')']); /* @var $kurs2 Kurs */ $kurs2 = Kurs::findOne($kurs->id); if ($kurs2 && $kurs2->allowsZanyatiyaChange()) { $raspBtn = Html::a('Расписание', ['/upravlenie-kursami/raspisanie/zanyatie', 'kurs' => $kurs->id], ['class' => 'btn btn-primary']); $result .= Html::tag('p') . $raspBtn; } return $result; }]]]); $years = ArrayHelper::map(\app\entities\Kurs::find()->select(['EXTRACT(YEAR FROM plan_prospekt_god) as year'])->distinct()->orderBy('year')->where(['rukovoditel' => Yii::$app->user->fizLico->id])->asArray()->all(), 'year', 'year'); ?> <div id="copying-form" class="copying-form" ng-controller="CopyingController as copying" ng-show="copying.isShow"> <div class="form-group"> <div class="inline-block"> <label for="plan_prospekt_years">Выберите год</label> <?php echo Html::dropDownList('plan_prospekt_years', null, $years, ['id' => 'plan_prospekt_years', 'class' => 'form-control', 'ng-model' => 'copying.year']); ?> </div> <!-- <button ng-click="copying.loadKursy()" class="btn btn-primary inline-block vbottom">Загрузить доступные программы</button>--> <h4 ng-show="copying.kursy[copying.year].length>0">Выберите курс из списка</h4> <div id="plan_prospekts" ng-repeat="kurs in copying.kursy[copying.year]"> <div class="kurs" ng-class="kurs.id == copying.to ? 'chosen_kurs' : ''" ng-click="copying.chooseKurs(kurs.id)"> {{$index+1}}. {{kurs.nazvanie}}
/** * @inheritdoc */ public static function find() { $cols = ['{{kurs}}.*', 'zapisanoSlushatelej' => 'coalesce(count({{slushatel}}.[[id]]),0)', 'isUserZapisan' => self::userZapisanCond(), 'userStatusKursa' => 'kurs_tek_polzovatelya.status']; return parent::find()->select($cols)->joinWith(['slushateliRel' => function ($q) { $q->from(['slushatel' => 'fiz_lico']); }])->joinWith(['kursyFizLicaRel' => function ($q) { $q->from(['kurs_tek_polzovatelya' => 'kurs_fiz_lica'])->onCondition(['kurs_tek_polzovatelya.fiz_lico' => Val::of(Yii::$app->user->fizLico, 'id')]); }])->groupBy(['kurs.id', 'kurs_tek_polzovatelya.id'])->with('rukovoditelRel', 'kategoriiSlushatelejRel'); }