예제 #1
0
 public function beforeSave($insert)
 {
     if (parent::beforeSave($insert)) {
         $this->annotaciya = ApiGlobals::to_trimmed_text($this->annotaciya);
         $this->aktualnost = ApiGlobals::to_trimmed_text($this->aktualnost);
         $this->cel = ApiGlobals::to_trimmed_text($this->cel);
         $this->zadachi = ApiGlobals::to_trimmed_text($this->zadachi);
         $this->planiruemye_rezultaty = ApiGlobals::to_trimmed_text($this->planiruemye_rezultaty);
         $this->informacionnye_usloviya = ApiGlobals::to_trimmed_text($this->informacionnye_usloviya);
         $this->kadrovye_usloviya = ApiGlobals::to_trimmed_text($this->kadrovye_usloviya);
         $this->uchebnometodicheskie_usloviya = ApiGlobals::to_trimmed_text($this->uchebnometodicheskie_usloviya);
         $this->tehnicheskie_usloviya = ApiGlobals::to_trimmed_text($this->tehnicheskie_usloviya);
         $this->spisok_literatury = ApiGlobals::to_trimmed_text($this->spisok_literatury);
         $this->itogovaya_attestaciya = ApiGlobals::to_trimmed_text($this->itogovaya_attestaciya);
         $this->harakteristika_novoj_kvalifikacii = ApiGlobals::to_trimmed_text($this->harakteristika_novoj_kvalifikacii);
         $this->trebovaniya_k_urovnyu_podgotovki = ApiGlobals::to_trimmed_text($this->trebovaniya_k_urovnyu_podgotovki);
         $this->forma_obucheniya = ApiGlobals::to_trimmed_text($this->forma_obucheniya);
         $this->rezhim_zanyatij = ApiGlobals::to_trimmed_text($this->rezhim_zanyatij);
         $this->harakteristika_novogo_vida_deyatelnosti = ApiGlobals::to_trimmed_text($this->harakteristika_novogo_vida_deyatelnosti);
         $this->sostaviteli = ApiGlobals::to_trimmed_text($this->sostaviteli);
         $this->recenzenti = ApiGlobals::to_trimmed_text($this->recenzenti);
         $this->itogovaya_attestaciya_tekst = ApiGlobals::to_trimmed_text($this->itogovaya_attestaciya_tekst);
         return true;
     } else {
         return false;
     }
 }
예제 #2
0
 public function actionCommitEditList()
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     $response = new JsResponse();
     $id = Yii::$app->request->post('id');
     $newNazvanie = Yii::$app->request->post('new_nazvanie');
     $newMinBallPervayaKategoriya = Yii::$app->request->post('new_min_ball_pervaya_kategoriya');
     $newMinBallVisshayaKategoriya = Yii::$app->request->post('new_min_ball_visshay_kategoriya');
     $newMinBallVisshayaKategoriya = $newMinBallVisshayaKategoriya ? $newMinBallVisshayaKategoriya : null;
     $newMinBallPervayaKategoriya = $newMinBallPervayaKategoriya ? $newMinBallPervayaKategoriya : null;
     if ($newNazvanie == '') {
         $response->type = JsResponse::ERROR;
         $response->msg = 'Введите название';
     } else {
         /**
          * @var OtsenochnyjList $otsenochnyjList
          */
         $otsenochnyjList = OtsenochnyjList::findOne($id);
         $otsenochnyjList->nazvanie = ApiGlobals::to_trimmed_text($newNazvanie);
         $otsenochnyjList->minBallPervayaKategoriya = $newMinBallPervayaKategoriya;
         $otsenochnyjList->minBallVisshayaKategoriya = $newMinBallVisshayaKategoriya;
         if (!($otsenochnyjList->validate() and $otsenochnyjList->save())) {
             $response->type = JsResponse::ERROR;
             $response->msg = 'Ошибка! Данные не сохранены';
             $response->data = $otsenochnyjList->save();
         } else {
             $response->data = $otsenochnyjList->toArray();
         }
     }
     return $response;
 }
 public function up()
 {
     $this->createTable('otklonenie_zayavleniya_na_attestaciyu', ['id' => Schema::TYPE_PK, 'nazvanie' => Schema::TYPE_STRING . ' NOT NULL ', 'text' => 'squeezed_text NOT NULL']);
     $this->insert('otklonenie_zayavleniya_na_attestaciyu', ['nazvanie' => 'Бумажный вариант не зарегистрирован', 'text' => \app\globals\ApiGlobals::to_trimmed_text('Бумажный вариант вашего заявления в отделе' . ' аттестации не зарегистрирован. Свяжитесь с ответственным РУО, если ' . 'Ваша образовательная организация относится к городу Улан-Удэ, то ' . 'позвоните в МОЦОКО тел.:45-42-89 или в отдел аттестации по тел.: 44-31-04.')]);
     $this->insert('otklonenie_zayavleniya_na_attestaciyu', ['nazvanie' => 'Отказ в установлении высшей квалификационной категории (не ранее чем через 2 года)', 'text' => \app\globals\ApiGlobals::to_trimmed_text('с 15 июня 2014 г. вступил в силу новый порядок ' . 'проведения аттестации педагогических работников организаций, ' . 'осуществляющих образовательную деятельность, утвержденный ' . 'приказом Минобрнауки РФ № 276 от 7 апреля 2014 года. На основании ' . 'утвержденного приказа заявления о проведении аттестации в целях ' . 'установления высшей квалификационной категории по должности, по ' . 'которой аттестация будет проводиться впервые, подаются ' . 'педагогическими работниками не ранее чем через два года после ' . 'установления по этой должности первой квалификационной категории.')]);
     $this->insert('otklonenie_zayavleniya_na_attestaciyu', ['nazvanie' => 'Отказ в установлении квалификационной категории', 'text' => \app\globals\ApiGlobals::to_trimmed_text('с 15 июня 2014 г. вступил в силу новый порядок проведения аттестации' . ' педагогических работников организаций, осуществляющих ' . 'образовательную деятельность, утвержденный приказом Минобрнауки ' . 'РФ № 276 от 7 апреля 2014 года. После прохождения аттестационных ' . 'процедур, если Вам было отказано в установлении квалификационной ' . 'категории, то по новому  порядку аттестации Ваше заявление ' . 'принимается не раннее чем через год  с даты принятия решения аттестационной комиссии.')]);
 }
예제 #4
0
 function beforeSave($insert)
 {
     if (parent::beforeSave($insert)) {
         $this->nazvanie = ApiGlobals::to_trimmed_text($this->nazvanie);
         return true;
     } else {
         return false;
     }
 }
예제 #5
0
 public function actionUpload()
 {
     //        $user_id = $_POST['user_id'];
     //        $folder="data/".$user_id.'/';
     //to do
     $polzovatel_id = ApiGlobals::getPolzovatelId();
     if (!$polzovatel_id) {
         throw new \Exception();
     }
     $folder = "data/" . $polzovatel_id . '/';
     $input_name = 'load_file';
     // var_dump($_FILES);die();
     if (!is_dir($folder)) {
         mkdir($folder, 0750, true);
     }
     if ($uploads = $_FILES[$input_name]) {
         //foreach($uploads['name'] as $upload_id=>$val){
         if ($uploads['error'] == 0) {
             $file_ext = ApiGlobals::get_file_ext($uploads['name']);
             $fname = md5(time() . '_' . ApiGlobals::translit($uploads['name'])) . '.' . $file_ext;
             //md5_file($uploads['tmp_name']).'.'.$file_ext;//md5(time().'_'.ApiGlobals::translit($uploads['name'])).'.'.$file_ext;
             if (move_uploaded_file($uploads['tmp_name'], $folder . '/' . $fname)) {
                 $sql = 'INSERT INTO fajl (vneshnee_imya_fajla, vnutrennee_imya_fajla, vladelec)
                             VALUES (:vneshnee_imya_fajla, :vnutrennee_imya_fajla, :vladelec)';
                 $res = \Yii::$app->db->createCommand($sql)->bindValue(':vneshnee_imya_fajla', $uploads['name'])->bindValue(':vnutrennee_imya_fajla', $fname)->bindValue(':vladelec', $polzovatel_id)->execute();
                 if ($res) {
                     $file_id = \Yii::$app->db->getLastInsertID('fajl_id_seq');
                     $item = ['id' => $file_id, 'vneshnee_imya_fajla' => $uploads['name'], 'vnutrennee_imya_fajla' => $fname, 'vladelec' => $polzovatel_id];
                     $html['html'] = static::file_row('radio', $item, false);
                     //ApiGlobals::file_row('radio',$uploads['name'],$file_id,$_POST['widget_id'],true);
                 }
             }
         }
         //}
     }
     $xhr = $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
     if (!$xhr) {
         $res = json_encode($html);
         $result = '<textarea>' . $res . '</textarea>';
         echo $result;
         die;
     } else {
         $result = $html;
     }
     echo json_encode($result);
 }
예제 #6
0
 public function beforeSave($insert)
 {
     if (parent::beforeSave($insert)) {
         $this->aktualnost = ApiGlobals::to_trimmed_text($this->aktualnost);
         $this->cel = ApiGlobals::to_trimmed_text($this->cel);
         $this->zadachi = ApiGlobals::to_trimmed_text($this->zadachi);
         $this->planiruemye_rezultaty = ApiGlobals::to_trimmed_text($this->planiruemye_rezultaty);
         $this->informacionnye_usloviya = ApiGlobals::to_trimmed_text($this->informacionnye_usloviya);
         $this->kadrovye_usloviya = ApiGlobals::to_trimmed_text($this->kadrovye_usloviya);
         $this->uchebnometodicheskie_usloviya = ApiGlobals::to_trimmed_text($this->uchebnometodicheskie_usloviya);
         $this->materialnotehnicheskie_usloviya = ApiGlobals::to_trimmed_text($this->materialnotehnicheskie_usloviya);
         $this->mesto_discipliny_v_strukture_programmy = ApiGlobals::to_trimmed_text($this->mesto_discipliny_v_strukture_programmy);
         $this->literatura = ApiGlobals::to_trimmed_text($this->literatura);
         return true;
     } else {
         return false;
     }
 }
 public function safeUp()
 {
     $this->execute('CREATE TYPE tip_otraslevogo_soglashenijya AS ENUM
     (\'gos_nagrada\',\'pochetnoe_zvanie\', \'pobeditel_konkursa\', \'uchenaya_stepen\',
     \'podgotovka_prizerov_olimpiad\',\'podgotovka_prizerov_sorevnovanij\',\'provedenie_prof_ekspertizy\');');
     $this->addColumn('otraslevoe_soglashenie', 'tip', 'tip_otraslevogo_soglashenijya NOT NULL');
     $data = ['медаль ордена "За заслуги перед Отечеством"', 'медаль "За вклад в развитие в образование"'];
     foreach ($data as $item) {
         $this->insert('otraslevoe_soglashenie', ['nazvanie' => $item, 'tip' => 'gos_nagrada']);
     }
     $data = ['заслуженный учитель РФ', 'заслуженный деятель науки РБ', 'заслуженный деятель науки РФ', 'заслуженный работник физической культуры РФ', 'заслуженный работник физической культуры РФ', 'отличник физической культуры и спорта РФ', 'отличник физической культуры и спорта РБ', 'отличник просвещения СССР', 'отличник народного просвещения РФ', 'почетный работник общего образования РФ', 'почетный работник среднего профессионального образования РФ', 'народный учитель РБ', 'заслуженный учитель РБ', 'заслуженный работник образования РБ', 'заслуженный работник физической культуры РБ'];
     foreach ($data as $item) {
         $this->insert('otraslevoe_soglashenie', ['nazvanie' => $item, 'tip' => 'pochetnoe_zvanie']);
     }
     $data = ['лучшие учителя России', 'лучшие учителя Бурятии', 'всероссийских конкурсов профессионального мастерства, учредителем которых победители является Министерство образования и науки Российской Федерации и победители Общероссийский профсоюз образования', 'республиканских конкурсов профессионального мастерства'];
     foreach ($data as $item) {
         $this->insert('otraslevoe_soglashenie', ['nazvanie' => $item, 'tip' => 'pobeditel_konkursa']);
     }
     $data = ['доктор архитектуры', 'доктор биологических наук', 'доктор ветеринарных наук', 'доктор военных наук', 'доктор географических наук', 'доктор геолого-минералогических наук', 'доктор искусствоведения', 'доктор исторических наук', 'доктор культурологии', 'доктор медицинских наук', 'доктор педагогических наук', 'доктор политических наук', 'доктор психологических наук', 'доктор социологических наук', 'доктор сельскохозяйственных наук', 'доктор технических наук', 'доктор фармацевтических наук', 'доктор физико-математических наук', 'доктор филологических наук', 'доктор философских наук', 'доктор химических наук', 'доктор экономических наук', 'доктор юридических наук', 'кандидат архитектуры', 'кандидат биологических наук', 'кандидат ветеринарных наук', 'кандидат военных наук', 'кандидат географических наук', 'кандидат геолого-минералогических наук', 'кандидат искусствоведения', 'кандидат исторических наук', 'кандидат культурологии', 'кандидат медицинских наук', 'кандидат педагогических наук', 'кандидат политических наук', 'кандидат психологических наук', 'кандидат социологических наук', 'кандидат сельскохозяйственных наук', 'кандидат технических наук', 'кандидат фармацевтических наук', 'кандидат физико-математических наук', 'кандидат филологических наук', 'кандидат философских наук', 'кандидат химических наук', 'кандидат экономических наук', 'кандидат юридических наук'];
     foreach ($data as $item) {
         $this->insert('otraslevoe_soglashenie', ['nazvanie' => $item, 'tip' => 'uchenaya_stepen']);
     }
     $data = ['международный', 'всероссийский', 'республиканский'];
     foreach ($data as $item) {
         $this->insert('otraslevoe_soglashenie', ['nazvanie' => $item, 'tip' => 'podgotovka_prizerov_olimpiad']);
     }
     $data = ['чемпионат России', 'первенство России', 'спартакиада России', 'чемпионат Европы', 'первенство Европы', 'чемпионат Мира', 'первенство Мира', 'победителей Всероссийских соревнований, проводимых ДРСФСВ МОиН РФ'];
     foreach ($data as $item) {
         $this->insert('otraslevoe_soglashenie', ['nazvanie' => $item, 'tip' => 'podgotovka_prizerov_sorevnovanij']);
     }
     $data = [\app\globals\ApiGlobals::to_trimmed_text('участие в проведении
         проф. экспертизы в составе экспертно-профильных групп при Аттестационной
         комиссии Министерства образования и науки Республики Бурятия не менее трех
         лет в период, предшествующий аттестацииучаствовавшие в проведении
         профессиональной экспертизы в составе экспертно-профильных групп
         при Аттестационной комиссии Министерства образования и науки Республики
         Бурятия не менее трех лет в период, предшествующий аттестации')];
     foreach ($data as $item) {
         $this->insert('otraslevoe_soglashenie', ['nazvanie' => $item, 'tip' => 'provedenie_prof_ekspertizy']);
     }
     $this->createTable('otraslevoe_soglashenie_zayavleniya', ['id' => Schema::TYPE_PK, 'otraslevoe_soglashenie' => Schema::TYPE_BIGINT . ' NOT NULL references otraslevoe_soglashenie(id)', 'zayavlenie_na_attestaciyu' => Schema::TYPE_BIGINT . ' NOT NULL references zayavlenie_na_attestaciyu(id)', 'fajl' => Schema::TYPE_BIGINT . ' NULL references fajl(id)']);
 }
예제 #8
0
 public function init()
 {
     parent::init();
     if (!$this->params) {
         $this->params = ['id' => 'files' . time() . rand(1, 100)];
     } else {
         $this->params = $this->params;
     }
     $sql = 'select * from fajl where vladelec = :user_id';
     $polzovatel_id = ApiGlobals::getPolzovatelId();
     if (isset($this->attribute)) {
         $pureAttrbiute = BaseHtml::getAttributeName($this->attribute);
         $this->params['pureAttribute'] = $pureAttrbiute;
     }
     if (!$polzovatel_id) {
         throw new \Exception();
     }
     if ($res = \Yii::$app->db->createCommand($sql)->bindValue(':user_id', $polzovatel_id)->queryAll()) {
         $files = array();
         foreach ($res as $k => $v) {
             $files[$v['id']] = $v;
         }
         $this->params['files'] = $files;
     } else {
         $this->params['files'] = array();
     }
     if (isset($pureAttrbiute) && isset($this->model[$pureAttrbiute]) && $this->model[$pureAttrbiute] && $this->params['files'][$this->model[$pureAttrbiute]]['vneshnee_imya_fajla']) {
         $this->params['btn-text'] = $this->params['files'][$this->model[$pureAttrbiute]]['vneshnee_imya_fajla'];
     }
     if (!isset($this->params['btn-text'])) {
         $this->params['btn-text'] = 'Выбрать файл';
     }
     $this->params['name'] = isset($this->model) ? Html::getInputName($this->model, $this->attribute) : $this->params['id'];
     //if (!isset($this->params['selected'])) $this->params['selected'] = null;
     //else $this->params['btn-text'] = $this->params['files'][$this->params['selected']]
     //var_dump($this->params['files']);
 }
 public function actionGetZayavleniya()
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $response = new JsResponse();
     $fiz_lico = ApiGlobals::getFizLicoPolzovatelyaId();
     $districts = MunicipalnyjOtvestvennyj::find()->where(['fiz_lico' => $fiz_lico])->select('district_id')->column();
     //var_dump($districts);die();
     $periodId = $_REQUEST['period'];
     //\Yii::$app->request->post('period_id');
     $data = ZayavlenieNaAttestaciyu::find()->joinWith('organizaciyaRel.adresAdresnyjObjektRel')->where(['adresnyj_objekt.id' => $districts])->orWhere(['adresnyj_objekt.roditel' => $districts])->andWhere(['zayavlenie_na_attestaciyu.vremya_provedeniya' => $periodId])->asArray()->all();
     $response->data = $data;
     return $response;
 }
예제 #10
0
                    <td><?php 
        echo $item['tip_rabot'];
        ?>
</td>
                    <td><?php 
        echo $formyZanyatyj[$item['forma']];
        ?>
</td>
                    <td><?php 
        echo $item['familiya'];
        ?>
 <?php 
        echo \app\globals\ApiGlobals::get_first_letter($item['imya']);
        ?>
.<?php 
        echo \app\globals\ApiGlobals::get_first_letter($item['otchestvo']);
        ?>
.</td>
                    <td class="center"><?php 
        echo $item['auditoriya'];
        ?>
</td>
                </tr>
            <?php 
    }
    ?>
        </tbody>
    </table>

<?php 
}
예제 #11
0
 public function actionRpd()
 {
     if (!($id = $_GET['id'])) {
         $id = 2;
     }
     $podrazdel = PodrazdelKursa::find()->where(['id' => $id])->one();
     $kurs_info = RpdGlobals::get_kurs_info_by_podrazdel_id($id);
     $kug = RpdGlobals::get_kug($kurs_info['kurs_id']);
     $max_nedelya = 0;
     $min_nedelya = 0;
     $nedeli = RpdGlobals::get_max_min_weeks($id);
     $min_nedelya = min((int) $podrazdel['nedelya_nachalo'], $nedeli['min']);
     $max_nedelya = max($podrazdel['nedelya_konec'], $nedeli['max']);
     $kug_html = RpdGlobals::get_kug_html($kug, $id, $min_nedelya, $max_nedelya);
     $plan_html = RpdGlobals::get_uchebnii_plan_html($kug, $id);
     $rukovoditel = RpdGlobals::get_rukovoditel_podrazdela($id);
     $rukovoditel_podrazdeleniya = RpdGlobals::get_rukovoditel_podrazdeleniya($id);
     $tip = $kurs_info['kurs_tip'] == 'pp' ? 'профессиональной переподготовки' : 'профессионального обучения';
     $soderzhanie = RpdGlobals::get_rpd_soderzhanie($id);
     $nomer = RpdGlobals::get_nomer_razdela_v_kurse_by_podrazdel($kurs_info['kurs_id'], $id);
     $kims = RpdGlobals::get_rpd_kims($id);
     $lk = $podrazdel['raschitano_chasov_lekcyj'];
     $pr = $podrazdel['raschitano_chasov_praktik'];
     $vsego_chasov = $lk + $pr;
     $pdf = (new Pdf())->api;
     $pdf->title = $podrazdel['nazvanie'];
     $pdf->WriteHTML('<style>
             body {font-family: "Times New Roman", Times, serif;font-size: 10pt;}
             p.myp {text-indent: 2.5em;text-align: justify}
             .indent0 {text-indent: 2.5em;text-align: justify;margin:0}
             .center {text-align:center}
             .tb {border-collapse: collapse}
             .tb td {padding: 5px;border: 1px solid #000}
             .razdel-tr td {font-weight: bold}
             .attestatsiya-tr td {font-weight: bold}
             .bold-tr td {font-weight: bold}
             .bold {font-weight: bold}
             </style>');
     $pdf->WriteHTML('<p style="text-align:center">Министерство образования и науки Республики Бурятия</p>');
     $pdf->WriteHTML('<p style="text-align:center">ГАУ ДПО РБ «Бурятский республиканский институт образовательной политики»</p>');
     $pdf->WriteHTML('<p style="text-align:center">' . ApiGlobals::first_letter_up($kurs_info['podrazdelenie']) . '</p>');
     $pdf->WriteHTML('<div style="text-align:right">УТВЕРЖДАЮ</div>');
     $pdf->WriteHTML('<div style="text-align:right">Проректор по организации</div>');
     $pdf->WriteHTML('<div style="text-align:right">образовательной деятельности</div>');
     $pdf->WriteHTML('<div style="text-align:right">_____________ / ______________</div>');
     $pdf->WriteHTML('<div style="text-align:right">« ____» __________ 20__ г.</div>');
     $pdf->WriteHTML('<div style="position: absolute;top: 40%;left:0;width:100%">
         <p class="center">РАБОЧАЯ ПРОГРАММА</p>
         <p  class="center">учебной дисциплины</p>
         ' . $this->get_empty_row(1) . '
         <p class="center bold">«' . $podrazdel['nazvanie'] . '»</p>
         ' . $this->get_empty_row(1));
     $pdf->WriteHTML('<p style="text-align:center;">' . ($kurs_info['kurs_tip'] == 'po' ? 'основной профессиональной программы' : 'дополнительной профессиональной программы') . '</p>');
     $pdf->WriteHTML('<p class="center">' . $tip . '</p>
         <div style="text-align:center;width: 100%;">
             <p style="width: 60%;margin: 0 auto">«' . mb_strtoupper($kurs_info['kurs_nazvanie'], 'UTF-8') . '»</p>
         </div>
         </div>
     ');
     $pdf->WriteHTML('<htmlpagefooter show-this-page="1" name="first_page_footer">
                      <div style="text-align: center"><p>Улан-Удэ</p><p>' . date('Y') . ' год</p></div>
                     </htmlpagefooter>');
     $pdf->SetHTMLFooterByName('first_page_footer');
     $pdf->AddPage();
     $pdf->WriteHTML('<p>Структурное подразделение: ' . ApiGlobals::first_letter_up($kurs_info['podrazdelenie']) . '</p>');
     $pdf->WriteHTML('<p>Составитель: ' . $rukovoditel['familiya'] . ' ' . ApiGlobals::get_first_letter($rukovoditel['imya']) . '. ' . ApiGlobals::get_first_letter($rukovoditel['otchestvo']) . '., ' . $rukovoditel['dolzhnost'] . '.</p>');
     $pdf->WriteHTML($this->get_empty_row(2));
     $pdf->WriteHTML('<p>Обсуждена на заседании ' . ($kurs_info['podrazdelenie_sokrashennoe_nazvanie'] ? $kurs_info['podrazdelenie_sokrashennoe_nazvanie'] : $kurs_info['podrazdelenie']) . '.</p>');
     $pdf->WriteHTML('<p>Протокол № ___ от «__» _________ 20__ г.</p>');
     $pdf->WriteHTML($this->get_empty_row(2));
     $pdf->WriteHTML('<p>Утверждена на заседании НМС.</p>');
     $pdf->WriteHTML('<p>Протокол № ___ от «__» _________ 20__ г.</p>');
     $pdf->WriteHTML('<htmlpagefooter show-this-page="1" name="numbered_page_footer">
                      <div style="text-align: center">{PAGENO}</div>
                     </htmlpagefooter>');
     $pdf->SetHTMLFooterByName('numbered_page_footer');
     $pdf->AddPage();
     $pdf->WriteHTML('<p style="text-align: center"><b>Пояснительная записка</b></p>');
     $pdf->WriteHTML($this->get_paragraph('<b>Актуальность</b>'));
     $pdf->WriteHTML(ApiGlobals::parse_text($podrazdel['aktualnost']));
     $pdf->WriteHTML($this->get_paragraph('<b>Цель: </b>' . $podrazdel['cel']));
     $pdf->WriteHTML($this->get_paragraph('<b>Задачи:</b>'));
     $pdf->WriteHTML(ApiGlobals::parse_text($podrazdel['zadachi']));
     $pdf->WriteHTML($this->get_paragraph('<b>Планируемые результаты:</b>'));
     $pdf->WriteHTML(ApiGlobals::parse_text($podrazdel['planiruemye_rezultaty']));
     $pdf->WriteHTML($this->get_paragraph('<b>Место дисциплины в структуре программы: </b>' . $podrazdel['mesto_discipliny_v_strukture_programmy']));
     $pdf->WriteHTML($this->get_paragraph('<b>Количество часов: аудиторных ' . $vsego_chasov . ' ч.,</b> из них ' . $lk . ' ч. лекционных, ' . $pr . ' ч. практических.'));
     $pdf->WriteHTML($this->get_paragraph('<b>Организационно-педагогические условия:</b>'));
     $pdf->WriteHTML($this->get_paragraph('<i>Информационные:</i> ' . $podrazdel['informacionnye_usloviya']));
     $pdf->WriteHTML($this->get_paragraph('<i>Учебно-методические:</i> ' . $podrazdel['uchebnometodicheskie_usloviya']));
     $pdf->WriteHTML($this->get_paragraph('<i>Кадровые:</i> ' . $podrazdel['kadrovye_usloviya']));
     $pdf->WriteHTML($this->get_paragraph('<i>Материально-технические:</i> ' . $podrazdel['materialnotehnicheskie_usloviya']));
     $pdf->AddPage();
     $pdf->WriteHTML('<div class="center">Министерство образования и науки Республики Бурятия</div>');
     $pdf->WriteHTML('<div class="center">ГАУ ДПО РБ «Бурятский республиканский институт образовательной политики»</div>');
     $pdf->WriteHTML('<br>');
     $pdf->WriteHTML('<div class="" style="text-align:right">УТВЕРЖДАЮ</div>');
     $pdf->WriteHTML('<div style="text-align:right">Проректор по организации</div>');
     $pdf->WriteHTML('<div style="text-align:right">образовательной деятельности</div>');
     $pdf->WriteHTML('<div style="text-align:right">_____________ / ______________</div>');
     $pdf->WriteHTML('<div class="lh1" style="text-align:right">« ____» __________ 20__ г.</div>');
     $pdf->WriteHTML('<br>');
     $pdf->WriteHTML('<div class="center"><b>УЧЕБНЫЙ ПЛАН</b></div>');
     $pdf->WriteHTML('<div class="center">учебной дисциплины «' . $podrazdel['nazvanie'] . '»</div>');
     if ($kurs_info['kurs_tip'] == 'pp') {
         $pdf->WriteHTML('<div class="center">дополнительной профессиональной программы</div>');
         $pdf->WriteHTML('<div class="center">профессиональной переподготовки</div>');
     }
     if ($kurs_info['kurs_tip'] == 'po') {
         $pdf->WriteHTML('<div class="center">основной профессиональной программы</div>');
         $pdf->WriteHTML('<div class="center">профессионального обучения</div>');
     }
     $pdf->WriteHTML('<div class="center">«' . $kurs_info['kurs_nazvanie'] . '»</div>');
     $pdf->WriteHTML('<br>');
     //if ($kurs_info['kurs_tip'] == 'po') {
     $pdf->WriteHTML('<div class="left">Категория слушателей: ' . $kurs_info['kategorii'] . '</div>');
     $pdf->WriteHTML('<div class="left">Форма обучения: ' . $kurs_info['forma_obucheniya'] . '</div>');
     //}
     $pdf->WriteHTML('<div class="left">Режим занятий: ' . $kurs_info['rezhim_zanyatij'] . '</div>');
     $pdf->WriteHTML('<br>');
     $pdf->WriteHTML($plan_html);
     $pdf->WriteHTML('<p style="text-align:left;">Руководитель курсов: ____________/' . ApiGlobals::get_first_letter($kurs_info['rukovoditel_imya']) . '.' . ApiGlobals::get_first_letter($kurs_info['rukovoditel_otchestvo']) . '. ' . $kurs_info['rukovoditel_familiya'] . '</p>');
     $pdf->WriteHTML('<p style="text-align:left;">Руководитель структурного подразделения: __________/ ' . ApiGlobals::get_first_letter($rukovoditel_podrazdeleniya['imya']) . '.' . ApiGlobals::get_first_letter($rukovoditel_podrazdeleniya['otchestvo']) . '. ' . $rukovoditel_podrazdeleniya['familiya'] . '</p>');
     $pdf->WriteHTML('<p style="text-align:left;">Начальник учебного отдела: ___________/ Л.Е. Халудорова</p>');
     $pdf->AddPage();
     $pdf->WriteHTML('<div class="center">Министерство образования и науки Республики Бурятия</div>');
     $pdf->WriteHTML('<div class="center">ГАУ ДПО РБ «Бурятский республиканский институт образовательной политики»</div>');
     $pdf->WriteHTML('<br>');
     $pdf->WriteHTML('<div class="" style="text-align:right">УТВЕРЖДАЮ</div>');
     $pdf->WriteHTML('<div style="text-align:right">Проректор по организации</div>');
     $pdf->WriteHTML('<div style="text-align:right">образовательной деятельности</div>');
     $pdf->WriteHTML('<div style="text-align:right">_____________ / ______________</div>');
     $pdf->WriteHTML('<div class="lh1" style="text-align:right">« ____» __________ 20__ г.</div>');
     $pdf->WriteHTML('<br>');
     $pdf->WriteHTML('<div class="center"><b>КАЛЕНДАРНЫЙ УЧЕБНЫЙ ГРАФИК</b></div>');
     $pdf->WriteHTML('<div class="center">учебной дисциплины «' . $podrazdel['nazvanie'] . '»</div>');
     if ($kurs_info['kurs_tip'] == 'pp') {
         $pdf->WriteHTML('<div class="center">дополнительной профессиональной программы</div>');
         $pdf->WriteHTML('<div class="center">профессиональной переподготовки</div>');
     }
     if ($kurs_info['kurs_tip'] == 'po') {
         $pdf->WriteHTML('<div class="center">основной профессиональной программы</div>');
         $pdf->WriteHTML('<div class="center">профессионального обучения</div>');
     }
     $pdf->WriteHTML('<div class="center">«' . $kurs_info['kurs_nazvanie'] . '»</div>');
     //        $pdf->WriteHTML('<div class="lh1" style="text-align:center;width: 100%;">
     //                            <p style="font-weight:bold;width: 60%;margin: 0 auto;text-align: center">«'.$kurs['nazvanie'].'»</p>
     //                        </div>');
     $pdf->WriteHTML('<br>');
     $pdf->WriteHTML($kug_html);
     $pdf->WriteHTML('<p style="text-align:left;">Руководитель курсов: ____________/' . ApiGlobals::get_first_letter($kurs_info['rukovoditel_imya']) . '.' . ApiGlobals::get_first_letter($kurs_info['rukovoditel_otchestvo']) . '. ' . $kurs_info['rukovoditel_familiya'] . '</p>');
     $pdf->WriteHTML('<p style="text-align:left;">Руководитель структурного подразделения: __________/ ' . ApiGlobals::get_first_letter($rukovoditel_podrazdeleniya['imya']) . '.' . ApiGlobals::get_first_letter($rukovoditel_podrazdeleniya['otchestvo']) . '. ' . $rukovoditel_podrazdeleniya['familiya'] . '</p>');
     $pdf->WriteHTML('<p style="text-align:left;">Начальник учебного отдела: ___________/ Л.Е. Халудорова</p>');
     $pdf->AddPage();
     $pdf->WriteHTML($this->get_paragraph('Содержание', 'style="font-weight:bold;text-align:center"'));
     $pdf->WriteHTML(RpdGlobals::get_rpd_soderzhanie_html($soderzhanie, $nomer));
     //var_dump($kims);die();
     if ($kims) {
         $pdf->AddPage();
         $pdf->WriteHTML('<div class="center"><b>КОНТРОЛЬНО-ИЗМЕРИТЕЛЬНЫЕ МАТЕРИАЛЫ</b></div>');
         foreach ($kims as $item) {
             if ($item['type'] == 1 or $item['type'] == 3) {
                 $pdf->WriteHTML(RpdGlobals::get_rpd_kim_list_item($item));
             }
         }
     }
     $pdf->AddPage();
     $pdf->WriteHTML($this->get_paragraph('Литература', 'style="font-weight:bold;text-align:center"'));
     $pdf->WriteHTML(ApiGlobals::parse_text($podrazdel['literatura']));
     $pdf->output();
     die;
 }
예제 #12
0
     * @var \app\entities\ObrazovanieDlyaZayavleniyaNaAttestaciyu $item
     */
    $content .= '<li>' . $item->obrazovanieOrganizaciyaRel->nazvanie . ', ' . ApiGlobals::dateToStr($item->dokument_ob_obrazovanii_data, 'Y') . ' г., ' . $item->obrazovanieKvalifikaciyaRel->nazvanie . '</li>';
}
echo '<ul class="double-indent">' . $content . '</ul>';
?>

<p class="paragraph">Сведения о повышении квалификации за последние 5 лет:</p>

<?php 
$content = '';
foreach ($zayavlenie->kursyRel as $item) {
    /**
     * @var \app\entities\ObrazovanieDlyaZayavleniyaNaAttestaciyu $item
     */
    $content .= '<li>' . $item->kursOrganizaciyaRel->nazvanie . ', ' . ApiGlobals::dateToStr($item->dokument_ob_obrazovanii_data, 'Y') . ' г., ' . $item->kurs_chasy . ' ч.' . '</li>';
}
echo '<ul class="double-indent">' . $content . '</ul>';
?>

<table style="width: 100%">
    <tr>
        <td style="text-align: left;" class="indent">
            "<?php 
echo date('d');
?>
" <?php 
echo Months::getMonthName(date('n'), Months::PAD_RODITELNIJ);
?>
 <?php 
echo date('Y');
예제 #13
0
 public function actionAjax()
 {
     $ajax_query = $_POST['ajax_query'];
     $answer = '';
     switch ($ajax_query) {
         case 'add_razdel':
             $kurs_id = $_POST['kurs_id'];
             $nazvanie = $_POST['nazvanie'];
             $type = $_POST['type'];
             $new_nazvanie = $_POST['new_nazvanie'];
             $is_error = false;
             if ($nazvanie == -1) {
                 if (!($nazvanie = KursGlobals::add_razdel_nazvanie($new_nazvanie))) {
                     $is_error = true;
                 }
             }
             if ($is_error) {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Раздел не добавлен. Ошибка при добавлении нового названия';
             } elseif (!KursGlobals::is_razdel_already_added($kurs_id, $nazvanie)) {
                 $sql = 'INSERT INTO razdel_kursa (kurs, nomer, nazvanie,tip) VALUES(:kurs,1,:nazvanie,:tip)';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':kurs', $kurs_id)->bindValue(':nazvanie', $nazvanie)->bindValue(':tip', $type)->execute();
                 if ($res) {
                     $razdel_id = Yii::$app->db->getLastInsertID('razdel_kursa_id_seq');
                     $razdel = KursGlobals::get_razdel_by_id($razdel_id);
                     $answer['html'] = KursGlobals::get_razdel_row($razdel);
                     $answer['nazvanie'] = $nazvanie;
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Ошибка выполнения запроса к базе данных';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Данный раздел уже добавлен в содержание';
             }
             break;
         case 'edit_razdel':
             $razdel_id = $_POST['razdel_id'];
             $nazvanie_id = $_POST['nazvanie_id'];
             $old_nazvanie_id = $_POST['old_nazvanie_id'];
             $kurs_id = $_POST['kurs_id'];
             $type = $_POST['type'];
             $new_nazvanie = $_POST['new_nazvanie'];
             $is_error = false;
             if ($nazvanie_id == -1) {
                 if (!($nazvanie_id = KursGlobals::add_razdel_nazvanie($new_nazvanie))) {
                     $is_error = true;
                 }
             }
             if ($is_error) {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Раздел не изменен. Ошибка при добавлении нового названия';
             }
             if (!KursGlobals::is_razdel_already_added($kurs_id, $nazvanie_id) or $old_nazvanie_id == $nazvanie_id) {
                 $sql = 'UPDATE razdel_kursa SET nazvanie = :nazvanie, tip = :tip where id = :id';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':nazvanie', $nazvanie_id)->bindValue(':id', $razdel_id)->bindValue(':tip', $type)->execute();
                 if ($res) {
                     $razdel = KursGlobals::get_razdel_by_id($razdel_id);
                     $answer['html'] = KursGlobals::get_razdel_row($razdel, StatusProgrammyKursa::REDAKTIRUETSYA, false);
                     $answer['nazvanie'] = $nazvanie_id;
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Ошибка выполнения запроса к базе данных';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Данный раздел уже добавлен в содержание';
             }
             break;
         case 'delete_razdel':
             $razdel_id = $_POST['razdel_id'];
             if (!KursGlobals::is_razdel_have_podrazdels($razdel_id)) {
                 $sql = 'DELETE FROM razdel_kursa WHERE id = :id';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':id', $razdel_id)->execute();
                 if ($res) {
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Раздел не удален. Произошла ошибка при выполнении запроса к базе даных.';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Раздел не удален. Сначала удалите все подразделы данного раздела.';
             }
             break;
         case 'add_podrazdel':
             //добавить подраздел
             $razdel = $_POST['razdel'];
             $name = $_POST['name'];
             $name = ApiGlobals::to_trimmed_text($name);
             $nomer = $_POST['nomer'];
             $rukovoditel = isset($_POST['rukovoditel']) ? $_POST['rukovoditel'] : null;
             $is_vakansiya = null;
             if ($rukovoditel == -1) {
                 $rukovoditel = null;
                 $is_vakansiya = true;
             }
             $lk = isset($_POST['lk']) ? $_POST['lk'] : null;
             if (isset($_POST['pr']) and $_POST['pr']) {
                 $pr = $_POST['pr'];
             } else {
                 $pr = null;
             }
             if (isset($_POST['srs']) and $_POST['srs']) {
                 $srs = $_POST['srs'];
             } else {
                 $srs = null;
             }
             if (isset($_POST['fk']) and $_POST['fk']) {
                 $fk = $_POST['fk'];
             } else {
                 $fk = null;
             }
             $nedelya_nachalo = isset($_POST['nedelya_nachalo']) ? $_POST['nedelya_nachalo'] : null;
             $nedelya_konec = isset($_POST['nedelya_konec']) ? $_POST['nedelya_konec'] : null;
             $chasy_kontrolya = isset($_POST['chasy_kontrolya']) ? $_POST['chasy_kontrolya'] : null;
             if (!$chasy_kontrolya) {
                 $chasy_kontrolya = null;
             }
             if ($fk == -1) {
                 $fk = null;
             }
             $kurs_type = $_POST['kurs_type'];
             $sql = 'INSERT INTO podrazdel_kursa
                     (nazvanie, razdel,nomer,rukovoditel,raschitano_chasov_lekcyj,
                      raschitano_chasov_praktik,raschitano_chasov_srs,forma_kontrolya,
                      nedelya_nachalo,nedelya_konec,rukovoditel_vakansiya,chasy_kontrolya)
                     VALUES (:nazvanie, :razdel,:nomer,:rukovoditel,:lk,
                             :pr,:srs,:fk,:nedelya_nachalo,:nedelya_konec,:is_vakansiya,
                             :chasy_kontrolya)';
             if (Yii::$app->db->createCommand($sql)->bindValue(':nazvanie', $name)->bindValue(':razdel', $razdel)->bindValue(':nomer', $nomer)->bindValue(':rukovoditel', $rukovoditel)->bindValue(':lk', $lk)->bindValue(':pr', $pr)->bindValue(':srs', $srs)->bindValue(':fk', $fk)->bindValue(':nedelya_nachalo', $nedelya_nachalo)->bindValue(':nedelya_konec', $nedelya_konec)->bindValue(':is_vakansiya', $is_vakansiya)->bindValue(':chasy_kontrolya', $chasy_kontrolya)->execute()) {
                 $id = Yii::$app->db->getLastInsertID('podrazdel_kursa_id_seq');
                 $podrazdel = KursGlobals::get_podrazdel_by_id($id);
                 //['id'=>$id,'nazvanie'=>$name,'kf_podrazdel_id'=>null];
                 //$podrazdel['kf_podrazdel_id'] = null;
                 $answer['html'] = KursGlobals::get_podrazdel_row($podrazdel, StatusProgrammyKursa::REDAKTIRUETSYA, false);
                 $answer['res'] = 'done';
                 $answer['df'] = $podrazdel;
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'edit_podrazdel':
             //сохранить изменения подраздела
             $name = $_POST['name'];
             $podrazdel_id = $_POST['podrazdel_id'];
             $rukovoditel = isset($_POST['rukovoditel']) ? $_POST['rukovoditel'] : null;
             $is_vakansiya = null;
             if ($rukovoditel == -1) {
                 $rukovoditel = null;
                 $is_vakansiya = true;
             }
             $lk = isset($_POST['lk']) ? $_POST['lk'] : null;
             if (isset($_POST['pr']) and $_POST['pr']) {
                 $pr = $_POST['pr'];
             } else {
                 $pr = null;
             }
             if (isset($_POST['srs']) and $_POST['srs']) {
                 $srs = $_POST['srs'];
             } else {
                 $srs = null;
             }
             if (isset($_POST['fk']) and $_POST['fk']) {
                 $fk = $_POST['fk'];
             } else {
                 $fk = null;
             }
             $nedelya_nachalo = isset($_POST['nedelya_nachalo']) ? $_POST['nedelya_nachalo'] : null;
             $nedelya_konec = isset($_POST['nedelya_konec']) ? $_POST['nedelya_konec'] : null;
             $chasy_kontrolya = isset($_POST['chasy_kontrolya']) ? $_POST['chasy_kontrolya'] : null;
             if (!$chasy_kontrolya) {
                 $chasy_kontrolya = null;
             }
             if ($fk == -1) {
                 $fk = null;
             }
             $sql = 'UPDATE podrazdel_kursa set nazvanie=:nazvanie, rukovoditel=:rukovoditel,
                             raschitano_chasov_lekcyj = :lk, raschitano_chasov_praktik = :pr,
                             raschitano_chasov_srs = :srs, forma_kontrolya = :fk,
                             nedelya_nachalo = :nedelya_nachalo,
                             nedelya_konec = :nedelya_konec,
                             rukovoditel_vakansiya = :is_vakansiya,
                             chasy_kontrolya = :chasy_kontrolya
                     where id = :id';
             if (Yii::$app->db->createCommand($sql)->bindValue(':nazvanie', $name)->bindValue(':rukovoditel', $rukovoditel)->bindValue(':lk', $lk)->bindValue(':pr', $pr)->bindValue(':srs', $srs)->bindValue(':fk', $fk)->bindValue(':nedelya_nachalo', $nedelya_nachalo)->bindValue(':nedelya_konec', $nedelya_konec)->bindValue(':is_vakansiya', $is_vakansiya)->bindValue(':chasy_kontrolya', $chasy_kontrolya)->bindValue(':id', $podrazdel_id)->execute()) {
                 $podrazdel = KursGlobals::get_podrazdel_by_id($podrazdel_id);
                 $answer['res'] = 'done';
                 $answer['html'] = KursGlobals::get_podrazdel_row($podrazdel, StatusProgrammyKursa::REDAKTIRUETSYA, false);
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'delete_podrazdel':
             //удалить подраздел
             $podrazdel_id = $_POST['podrazdel_id'];
             if (!KursGlobals::is_podrazdel_have_themes($podrazdel_id)) {
                 $sql = 'DELETE FROM podrazdel_kursa where id=:id';
                 if (Yii::$app->db->createCommand($sql)->bindValue(':id', $podrazdel_id)->execute()) {
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['type'] = 'danger';
                     $answer['msg'] = 'Запрос выполнены с ошибкой';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['type'] = 'warning';
                 $answer['msg'] = 'Подраздел не удален. Сначала удалите все темы';
             }
             break;
         case 'add_theme':
             //добавить тему
             $name = $_POST['name'];
             $podrazdel_id = $_POST['podrazdel_id'];
             $vid_rabot = $_POST['vid_rabot'];
             $sotrudnik = $_POST['sotrudnik'];
             $is_vakansiya = null;
             if ($sotrudnik == -1) {
                 $is_vakansiya = true;
                 $sotrudnik = null;
             }
             if (!($soderzhanie = $_POST['soderzhanie'])) {
                 $soderzhanie = null;
             }
             $name = ApiGlobals::to_trimmed_text($name);
             $soderzhanie = ApiGlobals::to_trimmed_text($soderzhanie);
             $chasy = $_POST['chasy'];
             $kurs_type = $_POST['kurs_type'];
             $nomer = $_POST['nomer'];
             $week = $_POST['week'];
             $sql = 'INSERT INTO tema (podrazdel,nazvanie,soderzhanie,tip_raboty,prepodavatel_fiz_lico,nomer,chasy,nedelya,prepodavatel_vakansiya)
                      VALUES (:podrazdel,:nazvanie,:soderzhanie,:tip_raboty,:prepodavatel,:nomer,:chasy,:nedelya,:vakansiya)';
             $errors = '';
             $week_hours = KursGlobals::get_hours_count_per_week($week, $podrazdel_id);
             if (!$name) {
                 $errors .= '<p>Введите название</p>';
             }
             if (!$chasy) {
                 $errors .= '<p>Введите часы</p>';
             }
             if ($week_hours < 54 and $week_hours + $chasy > 54) {
                 $errors .= '<p>Количество часов на одну неделю не должно превышать 54</p>';
             }
             if ($kurs_type == 'pk' and $chasy > 4) {
                 $errors = '<p>Количество часов на одну тему курсов данного типа не должно превышать 4</p>';
             }
             if (KursGlobals::is_podrazdel_var($podrazdel_id)) {
                 $kurs_id = KursGlobals::get_kurs_by_podrazdel($podrazdel_id);
                 $first_podrazdel_count = KursGlobals::get_sum_hours_of_first_var_podrazdel($kurs_id);
                 $cur_podrazdel_hours = KursGlobals::get_sum_hours_of_podrazdel($podrazdel_id);
                 $cur_podrazdel_count = $cur_podrazdel_hours['chasy'] + $chasy;
                 if ($cur_podrazdel_count > $first_podrazdel_count['hours'] and $first_podrazdel_count['podrazdel_id'] != $podrazdel_id) {
                     $errors .= '<p>Количество часов в текущем блоке тем не должно быть больше количества часов первого блока тем вариативной части</p>';
                 }
                 if ($first_podrazdel_count['podrazdel_id'] != $podrazdel_id) {
                     if ($vid_rabot == 1 and $cur_podrazdel_hours['lk'] + $chasy > $first_podrazdel_count['lk']) {
                         $errors .= '<p>Количество часов на лекции в текущем блоке тем не должно быть больше количества часов на лекции первого блока тем вариативной части</p>';
                     }
                     if ($vid_rabot > 1 and $vid_rabot <= 10 and $cur_podrazdel_hours['pr'] + $chasy > $first_podrazdel_count['pr']) {
                         $errors .= '<p>Количество часов на практики в текущем блоке тем не должно быть больше количества часов на практики первого блока тем вариативной части</p>';
                     }
                     if ($vid_rabot == 11 and $cur_podrazdel_hours['srs'] + $chasy > $first_podrazdel_count['srs']) {
                         $errors .= '<p>Количество часов на СРС в текущем блоке тем не должно быть больше количества часов на СРС первого блока тем вариативной части</p>';
                     }
                 }
             }
             if (!ApiGlobals::isEven($chasy)) {
                 $errors .= '<p>Количество часов должно быть кратно 2</p>';
             }
             if (!$errors) {
                 if (Yii::$app->db->createCommand($sql)->bindValue(':podrazdel', $podrazdel_id)->bindValue(':nazvanie', $name)->bindValue(':soderzhanie', $soderzhanie)->bindValue(':tip_raboty', $vid_rabot)->bindValue(':prepodavatel', $sotrudnik)->bindValue(':nomer', $nomer)->bindValue(':chasy', $chasy)->bindValue(':nedelya', $week)->bindValue(':vakansiya', $is_vakansiya, PDO::PARAM_BOOL)->execute()) {
                     $answer['res'] = 'done';
                     $item = KursGlobals::get_theme_by_id(Yii::$app->db->getLastInsertID('tema_id_seq'));
                     $answer['html'] = KursGlobals::get_theme_row($item);
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Тема не добавлена. Произошла ошибка во время выполнения запроса к базе данных';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = $errors;
             }
             break;
         case 'save_edit_theme':
             //редактирование темы
             $theme_id = $_POST['theme_id'];
             $nazvanie = $_POST['nazvanie'];
             if (!($soderzhanie = $_POST['soderzhanie'])) {
                 $soderzhanie = null;
             }
             $vid_rabot = isset($_POST['vid_rabot']) ? $_POST['vid_rabot'] : null;
             $prepodavatel = isset($_POST['prepodavatel']) ? $_POST['prepodavatel'] : null;
             $is_vakansiya = null;
             if ($prepodavatel == -1) {
                 $is_vakansiya = true;
                 $prepodavatel = null;
             }
             $chasy = $_POST['chasy'];
             $podrazdel_id = KursGlobals::get_podrazdel_by_tema($theme_id);
             $kurs_type = $_POST['kurs_type'];
             $week = $_POST['week'];
             $week_hours = KursGlobals::get_hours_count_per_week($week, $podrazdel_id);
             $errors = '';
             if (!$nazvanie) {
                 $errors .= '<p>Введите название</p>';
             }
             if (!$chasy) {
                 $errors .= '<p>Введите часы</p>';
             }
             if ($week_hours < 54 and $week_hours + $chasy > 54) {
                 $errors .= '<p>Количество часов на одну неделю не должно превышать 54</p>';
             }
             if ($kurs_type == 'pk' and $chasy > 4) {
                 $errors .= 'Количество часов на одну тему курсов данного типа не должно превышать 4';
             }
             if (KursGlobals::is_podrazdel_var($podrazdel_id)) {
                 $kurs_id = KursGlobals::get_kurs_by_podrazdel($podrazdel_id);
                 $first_podrazdel_count = KursGlobals::get_sum_hours_of_first_var_podrazdel($kurs_id);
                 $cur_podrazdel_hours = KursGlobals::get_sum_hours_of_podrazdel($podrazdel_id, $theme_id);
                 $cur_podrazdel_count = $cur_podrazdel_hours['chasy'] + $chasy;
                 if ($cur_podrazdel_count > $first_podrazdel_count['hours'] and $first_podrazdel_count['podrazdel_id'] != $podrazdel_id) {
                     $errors .= 'Количество часов в текущем блоке тем не должно быть больше количества часов первого блока тем вариативной части';
                 }
                 if ($first_podrazdel_count['podrazdel_id'] != $podrazdel_id) {
                     if ($vid_rabot == 1 and $cur_podrazdel_hours['lk'] + $chasy > $first_podrazdel_count['lk']) {
                         $errors .= '<p>Количество часов на лекции в текущем блоке тем не должно быть больше количества часов на лекции первого блока тем вариативной части</p>';
                     }
                     if ($vid_rabot > 1 and $vid_rabot <= 10 and $cur_podrazdel_hours['pr'] + $chasy > $first_podrazdel_count['pr']) {
                         $errors .= '<p>Количество часов на практики в текущем блоке тем не должно быть больше количества часов на практики первого блока тем вариативной части</p>';
                     }
                     if ($vid_rabot == 11 and $cur_podrazdel_hours['srs'] + $chasy > $first_podrazdel_count['srs']) {
                         $errors .= '<p>Количество часов на СРС в текущем блоке тем не должно быть больше количества часов на СРС первого блока тем вариативной части</p>';
                     }
                 }
             }
             if ($errors) {
                 $answer['res'] = 'error';
                 $answer['msg'] = $errors;
             } elseif ($nazvanie) {
                 if (ApiGlobals::isEven($chasy)) {
                     $nazvanie = ApiGlobals::to_trimmed_text($nazvanie);
                     $soderzhanie = ApiGlobals::to_trimmed_text($soderzhanie);
                     $sql = 'UPDATE tema
                            set nazvanie = :nazvanie,
                                soderzhanie = :soderzhanie,
                                tip_raboty = :tip_raboty,
                                prepodavatel_fiz_lico = :prepodavatel,
                                chasy = :chasy,
                                nedelya = :nedelya,
                                prepodavatel_vakansiya = :vakansiya
                            where id = :id
                           ';
                     if (Yii::$app->db->createCommand($sql)->bindValue(':nazvanie', $nazvanie)->bindValue(':soderzhanie', $soderzhanie)->bindValue(':tip_raboty', $vid_rabot)->bindValue(':prepodavatel', $prepodavatel)->bindValue(':chasy', $chasy)->bindValue(':id', $theme_id)->bindValue(':nedelya', $week)->bindValue(':vakansiya', $is_vakansiya, PDO::PARAM_BOOL)->execute()) {
                         $answer['res'] = 'done';
                         $item = KursGlobals::get_theme_by_id($theme_id);
                         $answer['html'] = KursGlobals::get_theme_row($item, StatusProgrammyKursa::REDAKTIRUETSYA, false);
                     } else {
                         $answer['res'] = 'error';
                         $answer['msg'] = 'Ошибка! Тема не обновлена. Ошибка в запросе к базе данных';
                     }
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Количество часов должно быть кратно 2';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Введите название';
             }
             break;
         case 'delete_theme':
             //удалить тему
             $theme_id = $_POST['theme_id'];
             $is_have_umk_or_cc = KursGlobals::is_theme_have_umk_or_cc($theme_id);
             if (!$is_have_umk_or_cc) {
                 $sql = 'DELETE FROM tema where id = :id';
                 if (Yii::$app->db->createCommand($sql)->bindValue(':id', $theme_id)->execute()) {
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['type'] = 'danger';
                     $answer['msg'] = 'Ошибка выполнения запроса, тема не удалена!';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['type'] = 'warning';
                 $answer['msg'] = 'Тема не удалена! Сначала удалите все УМК и форму контроля';
             }
             break;
         case 'add_umk':
             // добавить УМК
             $theme_id = $_POST['theme_id'];
             $umk_type = $_POST['umk_type'];
             $file = $_POST['file'];
             $url = $_POST['url'];
             $opisanie = $_POST['opisanie'];
             $tip_kursa = $_POST['tip_kursa'];
             $tip = $_POST['tip'];
             if ($umk_type == 1 and !$file or $umk_type == 2 and !$url) {
                 $answer['res'] = 'nothing';
             } else {
                 $umk_id = KursGlobals::insert_umk($_POST);
                 if ($umk_id) {
                     $sql = 'INSERT INTO umk_temy (tema, umk) VALUES (:tema,:umk)';
                     $res = Yii::$app->db->createCommand($sql)->bindValue(':tema', $theme_id)->bindValue(':umk', $umk_id)->execute();
                     if ($res) {
                         $answer['res'] = 'done';
                         $umk_item = KursGlobals::get_umk_by_id($umk_id);
                         $umk_item['theme_id'] = $theme_id;
                         $umk_item['tip_kursa'] = $tip_kursa;
                         $umk_item['tip'] = $tip;
                         $answer['html'] = KursGlobals::get_umk_row($umk_item);
                     } else {
                         $answer['res'] = 'error';
                         $answer['type'] = 'danger';
                         $answer['msg'] = 'УМК не добален! Ошибка запроса к базе данных!';
                     }
                 } else {
                     $answer['res'] = 'error';
                     $answer['type'] = 'danger';
                     $answer['msg'] = 'УМК не добален! Ошибка запроса к базе данных!';
                 }
             }
             break;
         case 'edit_umk':
             //Редактировать УМК
             $umk_id = $_POST['umk_id'];
             $umk_type = $_POST['umk_type'];
             $file = $_POST['file'];
             $url = $_POST['url'];
             $tip_kursa = $_POST['tip_kursa'];
             $tip = $_POST['tip'];
             if ($umk_type == 1 and !$file or $umk_type == 2 and !$url) {
                 $answer['res'] = 'nothing';
             } else {
                 $res = KursGlobals::update_umk($_POST);
                 if ($res) {
                     $answer['res'] = 'done';
                     $umk_item = KursGlobals::get_umk_by_id($umk_id);
                     $umk_item['tip_kursa'] = $tip_kursa;
                     $umk_item['tip'] = $tip;
                     $answer['html'] = KursGlobals::get_umk_row($umk_item, StatusProgrammyKursa::REDAKTIRUETSYA, false);
                 } else {
                     $answer['res'] = 'error';
                     $answer['type'] = 'danger';
                     $answer['msg'] = 'УМК не изменен! Ошибка запроса к базе данных!';
                 }
             }
             break;
         case 'delete_umk':
             //Удалить УМК
             $umk_id = $_POST['umk_id'];
             $is_error = false;
             $tip = $_POST['tip'];
             if ($tip == 1) {
                 $sql = 'DELETE FROM umk_podrazdela_kursa WHERE umk = :umk ';
             } else {
                 $sql = 'DELETE FROM umk_temy WHERE umk = :umk ';
             }
             $res = Yii::$app->db->createCommand($sql)->bindValue(':umk', $umk_id)->execute();
             if ($res) {
                 if (!KursGlobals::delete_umk($umk_id)) {
                     $is_error = true;
                 }
             } else {
                 $is_error = true;
             }
             if (!$is_error) {
                 $answer['res'] = 'done';
             } else {
                 $answer['res'] = 'error';
                 $answer['type'] = 'danger';
                 $answer['msg'] = 'УМК не удален! Ошибка запроса к базе данных!';
             }
             break;
         case 'save_kf':
             //Добавить форму котроля
             $theme_id = $_POST['theme_id'];
             $forma_kf_id = $_POST['forma_kf_id'];
             $tip_kursa = $_POST['tip_kursa'];
             $sql = 'UPDATE tema set forma_kontrolya = :forma_kontrolya where id=:id';
             if (Yii::$app->db->createCommand($sql)->bindValue(':forma_kontrolya', $forma_kf_id)->bindValue(':id', $theme_id)->execute()) {
                 $answer['res'] = 'done';
                 $kf = KursGlobals::get_kf_by_theme_id($theme_id);
                 $kf['tip_kursa'] = $tip_kursa;
                 $answer['html'] = KursGlobals::get_kf_row($kf);
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Контрольная форма не добавлена!';
             }
             break;
         case 'save_edit_kf':
             //редактировать форму котроля
             $theme_id = $_POST['theme_id'];
             $kf_id = $_POST['kf_id'];
             $tip_kursa = $_POST['tip_kursa'];
             $sql = 'UPDATE tema set forma_kontrolya = :kf where id = :id';
             if (Yii::$app->db->createCommand($sql)->bindValue(':kf', $kf_id)->bindValue(':id', $theme_id)->execute()) {
                 $answer['res'] = 'done';
                 $kf = KursGlobals::get_kf_by_theme_id($theme_id);
                 $kf['tip_kursa'] = $tip_kursa;
                 $answer['html'] = KursGlobals::get_kf_row($kf, StatusProgrammyKursa::REDAKTIRUETSYA, false);
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'delete_kf':
             //удалить контрольную форму
             $theme_id = $_POST['theme_id'];
             $is_have_kim = KursGlobals::is_kf_have_kim($theme_id);
             if (!$is_have_kim) {
                 $sql = 'UPDATE tema set forma_kontrolya = null where id = :id';
                 if (Yii::$app->db->createCommand($sql)->bindValue(':id', $theme_id)->execute()) {
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['type'] = 'danger';
                     $answer['msg'] = 'Ошибка выполнения запроса, тема не удалена!';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['type'] = 'warning';
                 $answer['msg'] = 'Форма контроля не удалена! Сначала удалите КИМы.';
             }
             break;
         case 'save_kim':
             //сохранить КИМ
             $theme_id = $_POST['theme_id'];
             $tip_kursa = $_POST['tip_kursa'];
             $tip = $_POST['tip'];
             $is_error = false;
             $kim_id = KursGlobals::insert_kim($_POST);
             if ($kim_id) {
                 $sql = 'INSERT INTO kim_temy (tema,kim) VALUES(:tema,:kim)';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':tema', $theme_id)->bindValue(':kim', $kim_id)->execute();
                 if (!$res) {
                     $is_error = true;
                 }
             } else {
                 $is_error = true;
             }
             if (!$is_error) {
                 $answer['res'] = 'done';
                 $kim = KursGlobals::get_kim_by_id($kim_id);
                 $kim['tip_kursa'] = $tip_kursa;
                 $kim['tip'] = $tip;
                 $answer['html'] = KursGlobals::get_kim_row($kim);
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'delete_kim':
             //удалить КИМ
             $kim_id = $_POST['kim_id'];
             $tip = $_POST['tip'];
             switch ($tip) {
                 case 1:
                     $sql = 'DELETE FROM kim_podrazdela_kursa WHERE kim = :kim';
                     break;
                 case 2:
                     $sql = 'DELETE FROM kim_temy WHERE kim = :kim';
                     break;
                 case 3:
                     $sql = 'DELETE FROM kim_kursa WHERE kim = :kim';
                     break;
             }
             $res = Yii::$app->db->createCommand($sql)->bindValue(':kim', $kim_id)->execute();
             $is_error = false;
             if ($res) {
                 if (!KursGlobals::delete_kim($kim_id)) {
                     $is_error = true;
                 }
             } else {
                 $is_error = true;
             }
             if (!$is_error) {
                 $answer['res'] = 'done';
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'save_edit_kim':
             //Редактировать КИМ
             $kim_id = $_POST['kim_id'];
             $tip_kursa = $_POST['tip_kursa'];
             $tip = $_POST['tip'];
             if (KursGlobals::update_kim($_POST)) {
                 $answer['res'] = 'done';
                 $kim = KursGlobals::get_kim_by_id($kim_id);
                 $kim['tip_kursa'] = $tip_kursa;
                 $kim['tip'] = $tip;
                 $answer['html'] = KursGlobals::get_kim_row($kim);
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'save_fiak':
             //сохранить Итоговую аттестацию
             $kurs_id = $_POST['kurs_id'];
             $fiak_id = $_POST['fiak_id'];
             $chasy = $_POST['chasy'];
             $opisanie = ApiGlobals::to_trimmed_text($_POST['opisanie']);
             $prepods = isset($_POST['prepods']) ? $_POST['prepods'] : [];
             $week = $_POST['week'];
             //file_put_contents('1.txt',print_r($_POST['prepods'],true));
             if (!$opisanie) {
                 $opisanie = null;
             }
             if (!preg_match('/^\\+?\\d+$/', $chasy)) {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Поле часы должно быть положительным целым числом';
             } else {
                 $sql = 'UPDATE kurs SET
                               forma_itogovoj_attestacii = :fiak_id,
                               chasy_itogovoj_attestacii = :chasy,
                               opisanie_itogovoj_attestacii = :opisanie,
                               nedelya_itogovoj_attestacii = :nedelya
                         WHERE id = :id';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':fiak_id', $fiak_id)->bindValue(':chasy', $chasy)->bindValue(':opisanie', $opisanie)->bindValue(':nedelya', $week)->bindValue(':id', $kurs_id)->execute();
                 if ($res) {
                     $is_error = false;
                     if ($prepods) {
                         $t = Yii::$app->db->beginTransaction();
                         foreach ($prepods as $k => $v) {
                             if ($v == -1) {
                                 $v = null;
                                 $is_vakansiya = true;
                             } else {
                                 $is_vakansiya = null;
                             }
                             $sql = 'INSERT INTO kontroliruyuschij_kursa (kontroliruyuschij_fiz_lico, kurs, kontroliruyuschij_vakansiya)
                                     VALUES (:kontroliruyuschij, :kurs, :vakansiya)';
                             $res = Yii::$app->db->createCommand($sql)->bindValue(':kontroliruyuschij', $v)->bindValue(':kurs', $kurs_id)->bindValue(':vakansiya', $is_vakansiya)->execute();
                             //file_put_contents('1.txt',print_r($res,true));
                             if (!$res) {
                                 $is_error = true;
                                 break;
                             }
                         }
                         if ($is_error) {
                             $t->rollBack();
                         } else {
                             $t->commit();
                         }
                     }
                     if (!$is_error) {
                         $answer['res'] = 'done';
                         $fiak = KursGlobals::get_itogovaya_attestaciya_by_kurs_id($kurs_id);
                         $answer['html'] = KursGlobals::get_fiak_row($fiak);
                     } else {
                         $answer['res'] = 'error';
                         $answer['msg'] = 'Итоговая аттестация добавлена! Возникла ошибка при добавлении списка преподавателей!';
                     }
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Итоговая аттестация не добавлена! Ошибка выполнения запроса к базе данных!';
                 }
             }
             break;
         case 'delete_fiak':
             $kurs_id = $_POST['kurs_id'];
             $sql = 'UPDATE kurs SET forma_itogovoj_attestacii = null, chasy_itogovoj_attestacii=null, nedelya_itogovoj_attestacii = null
                     where id = :id';
             if (!KursGlobals::is_itgovaiya_attestatciya_have_themes_dr($kurs_id)) {
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':id', $kurs_id)->execute();
                 if ($res) {
                     $sql = 'DELETE FROM kontroliruyuschij_kursa where kurs = :kurs';
                     $res = Yii::$app->db->createCommand($sql)->bindValue(':kurs', $kurs_id)->execute();
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['type'] = 'danger';
                     $answer['msg'] = 'Ошибка выполнения запроса к базе данных!';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['type'] = 'warning';
                 $answer['msg'] = 'Сначала удалите все темы дипломных работ';
             }
             break;
         case 'edit_fiak':
             $kurs_id = $_POST['kurs_id'];
             $fiak_id = $_POST['fiak_id'];
             $chasy = $_POST['chasy'];
             $opisanie = ApiGlobals::to_trimmed_text($_POST['opisanie']);
             $prepods = isset($_POST['prepods']) ? $_POST['prepods'] : [];
             $week = $_POST['week'];
             if (!$opisanie) {
                 $opisanie = null;
             }
             if (!ApiGlobals::is_posistive($chasy)) {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Поле часы должно быть положительным целым числом';
             } else {
                 $sql = 'UPDATE kurs SET
                             forma_itogovoj_attestacii = :fiak_id,
                             chasy_itogovoj_attestacii=:chasy,
                             opisanie_itogovoj_attestacii=:opisanie,
                             nedelya_itogovoj_attestacii=:nedelya
                          where id=:id';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':fiak_id', $fiak_id)->bindValue(':chasy', $chasy)->bindValue(':opisanie', $opisanie)->bindValue(':nedelya', $week)->bindValue(':id', $kurs_id)->execute();
                 $is_error = false;
                 if ($res) {
                     $t = Yii::$app->db->beginTransaction();
                     $sql = 'DELETE FROM kontroliruyuschij_kursa where kurs=:kurs';
                     if (Yii::$app->db->createCommand($sql)->bindValue(':kurs', $kurs_id)->execute() !== false) {
                         if ($prepods) {
                             foreach ($prepods as $k => $v) {
                                 if ($v == -1) {
                                     $v = null;
                                     $is_vakansiya = true;
                                 } else {
                                     $is_vakansiya = null;
                                 }
                                 $sql = 'INSERT INTO kontroliruyuschij_kursa (kontroliruyuschij_fiz_lico, kurs,kontroliruyuschij_vakansiya)
                                 VALUES (:kontroliruyuschij, :kurs, :vakanciya)';
                                 $res = Yii::$app->db->createCommand($sql)->bindValue(':kontroliruyuschij', $v)->bindValue(':kurs', $kurs_id)->bindValue(':vakanciya', $is_vakansiya)->execute();
                                 if (!$res) {
                                     $is_error = true;
                                     break;
                                 }
                             }
                         }
                     } else {
                         $is_error = true;
                     }
                     if ($is_error) {
                         $t->rollBack();
                     } else {
                         $t->commit();
                     }
                 }
                 if (!$is_error) {
                     $answer['res'] = 'done';
                     $fiak = KursGlobals::get_itogovaya_attestaciya_by_kurs_id($kurs_id);
                     $answer['html'] = KursGlobals::get_fiak_row($fiak, StatusProgrammyKursa::REDAKTIRUETSYA, false);
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Итоговая аттестация не обновлена! Ошибка запроса к базе данных!';
                 }
             }
             break;
         case 'save_theme_dr':
             $theme_name = ApiGlobals::to_trimmed_text($_POST['theme_name']);
             $kurs_id = $_POST['kurs_id'];
             $sql = 'INSERT INTO tema_diplomnoj_raboty_kursa (kurs, nazvanie) VALUES (:kurs,:nazvanie)';
             $res = Yii::$app->db->createCommand($sql)->bindValue(':kurs', $kurs_id)->bindValue(':nazvanie', $theme_name)->execute();
             if ($res) {
                 $answer['res'] = 'done';
                 $theme_dr_id = Yii::$app->db->getLastInsertID('tema_diplomnoj_raboty_kursa_id_seq');
                 $theme_dr = KursGlobals::get_theme_dr_by_id($theme_dr_id);
                 $answer['html'] = KursGlobals::get_theme_dr_row($theme_dr);
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Тема не добавлена! Ошибка выполнения запроса к базе даных';
             }
             break;
         case 'edit_theme_dr':
             $kurs_id = $_POST['kurs_id'];
             $theme_name = $_POST['theme_name'];
             $theme_dr_id = $_POST['theme_dr_id'];
             $sql = 'UPDATE tema_diplomnoj_raboty_kursa SET nazvanie=:name where id = :id';
             $res = Yii::$app->db->createCommand($sql)->bindValue(':name', $theme_name)->bindValue(':id', $theme_dr_id)->execute();
             if ($res) {
                 $answer['res'] = 'done';
                 $theme_dr = KursGlobals::get_theme_dr_by_id($theme_dr_id);
                 $answer['html'] = KursGlobals::get_theme_dr_row($theme_dr);
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Изменения не сохранены! Произошла ошибка выполнения запроса к базе данных.';
             }
             break;
         case 'delete_theme_dr':
             $theme_dr_id = $_POST['theme_dr_id'];
             $sql = 'DELETE FROM tema_diplomnoj_raboty_kursa where id =:id';
             if (Yii::$app->db->createCommand($sql)->bindValue(':id', $theme_dr_id)->execute()) {
                 $answer['res'] = 'done';
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'add_podrazdel_kf':
             $podrazdel_id = $_POST['podrazdel_id'];
             $chasy = $_POST['chasy'];
             $kf_id = $_POST['kf_id'];
             if ($kf_id == -1) {
                 $kf_id = null;
             }
             $prepods = isset($_POST['prepods']) ? $_POST['prepods'] : [];
             $sql = 'UPDATE podrazdel_kursa SET forma_kontrolya =:kf, chasy_kontrolya =:chasy WHERE id = :id';
             if (ApiGlobals::is_posistive($chasy) and ApiGlobals::isEven($chasy)) {
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':kf', $kf_id)->bindValue(':chasy', $chasy)->bindValue(':id', $podrazdel_id)->execute();
                 if ($res) {
                     $is_error = false;
                     if ($prepods) {
                         $t = Yii::$app->db->beginTransaction();
                         foreach ($prepods as $k => $v) {
                             //file_put_contents('1.txt',$v);
                             if ($v == -1) {
                                 $is_vakansiya = true;
                                 $v = null;
                             } else {
                                 $is_vakansiya = null;
                             }
                             $sql = 'INSERT INTO kontroliruyuschij_podrazdela_kursa (kontroliruyuschij_fiz_lico, podrazdel_kursa, kontroliruyuschij_vakansiya)
                                     VALUES (:kontroliruyuschij, :podrazdel,:vakanciya)';
                             $res = Yii::$app->db->createCommand($sql)->bindValue(':kontroliruyuschij', $v)->bindValue(':podrazdel', $podrazdel_id)->bindValue(':vakanciya', $is_vakansiya)->execute();
                             if (!$res) {
                                 $is_error = true;
                                 break;
                             }
                         }
                         if ($is_error) {
                             $t->rollBack();
                         } else {
                             $t->commit();
                         }
                     }
                     if (!$is_error) {
                         $answer['res'] = 'done';
                         $kf_podrazdela = KursGlobals::get_kf_podrazdela_by_id($podrazdel_id);
                         $answer['html'] = KursGlobals::get_kf_podrazdela_row($kf_podrazdela);
                     } else {
                         $answer['res'] = 'error';
                         $answer['msg'] = 'Произошла ошибка выполнения запроса к базе данных.';
                     }
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Произошла ошибка выполнения запроса к базе данных. ' . $res;
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Количество часов должно быть положительным целым числом кратное 2';
             }
             break;
         case 'edit_podrazdel_kf':
             $podrazdel_id = $_POST['podrazdel_id'];
             $chasy = $_POST['chasy'];
             $kf_id = $_POST['kf_id'];
             if ($kf_id == -1) {
                 $kf_id = null;
             }
             $prepods = isset($_POST['prepods']) ? $_POST['prepods'] : [];
             $sql = 'UPDATE podrazdel_kursa SET forma_kontrolya =:kf, chasy_kontrolya =:chasy WHERE id = :id';
             if (ApiGlobals::is_posistive($chasy) and ApiGlobals::isEven($chasy)) {
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':kf', $kf_id)->bindValue(':chasy', $chasy)->bindValue(':id', $podrazdel_id)->execute();
                 if ($res) {
                     $is_error = false;
                     $t = Yii::$app->db->beginTransaction();
                     $sql = 'DELETE FROM kontroliruyuschij_podrazdela_kursa where podrazdel_kursa = :podrazdel';
                     Yii::$app->db->createCommand($sql)->bindValue(':podrazdel', $podrazdel_id)->execute();
                     foreach ($prepods as $k => $v) {
                         if ($v == -1) {
                             $is_vakansiya = true;
                             $v = null;
                         } else {
                             $is_vakansiya = null;
                         }
                         $sql = 'INSERT INTO kontroliruyuschij_podrazdela_kursa (kontroliruyuschij_fiz_lico, podrazdel_kursa, kontroliruyuschij_vakansiya)
                                     VALUES (:kontroliruyuschij, :podrazdel,:vakanciya)';
                         $res = Yii::$app->db->createCommand($sql)->bindValue(':kontroliruyuschij', $v)->bindValue(':podrazdel', $podrazdel_id)->bindValue(':vakanciya', $is_vakansiya)->execute();
                         if (!$res) {
                             $is_error = true;
                             break;
                         }
                     }
                     if ($is_error) {
                         $t->rollBack();
                         $answer['res'] = 'error';
                         $answer['msg'] = 'Произошла ошибка при добавлении преподавателей';
                     } else {
                         $t->commit();
                         $answer['res'] = 'done';
                         $kf_podrazdela = KursGlobals::get_kf_podrazdela_by_id($podrazdel_id);
                         $answer['html'] = KursGlobals::get_kf_podrazdela_row($kf_podrazdela);
                     }
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Произошла ошибка выполнения запроса к базе данных';
                 }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Количество часов должно быть положительным целым числом кратное 2';
             }
             break;
         case 'delete_podrazdel_kf':
             $podrazdel_id = $_POST['podrazdel_id'];
             $sql = 'UPDATE podrazdel_kursa SET forma_kontrolya=null,chasy_kontrolya=null where id = :id';
             if (Yii::$app->db->createCommand($sql)->bindValue(':id', $podrazdel_id)->execute()) {
                 $sql = 'DELETE FROM kontroliruyuschij_podrazdela_kursa where podrazdel_kursa=:podrazdel';
                 try {
                     Yii::$app->db->createCommand($sql)->bindValue(':podrazdel', $podrazdel_id)->execute();
                     $answer['res'] = 'done';
                 } catch (Exception $e) {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Произошла ошибка выполнения запроса к базе данных (таблица kontroliruyuschij_podrazdela_kursa)' . $e->getMessage();
                 }
                 //                    if (Yii::$app->db->createCommand($sql)->bindValue(':podrazdel',$podrazdel_id)->execute())
                 //                        $answer['res'] = 'done';
                 //                    else{
                 //                        $answer['res'] = 'error';
                 //                        $answer['msg'] = 'Произошла ошибка выполнения запроса к базе данных (таблица kontroliruyuschij_po_podrazdelu_kursa)';
                 //                    }
             } else {
                 $answer['res'] = 'error';
                 $answer['msg'] = 'Произошла ошибка выполнения запроса к базе данных (таблица podrazdel_kursa)';
             }
             break;
         case 'save_podrazdel_kim':
             $podrazdel_id = $_POST['podrazdel_id'];
             $tip_kursa = $_POST['tip_kursa'];
             $tip = $_POST['tip'];
             $is_error = false;
             $kim_id = KursGlobals::insert_kim($_POST);
             if ($kim_id) {
                 $sql = 'INSERT INTO kim_podrazdela_kursa (podrazdel_kursa,kim) VALUES(:pk,:kim)';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':pk', $podrazdel_id)->bindValue(':kim', $kim_id)->execute();
                 if (!$res) {
                     $is_error = true;
                 }
             } else {
                 $is_error = true;
             }
             if (!$is_error) {
                 $answer['res'] = 'done';
                 $kim = KursGlobals::get_kim_by_id($kim_id);
                 $kim['tip_kursa'] = $tip_kursa;
                 $kim['tip'] = $tip;
                 $answer['html'] = KursGlobals::get_kim_row($kim);
             } else {
                 $answer['res'] = 'error';
             }
             break;
         case 'add_podrazdel_umk':
             $podrazdel_id = $_POST['podrazdel_id'];
             $umk_type = $_POST['umk_type'];
             $file = $_POST['file'];
             $url = $_POST['url'];
             $opisanie = $_POST['opisanie'];
             $tip_kursa = $_POST['tip_kursa'];
             $tip = $_POST['tip'];
             if ($umk_type == 1 and !$file or $umk_type == 2 and !$url) {
                 $answer['res'] = 'nothing';
             } else {
                 $umk_id = KursGlobals::insert_umk($_POST);
                 if ($umk_id) {
                     $sql = 'INSERT INTO umk_podrazdela_kursa (podrazdel_kursa, umk) VALUES (:pk,:umk)';
                     $res = Yii::$app->db->createCommand($sql)->bindValue(':pk', $podrazdel_id)->bindValue(':umk', $umk_id)->execute();
                     if ($res) {
                         $answer['res'] = 'done';
                         $umk_item = KursGlobals::get_umk_by_id($umk_id);
                         $umk_item['tip_kursa'] = $tip_kursa;
                         $umk_item['tip'] = $tip;
                         //$umk_item['podrazdel'] = $podrazdel_id;
                         $answer['html'] = KursGlobals::get_umk_row($umk_item);
                     } else {
                         $answer['res'] = 'error';
                         $answer['type'] = 'danger';
                         $answer['msg'] = 'УМК не добален! Ошибка запроса к базе данных!';
                     }
                 } else {
                     $answer['res'] = 'error';
                     $answer['type'] = 'danger';
                     $answer['msg'] = 'УМК не добален! Ошибка запроса к базе данных!';
                 }
             }
             break;
         case 'save_podrazdel_num_order':
             $order = $_POST['order'];
             if ($order) {
                 $t = Yii::$app->db->beginTransaction();
                 $is_error = false;
                 foreach ($order as $k => $v) {
                     $sql = 'UPDATE podrazdel_kursa SET nomer = :nomer WHERE id = :id';
                     $res = Yii::$app->db->createCommand($sql)->bindValue(':nomer', $v['new'])->bindValue(':id', $k)->execute();
                     if (!$res) {
                         $is_error = true;
                         break;
                     }
                 }
                 if (!$is_error) {
                     $t->commit();
                     $answer['res'] = 'done';
                 } else {
                     $t->rollBack();
                     $answer['res'] = 'error';
                     $answer['type'] = 'error';
                     $answer['msg'] = 'Во время сохрарения произошла ошибка. Данные не изменены.ƒ';
                 }
             }
             break;
         case 'save_theme_num_order':
             $order = $_POST['order'];
             if ($order) {
                 $t = Yii::$app->db->beginTransaction();
                 $is_error = false;
                 foreach ($order as $k => $v) {
                     $sql = 'UPDATE tema SET nomer = :nomer WHERE id = :id';
                     $res = Yii::$app->db->createCommand($sql)->bindValue(':nomer', $v['new'])->bindValue(':id', $k)->execute();
                     if (!$res) {
                         $is_error = true;
                         break;
                     }
                 }
                 if (!$is_error) {
                     $t->commit();
                     $answer['res'] = 'done';
                 } else {
                     $t->rollBack();
                     $answer['res'] = 'error';
                     $answer['type'] = 'error';
                     $answer['msg'] = 'Во время сохрарения произошла ошибка. Данные не изменены.ƒ';
                 }
             }
             break;
         case 'check_kurs':
             $kurs_id = $_POST['kurs_id'];
             $is_checked = $_POST['is_checked'];
             $is_error = false;
             $answer['is_set_podpis'] = 1;
             //file_put_contents('1.txt',print_r($_POST,true));
             if ($is_checked) {
                 if (KursGlobals::is_var_razdel_has_error($kurs_id)) {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Количество часов в блоках тем/дисциплинах вариативной части должно быть равным количеству часов первого блока тем/дисциплины вариативной части';
                 } else {
                     //$sql = 'UPDATE kurs SET status_programmy = \'zavershena\' where id = :id';
                     $res = KursGlobals::set_kurs_status($kurs_id, 'zavershena');
                     if ($res) {
                         $answer['res'] = 'done';
                     } else {
                         $answer['res'] = 'error';
                         $answer['msg'] = 'Ошибка выполнения запроса к базе данных. Подпись не сохранена';
                     }
                 }
             } else {
                 //$sql = 'UPDATE kurs SET status_programmy = \'redaktiruetsya\' where id = :id';
                 $res = KursGlobals::set_kurs_status($kurs_id, 'redaktiruetsya');
                 if ($res) {
                     $answer['res'] = 'done';
                 } else {
                     $answer['res'] = 'error';
                     $answer['msg'] = 'Ошибка выполнения запроса к базе данных. Подпись не сохранена';
                 }
             }
             break;
         case 'save_kurs_kim':
             $kurs_id = $_POST['kurs_id'];
             $tip_kursa = $_POST['tip_kursa'];
             $is_error = false;
             $kim_id = KursGlobals::insert_kim($_POST);
             $tip = $_POST['tip'];
             if ($kim_id) {
                 $sql = 'INSERT INTO kim_kursa (kurs,kim) VALUES(:kurs,:kim)';
                 $res = Yii::$app->db->createCommand($sql)->bindValue(':kurs', $kurs_id)->bindValue(':kim', $kim_id)->execute();
                 if (!$res) {
                     $is_error = true;
                 }
             } else {
                 $is_error = true;
             }
             if (!$is_error) {
                 $answer['res'] = 'done';
                 $kim = KursGlobals::get_kim_by_id($kim_id);
                 $kim['tip_kursa'] = $tip_kursa;
                 $kim['tip'] = $tip;
                 $answer['html'] = KursGlobals::get_kim_row($kim);
             } else {
                 $answer['res'] = 'error';
             }
             break;
     }
     return json_encode($answer);
 }
예제 #14
0
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_posobiya') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_posobiya, 'paragraph');
}
if ($zayavlenie->ld_publikacii) {
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_publikacii') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_publikacii, 'paragraph');
}
if ($zayavlenie->ld_prof_konkursy) {
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_prof_konkursy') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_prof_konkursy, 'paragraph');
}
if ($zayavlenie->ld_obshestvennaya_aktivnost) {
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_obshestvennaya_aktivnost') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_obshestvennaya_aktivnost, 'paragraph');
}
if ($zayavlenie->ld_elektronnye_resursy) {
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_elektronnye_resursy') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_elektronnye_resursy, 'paragraph');
}
if ($zayavlenie->ld_otkrytoe_meropriyatie) {
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_otkrytoe_meropriyatie') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_otkrytoe_meropriyatie, 'paragraph');
}
if ($zayavlenie->ld_nastavnik) {
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_nastavnik') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_nastavnik, 'paragraph');
}
if ($zayavlenie->ld_deti_sns) {
    echo ApiGlobals::parse_text($zayavlenie->getAttributeLabel('ld_deti_sns') . ':', 'paragraph bold');
    echo ApiGlobals::parse_text($zayavlenie->ld_deti_sns, 'paragraph');
}
예제 #15
0
파일: index.php 프로젝트: agarb7/mybriop
        if ($v->portfolio) {
            echo $v->portfolioFajlRel->getFileLink('zayavlenie_fajl btn btn-link link-btn');
        }
        ?>
                    </div>
                    <?php 
        echo \app\widgets\Files2Widget::widget(['select_callback' => 'select_portfolio_callback', 'caption' => $v->portfolio ? 'Изменить файл' : 'Выбрать файл', 'options' => ['data-zayavlenie-id' => $v->id, 'style' => 'display:inline-block'], 'file_id' => isset($v->portfolioFajlRel->id) ? $v->portfolioFajlRel->id : -1]);
        ?>
                </td>
            </tr>
            <?php 
        if ($v->na_kategoriyu == \app\enums\KategoriyaPedRabotnika::VYSSHAYA_KATEGORIYA and count($v->otraslevoeSoglashenieZayavleniyaRel) == 0) {
            ?>
            <tr>
                <td><?php 
            echo \app\globals\ApiGlobals::first_letter_up($v->attestacionnoeVariativnoeIspytanie3Rel['nazvanie']);
            ?>
                </td>
                <td>-</td>
                <td>
                    <div class="inline-block"  id="var_isp<?php 
            echo $v->id;
            ?>
">
                        <?php 
            if (isset($v->varIspytanie2FajlRel) and $v->varIspytanie2FajlRel) {
                echo $v->varIspytanie2FajlRel->getFileLink('zayavlenie_fajl btn btn-link link-btn');
            }
            if (isset($v->varIspytanie3FajlRel) and $v->varIspytanie3FajlRel) {
                echo $v->varIspytanie3FajlRel->getFileLink('zayavlenie_fajl btn btn-link link-btn');
            }
예제 #16
0
 public function actionAddKurs()
 {
     $num = isset($_POST['num']) ? $_POST['num'] : '0';
     $model = new Kurs();
     $organizacii = Organizaciya::getVpOrganizaciiWithForFizLico(\app\globals\ApiGlobals::getFizLicoPolzovatelyaId())->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie');
     return json_encode($this->renderAjax('kurs', compact('model', 'num', 'organizacii')));
 }
예제 #17
0
파일: files.php 프로젝트: tsyrya/mybriop
<?php

use app\helpers\Html;
\app\widgets\FileAsset::register($this);
echo $content = Html::button($params['btn-text'], ['class' => 'choose-file-btn form-control btn', 'id' => 'btn' . $params['id'], 'value' => '1', 'type' => 'button', 'onclick' => "choose_file('{$params['id']}')"]);
echo '<input type="hidden" id="' . $params['id'] . '" name="' . $params['name'] . '">';
$files = '';
foreach ($params['files'] as $k => $v) {
    if (isset($model) && $model->{$params}['pureAttribute'] == $v['id']) {
        $is_checked = true;
    } else {
        $is_checked = false;
    }
    $files .= \app\globals\ApiGlobals::file_row('radio', $v['vneshnee_imya_fajla'], $v['id'], $params['id'], $is_checked);
}
if (!$files) {
    $files = '\\';
}
$files_from = '<div class="dark_fon hidden" tabindex="10" onkeydown="darkKeyDown(event,\\\'' . $params['id'] . '\\\')" id="' . $params['id'] . '_form">\\
         <div class="add_files_form">\\
              <div class="file_add_section">\\
                <form id="add_files' . $params['id'] . '"  method="POST" action="" enctype="multipart/form-data">\\
                    <label for="' . $params['id'] . '_input" id="lable' . $params['id'] . '" class="add-file-button btn btn-primary">Загрузить файл</label>\\
                    <input onchange="change_file' . $params['id'] . '()" type="file" class="file-input" id="' . $params['id'] . '_input" name="' . $params['id'] . '_input[]">\\
                    <div class="myprogress hidden" id="progress' . $params['id'] . '">\\
                        <div class="bar"></div>\\
                        <div class="percent">0%</div >\\
                    </div>\\
                </form>\\
              </div>\\
              <div class="center_files_form">\\
 public function actionGetRabotnikiKomissii()
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $rabotniki = [];
     if ($komissiya = $_REQUEST['komissiya']) {
         $sql = 'SELECT rak.id,fl.familiya,fl.imya,fl.otchestvo,
                    fl.id as fiz_lico, rak.attestacionnaya_komissiya
             FROM rabotnik_attestacionnoj_komissii as rak
             INNER JOIN fiz_lico as fl on rak.fiz_lico = fl.id
             WHERE rak.attestacionnaya_komissiya = :komissiya
             ORDER BY fl.familiya,fl.imya,fl.otchestvo';
         $query = \Yii::$app->db->createCommand($sql)->bindValue(':komissiya', $komissiya)->queryAll();
     } else {
         $sql = 'SELECT rak.id,fl.familiya,fl.imya,fl.otchestvo,
                    fl.id as fiz_lico, rak.attestacionnaya_komissiya
             FROM rabotnik_attestacionnoj_komissii as rak
             INNER JOIN fiz_lico as fl on rak.fiz_lico = fl.id
             WHERE rak.attestacionnaya_komissiya in
             (
               SELECT attestacionnaya_komissiya FROM rabotnik_attestacionnoj_komissii
               WHERE fiz_lico = :fiz_lico
             )
             ORDER BY fl.familiya,fl.imya,fl.otchestvo';
         $query = \Yii::$app->db->createCommand($sql)->bindValue(':fiz_lico', ApiGlobals::getFizLicoPolzovatelyaId())->queryAll();
     }
     foreach ($query as $item) {
         $rabotnik = new RabotnikKomissii();
         $rabotnik->rabotnikId = $item['id'];
         $rabotnik->familiya = $item['familiya'];
         $rabotnik->imya = $item['imya'];
         $rabotnik->otchestvo = $item['otchestvo'];
         $rabotnik->fizLico = $item['fiz_lico'];
         $rabotnik->attestacionnayaKomissiya = $item['attestacionnaya_komissiya'];
         $rabotniki[$rabotnik->fizLico] = $rabotnik;
     }
     return (array) $rabotniki;
 }
예제 #19
0
파일: var-isp.php 프로젝트: agarb7/mybriop
<?php

$this->title = 'Отчет по вариативным формам';
?>

<p>с <?php 
echo \app\globals\ApiGlobals::dateToStr($vremya->nachalo);
?>
 по <?php 
echo \app\globals\ApiGlobals::dateToStr($vremya->konec);
?>
</p>

<table class="tb">
    <thead>
        <tr>
            <td></td>
            <?php 
foreach ($ispytaniya as $item) {
    ?>
                <td colspan="3"><?php 
    echo $item->nazvanie;
    ?>
</td>
            <?php 
}
?>
        </tr>
        <tr>
            <td></td>
            <?php 
예제 #20
0
파일: v-uo.php 프로젝트: agarb7/mybriop
<p>Здравствуйте , <?php 
echo $sotrudnik->getFio(true);
?>
</p>

<p>
    Расписание курса "<?php 
echo $kurs->nazvanie;
?>
" (<?php 
echo \app\globals\ApiGlobals::dateToStr($kurs->plan_prospekt_god, 'Y');
?>
), руководитель <?php 
echo $kurs->rukovoditel_rel->getFio(true);
?>
,  готово к проверке
</p>

<p style="text-align: center">
    <a href="<?php 
echo \yii\helpers\Url::to(['@web/upravlenie-kursami/raspisanie/zanyatie', 'kurs' => $kurs->id], true);
?>
"
       style="display: inline-block;
              padding: 6px 12px;
              margin-bottom: 0;
              font-size: 14px;
              font-weight: normal;
              line-height: 1.42857143;
              text-align: center;
              white-space: nowrap;
 public function actionOtsenki()
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $response = new JsResponse();
     $error = '';
     $fizLico = ApiGlobals::getFizLicoPolzovatelyaId();
     $zayavlenieId = $_REQUEST['zayavlenie_id'];
     $ajax = $_REQUEST['ajax'];
     $rabotnik = RabotnikAttestacionnojKomissii::find()->where(['fiz_lico' => $fizLico])->one();
     /**
      * @var ZayavlenieNaAttestaciyu $zayavlenie
      */
     $zayavlenie = ZayavlenieNaAttestaciyu::find()->joinWith('portfolioFajlRel')->joinWith('varIspytanie3FajlRel')->joinWith('prezentatsiyaFajlRel')->joinWith('otraslevoeSoglashenieZayavleniyaRel')->where(['zayavlenie_na_attestaciyu.id' => $zayavlenieId])->one();
     $raspredelenie = RaspredelenieZayavlenijNaAttestaciyu::find()->joinWith('rabotnikAttestacionnojKomissiiRel')->where(['rabotnik_attestacionnoj_komissii.fiz_lico' => $fizLico])->andWhere(['zayavlenie_na_attestaciyu' => $zayavlenieId])->exists();
     $r = RaspredelenieZayavlenijNaAttestaciyu::find()->joinWith('rabotnikAttestacionnojKomissiiRel')->where(['rabotnik_attestacionnoj_komissii.fiz_lico' => $fizLico])->andWhere(['zayavlenie_na_attestaciyu' => $zayavlenieId])->all();
     $first = function ($array) {
         if (count($array) > 0) {
             return $array[0];
         } else {
             return false;
         }
     };
     if ($raspredelenie) {
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             $postoyannieIspyetaniya = [PostoyannoeIspytanie::getPortfolioId()];
             $variativnoeIspytanie = [];
             if ($zayavlenie->na_kategoriyu == KategoriyaPedRabotnika::VYSSHAYA_KATEGORIYA) {
                 if (count($zayavlenie->otraslevoeSoglashenieZayavleniyaRel) == 0) {
                     $variativnoeIspytanie[] = $zayavlenie->var_ispytanie_3;
                     $postoyannieIspyetaniya[] = PostoyannoeIspytanie::getSpdId();
                 }
             }
             $otsenochnieListy = OtsenochnyjList::find()->joinWith('ispytanieOtsenochnogoListaRel')->where(['in', 'ispytanie_otsenochnogo_lista.postoyannoe_ispytanie', $postoyannieIspyetaniya])->orWhere(['in', 'ispytanie_otsenochnogo_lista.var_ispytanie_3', $variativnoeIspytanie])->all();
             foreach ($otsenochnieListy as $list) {
                 /**
                  * @var OtsenochnyjList $list
                  */
                 if (!OtsenochnyjListZayavleniya::find()->where(['otsenochnij_list' => $list->id])->andWhere(['rabotnik_komissii' => $fizLico])->andWhere(['zayavlenie_na_attestaciyu' => $zayavlenieId])->exists()) {
                     $new_ol_zayvaleniya = new OtsenochnyjListZayavleniya();
                     $new_ol_zayvaleniya->otsenochnijList = $list->id;
                     $new_ol_zayvaleniya->rabotnikKomissii = $fizLico;
                     $new_ol_zayvaleniya->zayavlenieNaAttestaciyu = $zayavlenieId;
                     $ispytanie = $first($list->ispytanieOtsenochnogoListaRel);
                     if ($ispytanie && $ispytanie->postoyannoeIspytanie) {
                         $new_ol_zayvaleniya->postoyannoeIspytanie = $ispytanie->postoyannoeIspytanie;
                     }
                     if ($ispytanie && $ispytanie->var_ispytanie_3) {
                         $new_ol_zayvaleniya->var_ispytanie_3 = $ispytanie->var_ispytanie_3;
                     }
                     $new_ol_zayvaleniya->nazvanie = $list->nazvanie;
                     $new_ol_zayvaleniya->minBallPervayaKategoriya = $list->minBallPervayaKategoriya;
                     $new_ol_zayvaleniya->minBallVisshayaKategoriya = $list->minBallVisshayaKategoriya;
                     $new_ol_zayvaleniya->save();
                     $sql = '
                       INSERT INTO struktura_otsenochnogo_lista_zayvaleniya
                       (otsenochnyj_list_zayavleniya,nazvanie,max_bally, nomer, uroven, struktura_otsenochnogo_lista, roditel)
                       select :ol, sol.nazvanie, sol.bally,
                           case when sol.roditel is not null
                             then sol_roditel.nomer||\'.\'||sol.nomer
                             else cast(sol.nomer as varchar)
                           end as nomer,
                           case when sol.roditel is not null
                             then 2
                             else 1
                           end as uroven,
                           sol.id, sol.roditel
                       from otsenochnyj_list as ol
                       inner join struktura_otsenochnogo_lista as sol on ol.id = sol.otsenochnyj_list
                       left join struktura_otsenochnogo_lista as sol_roditel on sol.roditel = sol_roditel.id
                       inner join ispytanie_otsenochnogo_lista as iol on ol.id = iol.otsenochnyj_list
                       where ol.id = ' . $list->id . ' and ' . ($ispytanie->var_ispytanie_3 ? 'iol.var_ispytanie_3=:isp' : 'iol.postoyannoe_ispytanie=:isp') . '
                       order by nomer
                     ';
                     \Yii::$app->db->createCommand($sql)->bindValue(':ol', $new_ol_zayvaleniya->id)->bindValue(':isp', $ispytanie->var_ispytanie_3 ? $ispytanie->var_ispytanie_3 : $ispytanie->postoyannoeIspytanie)->execute();
                 }
             }
             $transaction->commit();
         } catch (Exception $e) {
             $transaction->rollBack();
             $error = 'Оценочный лист не сформирован' . $e->getMessage();
         }
     } else {
         $error = 'Недоступное действие для данного пользователя';
     }
     $listy = OtsenochnyjListZayavleniya::find()->joinWith(['strukturaOtsenochnogoListaZayvaleniyaRel' => function ($query) {
         /**
          * @var ActiveQuery $query
          */
         $query->orderBy(new Expression('cast(struktura_otsenochnogo_lista_zayvaleniya.nomer as FLOAT)'));
     }])->where(['otsenochnyj_list_zayavleniya.rabotnik_komissii' => $fizLico])->andWhere(['otsenochnyj_list_zayavleniya.zayavlenie_na_attestaciyu' => $zayavlenieId])->orderBy(new Expression('otsenochnyj_list_zayavleniya.id'))->all();
     $result = [];
     foreach ($listy as $list) {
         /**
          * @var OtsenochnyjListZayavleniya $list
          */
         if ($list->postoyannoeIspytanie == PostoyannoeIspytanie::getPortfolioId()) {
             //$result[] =$list->status;
             $portfolio = PostoyannoeIspytanie::find()->where(['id' => PostoyannoeIspytanie::getPortfolioId()])->one();
             $result[] = new \app\models\sotrudnik_att_komissii\OtsenochnyjList(['ispytanie_name' => $portfolio->nazvanie, 'file_name' => $zayavlenie->portfolioFajlRel ? $zayavlenie->portfolioFajlRel->vneshnee_imya_fajla : '', 'file_link' => $zayavlenie->portfolioFajlRel ? $zayavlenie->portfolioFajlRel->getUri() : '', 'list' => $list, 'struktura' => $list->strukturaOtsenochnogoListaZayvaleniyaRel]);
         } else {
             if ($list->postoyannoeIspytanie == PostoyannoeIspytanie::getSpdId()) {
                 //$result[] =$list->status;
                 $spd = PostoyannoeIspytanie::find()->where(['id' => PostoyannoeIspytanie::getSpdId()])->one();
                 $result[] = new \app\models\sotrudnik_att_komissii\OtsenochnyjList(['ispytanie_name' => $spd->nazvanie, 'file_name' => $zayavlenie->prezentatsiyaFajlRel ? $zayavlenie->prezentatsiyaFajlRel->vneshnee_imya_fajla : '', 'file_link' => $zayavlenie->prezentatsiyaFajlRel ? $zayavlenie->prezentatsiyaFajlRel->getUri() : '', 'list' => $list, 'struktura' => $list->strukturaOtsenochnogoListaZayvaleniyaRel]);
             } else {
                 if ($list->varIspytanie_3) {
                     //$result[] =$list->status;
                     $varIspytanie3 = AttestacionnoeVariativnoeIspytanie_3::find()->where(['id' => $list->varIspytanie_3])->one();
                     $result[] = new \app\models\sotrudnik_att_komissii\OtsenochnyjList(['ispytanie_name' => $varIspytanie3->nazvanie, 'file_name' => $zayavlenie->varIspytanie3FajlRel ? $zayavlenie->varIspytanie3FajlRel->vneshnee_imya_fajla : '', 'file_link' => $zayavlenie->varIspytanie3FajlRel ? $zayavlenie->varIspytanie3FajlRel->getUri() : '', 'list' => $list, 'struktura' => $list->strukturaOtsenochnogoListaZayvaleniyaRel]);
                 }
             }
         }
     }
     if ($error) {
         $response->type = JsResponse::ERROR;
         $response->msg = $error;
     } else {
         $response->data = $result;
     }
     return $response;
 }
 public function safeUp()
 {
     $this->insert('otklonenie_zayavleniya_na_attestaciyu', ['nazvanie' => 'Неверно заполнено место работы', 'text' => \app\globals\ApiGlobals::to_trimmed_text('Уточните данные о месте работы: район или город. Редактировние доступно в разделе "Мои данные"->"Работа".')]);
 }
예제 #23
0
 public function beforeSave($insert)
 {
     if (parent::beforeSave($insert)) {
         $this->prezentatsiya = $this->prezentatsiya ? ApiGlobals::to_trimmed_text($this->prezentatsiya) : null;
         $this->prilozhenie1 = $this->prilozhenie1 ? ApiGlobals::to_trimmed_text($this->prilozhenie1) : null;
         $this->svedeniya_o_sebe = $this->svedeniya_o_sebe ? ApiGlobals::to_trimmed_text($this->svedeniya_o_sebe) : null;
         $this->ld_olimpiady = $this->ld_olimpiady ? ApiGlobals::to_trimmed_text($this->ld_olimpiady) : null;
         $this->ld_posobiya = $this->ld_posobiya ? ApiGlobals::to_trimmed_text($this->ld_posobiya) : null;
         $this->ld_publikacii = $this->ld_publikacii ? ApiGlobals::to_trimmed_text($this->ld_publikacii) : null;
         $this->ld_prof_konkursy = $this->ld_prof_konkursy ? ApiGlobals::to_trimmed_text($this->ld_prof_konkursy) : null;
         $this->ld_obshestvennaya_aktivnost = $this->ld_obshestvennaya_aktivnost ? ApiGlobals::to_trimmed_text($this->ld_obshestvennaya_aktivnost) : null;
         $this->ld_elektronnye_resursy = $this->ld_elektronnye_resursy ? ApiGlobals::to_trimmed_text($this->ld_elektronnye_resursy) : null;
         $this->ld_otkrytoe_meropriyatie = $this->ld_otkrytoe_meropriyatie ? ApiGlobals::to_trimmed_text($this->ld_otkrytoe_meropriyatie) : null;
         $this->ld_nastavnik = $this->ld_nastavnik ? ApiGlobals::to_trimmed_text($this->ld_nastavnik) : null;
         $this->ld_deti_sns = $this->ld_deti_sns ? ApiGlobals::to_trimmed_text($this->ld_deti_sns) : null;
         return true;
     } else {
         return false;
     }
 }
예제 #24
0
 public static function get_rpd_kim_list_item($item, $soderzhanie = null)
 {
     $content = '';
     if ($item['type'] == 1) {
         if ($soderzhanie) {
             $content = '<p class="center">К теме ' . static::get_theme_number($item['tema_id'], $soderzhanie) . ' "' . $item['tema'] . '"</p>';
         } else {
             $content = '<p class="center">К теме "' . $item['tema'] . '"</p>';
         }
     }
     if ($item['type'] == 3) {
         if ($item['tip'] == 'pk') {
             $content = '<p class="center">К блоку тему "' . $item['tema'] . '"</p>';
         } else {
             $content = '<p class="center">К дисциплине "' . $item['tema'] . '"</p>';
         }
     }
     if ($item['type'] == 2) {
         $content = '<p class="center">К итоговой аттестации</p>';
     }
     $content .= '<p class="center"><b>' . ApiGlobals::first_letter_up($item['forma_kontrolya']) . '</b></p>';
     if ($item['url']) {
         $content .= ' - ' . Html::a($item['url'], $item['url']);
     }
     if ($item['file_url']) {
         $content .= ' - ' . Html::a($item['file_name'], Url::to(ApiGlobals::get_user_dir_url() . $item['file_url']));
     }
     if ($item['text']) {
         $content .= ApiGlobals::parse_plain_text_to_html($item['text']);
     }
     return $content;
 }
예제 #25
0
파일: kurs.php 프로젝트: tsyrya/mybriop
use kartik\select2\Select2;
use app\enums\TipDokumentaObObrazovanii;
use app\entities\Organizaciya;
use app\entities\Kvalifikaciya;
use kartik\widgets\DatePicker;
use app\entities\EntityQuery;
use app\widgets\Select3;
echo '<div class="panel panel-default">';
echo '<div class="panel-heading clearfix" id="panel' . $num . '">' . '<div>' . ((!isset($registraciya) or !$registraciya->status || $registraciya->status == \app\enums\StatusZayavleniyaNaAttestaciyu::REDAKTIRUETSYA_PED_RABOTNIKOM || $registraciya->status == \app\enums\StatusZayavleniyaNaAttestaciyu::OTKLONENO) ? '<button type="button" onclick="deletKurs(\'' . $model->obrazovanieDlyaZayavleniyaId . '\',this)" class="btn btn-default pull-right"><i class="glyphicon glyphicon-trash"></i> Удалить</button>' : '') . '</div>' . '</div>';
echo '<div class="panel-body">';
echo '<div class="row brow">';
echo '<div class="col-md-4 no-left-padding ' . (($model->hasErrors('organizaciyaId') or $model->hasErrors('organizaciyaNazvanie')) ? 'has-error' : '') . '">';
echo Html::activeHiddenInput($model, "[{$num}]obrazovanieFizLicaId");
echo Html::activeHiddenInput($model, "[{$num}]obrazovanieDlyaZayavleniyaId");
echo Html::activeHiddenInput($model, "[{$num}]kursTip");
echo Select3::widget(['model' => $model, 'attribute' => "[{$num}]organizaciyaId", 'secondAttribute' => "[{$num}]organizaciyaNazvanie", 'data' => Organizaciya::getVpOrganizaciiWithForFizLico(\app\globals\ApiGlobals::getFizLicoPolzovatelyaId())->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie'), 'placeholder' => 'Выберите организацию', 'secondPlaceholder' => 'Введите наименование организации']);
echo '</div>';
echo '<div class="col-md-4 ' . ($model->hasErrors('tipDokumenta') ? 'has-error' : '') . '">';
echo Html::activeLabel($model, "[{$num}]tipDokumenta");
echo Html::activeDropDownList($model, "[{$num}]tipDokumenta", TipDokumentaObObrazovanii::kursTipyMap(), ['class' => 'form-control']);
echo Html::tag('div', $model->getFirstError('tipDokumenta'), ['class' => 'help-block']);
echo '</div>';
echo '<div class="col-md-4 no-right-padding ' . ($model->hasErrors('kursNazvanie') ? 'has-error' : '') . '">';
echo Html::activeLabel($model, "[{$num}]kursNazvanie");
echo Html::activeTextInput($model, "[{$num}]kursNazvanie", ['class' => 'form-control', 'placeholder' => '']);
echo Html::tag('div', $model->getFirstError('kursNazvanie'), ['class' => 'help-block']);
echo '</div>';
echo '</div>';
echo '<div class="col-md-4 no-left-padding ' . ($model->hasErrors('kursChasy') ? 'has-error' : '') . '">';
echo Html::activeLabel($model, "[{$num}]kursChasy");
echo Html::activeInput('number', $model, "[{$num}]kursChasy", ['class' => 'form-control']);
예제 #26
0
 public function actionItogovyjByKomissiya()
 {
     $komissiya = $_GET['komissiya'];
     $period = $_GET['period'];
     $posts = DolzhnostAttestacionnojKomissii::find()->where(['attestacionnaya_komissiya' => $komissiya])->distinct('dolzhnost')->select('dolzhnost')->all();
     $data = [];
     foreach ($posts as $post) {
         $query = \Yii::$app->db->createCommand('select *
                          from attestaciya_itogovij_otchet(:vp,:d)
                          order by  case when otraslevoe_soglashenie is null then 0 else 1 end desc,
                           na_kategoriyu DESC,
                           imeushayasya_kategoriya DESC,
                           attestaciya_data_prisvoeniya DESC,
                           fio')->bindValue(':vp', $period)->bindValue(':d', $post->dolzhnost)->queryAll();
         $data = array_merge($data, $query);
     }
     //var_dump($data);die();
     $groups = ['otraslevoe_soglashenie' => []];
     foreach ($data as $item) {
         if ($item['na_kategoriyu'] == KategoriyaPedRabotnika::VYSSHAYA_KATEGORIYA and $item['otraslevoe_soglashenie']) {
             $groups['otraslevoe_soglashenie'][] = $item;
         } else {
             $groups[$item['na_kategoriyu']][] = $item;
         }
     }
     $data = $groups;
     $excel = new PHPExcel();
     $excel->createSheet();
     $WorkSheet = $excel->getSheet(0);
     $WorkSheet->setTitle('Итоговый отчет');
     $WorkSheet->setCellValue('A1', 'Итоговый отчет');
     $WorkSheet->mergeCells('A1:M1');
     /*Объединяем ячейки*/
     $WorkSheet->setCellValue('A3', '№');
     $WorkSheet->setCellValue('B3', 'ФИО');
     $WorkSheet->setCellValue('C3', 'ОУ');
     $WorkSheet->setCellValue('D3', 'Должность');
     $WorkSheet->setCellValue('E3', 'Дата рождения');
     $WorkSheet->setCellValue('F3', 'Имеющаяся кв. кат.');
     $WorkSheet->setCellValue('G3', 'Стаж пед./вучр./в долж.');
     $WorkSheet->setCellValue('H3', 'Образование');
     $WorkSheet->setCellValue('I3', 'Повышение квалификации');
     $WorkSheet->setCellValue('J3', 'Рез-ты кв. экз');
     $WorkSheet->setCellValue('K3', 'Портфолио');
     $WorkSheet->setCellValue('L3', 'СПД');
     $WorkSheet->setCellValue('M3', 'Экспертное заключение');
     //$WorkSheet->getColumnDimension('K')->setWidth(30); /*ширина столбца (от руки)*/
     $WorkSheet->getStyle('A3:M3')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     $WorkSheet->getStyle('A3:M3')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
     $WorkSheet->getStyle('A3:M3')->getFill()->getStartColor()->setRGB('bfbfbf');
     $excel->setActiveSheetIndex(0);
     foreach (range('A', 'M') as $columnId) {
         $excel->getActiveSheet()->getColumnDimension($columnId)->setAutoSize(true);
     }
     $number = 1;
     $current_kategoriya = '';
     $row_number = 4;
     foreach ($data as $key => $items) {
         if ($current_kategoriya != $key and $items) {
             $kategoriya = '';
             if ($key == 'otraslevoe_soglashenie') {
                 $kategoriya = 'Высшая категория (по отраслевому соглашению)';
             } else {
                 $kategoriya = \app\globals\ApiGlobals::first_letter_up(KategoriyaPedRabotnika::namesMap()[$key]);
             }
             $WorkSheet->setCellValue('A' . $row_number, $kategoriya);
             $WorkSheet->mergeCells('A' . $row_number . ':M' . $row_number);
             $WorkSheet->getStyle('A' . $row_number . ':M' . $row_number)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
             $current_kategoriya = $key;
             $number = 1;
             $row_number++;
         }
         foreach ($items as $item) {
             $WorkSheet->setCellValue('A' . $row_number, $number);
             $WorkSheet->setCellValue('B' . $row_number, $item['fio']);
             $WorkSheet->setCellValue('C' . $row_number, $item['organizaciya']);
             $WorkSheet->setCellValue('D' . $row_number, $item['dolzhnost']);
             $WorkSheet->setCellValue('E' . $row_number, date('d.m.Y', strtotime($item['data_rozhdeniya'])));
             $WorkSheet->setCellValue('F' . $row_number, KategoriyaPedRabotnika::namesMap()[$item['imeushayasya_kategoriya']] . ($item['attestaciya_data_okonchaniya_dejstviya'] != '1970-01-01' ? ', ' . date('d.m.Y', strtotime($item['attestaciya_data_okonchaniya_dejstviya'])) : ''));
             $WorkSheet->setCellValue('G' . $row_number, $item['ped_stazh'] . '/' . $item['rabota_stazh_v_dolzhnosti'] . '/' . $item['stazh_v_dolzhnosti']);
             $WorkSheet->setCellValue('H' . $row_number, $item['obrazovanie']);
             $WorkSheet->setCellValue('I' . $row_number, $item['kursy']);
             $var_isp = '';
             if ($item['na_kategoriyu'] == KategoriyaPedRabotnika::PERVAYA_KATEGORIYA) {
                 $var_isp = 'Не предусмотрена';
             } else {
                 if ($item['otraslevoe_soglashenie']) {
                     $var_isp = $item['otraslevoe_soglashenie'];
                 } else {
                     $var_isp = number_format($item['variativnoe_ispytanie_3'], 2);
                 }
             }
             $WorkSheet->setCellValue('J' . $row_number, $var_isp);
             $WorkSheet->setCellValue('K' . $row_number, number_format($item['portfolio'], 2));
             $WorkSheet->setCellValue('L' . $row_number, ($item['na_kategoriyu'] == KategoriyaPedRabotnika::PERVAYA_KATEGORIYA or $item['otraslevoe_soglashenie']) ? 'Не предусмотрена' : number_format($item['spd'], 2));
             $WorkSheet->setCellValue('M' . $row_number, $item['count_below'] == 0 ? 'Рекомендовано' : 'Не рекомендовано');
             $number++;
             $row_number++;
         }
     }
     header("Expires: Mon,1 Apr 1974 05:00:00 GMT");
     header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
     header("Cache-Control: no-cache,must-revalidate");
     header("Pragma: no-cache");
     header("Content-type: application/vnd.ms-excel");
     header("Content-Disposition: attachment; filename=report.xls");
     $objWriter = new PHPExcel_Writer_Excel5($excel);
     /*Выводим содержимое файла*/
     $objWriter->save('php://output');
     die;
 }
예제 #27
0
 public function actionRegistraciya()
 {
     $post = \Yii::$app->request->post();
     $messages = [];
     if ($post) {
         $registraciya = new Registraciya();
         $visshieObrazovaniya = [];
         if (isset($post['VissheeObrazovanie'])) {
             foreach ($post['VissheeObrazovanie'] as $k => $v) {
                 $visshieObrazovaniya[$k] = new VissheeObrazovanie();
             }
         }
         $kursy = [];
         if (isset($post['Kurs'])) {
             foreach ($post['Kurs'] as $k => $v) {
                 $kursy[$k] = new Kurs();
             }
         }
         $otraslevoeSoglashenie = [];
         if (isset($post['OtraslevoeSoglashenie'])) {
             foreach ($post['OtraslevoeSoglashenie'] as $k => $v) {
                 $otraslevoeSoglashenie[$k] = new OtraslevoeSoglashenie();
             }
         }
         $registraciya->visshieObrazovaniya = $visshieObrazovaniya;
         $registraciya->kursy = $kursy;
         $registraciya->otraslevoeSoglashenie = $otraslevoeSoglashenie;
         $is_error = false;
         if (!($registraciya->load($post) && $registraciya->validate())) {
             $is_error = true;
         }
         if ($visshieObrazovaniya && !(VissheeObrazovanie::loadMultiple($registraciya->visshieObrazovaniya, $post) && VissheeObrazovanie::validateMultiple($registraciya->visshieObrazovaniya))) {
             $is_error = true;
             //var_dump('vo');
         }
         if ($kursy && !(Kurs::loadMultiple($registraciya->kursy, $post) && Kurs::validateMultiple($registraciya->kursy))) {
             $is_error = true;
             //var_dump('kursy');
         }
         if ($otraslevoeSoglashenie && !(OtraslevoeSoglashenie::loadMultiple($registraciya->otraslevoeSoglashenie, $post) && OtraslevoeSoglashenie::validateMultiple($registraciya->otraslevoeSoglashenie))) {
             $is_error = true;
             //var_dump('so');
         }
         //var_dump($visshieObrazovaniya);die();
         if (!$is_error) {
             if (!$registraciya->save()) {
                 //\Yii::$app->session->setFlash('danger','Данные нее сохранены! Ошибка выполнения запроса к базе данных!');
                 $messages[] = ['type' => 'danger', 'msg' => 'Данные нее сохранены! Ошибка выполнения запроса к базе данных!'];
             } else {
                 \Yii::$app->session->setFlash('success', 'Данные  успешно сохранены!');
                 $this->redirect('/attestaciya/registraciya?zid=' . $registraciya->id);
                 //$messages[] = ['type'=>'success','msg'=>'Данные  успешно сохранены!'];
             }
         } else {
             $messages[] = ['type' => 'danger', 'msg' => 'Ошибка валидации данных'];
             //\Yii::$app->session->setFlash('danger','Ошибка валидации данных');
             //var_dump('loading error');
         }
     } else {
         $zayvlenieId = null;
         if (isset($_GET['zid'])) {
             $zayvlenieId = $_GET['zid'];
         }
         $registraciya = new Registraciya($zayvlenieId);
         $registraciya->fizLicoId = ApiGlobals::getFizLicoPolzovatelyaId();
         $registraciya->visshieObrazovaniya = VissheeObrazovanie::getObrazovaniya($registraciya->fizLicoId, $zayvlenieId);
         $registraciya->kursy = Kurs::getObrazovaniya($registraciya->fizLicoId, $zayvlenieId);
         $registraciya->otraslevoeSoglashenie = OtraslevoeSoglashenie::getByZayvlenie($zayvlenieId);
     }
     return $this->render('registraciya', compact('registraciya', 'messages'));
 }
예제 #28
0
        <td>СПД</td>
        <td>Экспертное заключение</td>
    </tr>
    <?php 
foreach ($data as $key => $items) {
    ?>
    <?php 
    if ($current_kategoriya != $key and $items) {
        ?>
            <tr>
                <td colspan="13" class="center">
                    <?php 
        if ($key == 'otraslevoe_soglashenie') {
            echo 'Высшая категория (по отраслевому соглашению)';
        } else {
            echo \app\globals\ApiGlobals::first_letter_up(KategoriyaPedRabotnika::namesMap()[$key]);
        }
        ?>
                </td>
            </tr>
    <?php 
        $current_kategoriya = $key;
        $number = 1;
        ?>
    <?php 
    }
    ?>
    <?php 
    foreach ($items as $item) {
        ?>
    <tr>
예제 #29
0
 public static function get_soderzhanie_html($s)
 {
     $result = '';
     $razdel = 1;
     $razdely = '';
     foreach ($s as $k => $v) {
         $all = 0;
         $podrazdel = 1;
         $podrazdely = '';
         foreach ($v as $podrazdelk => $podrazdelv) {
             $lk = 0;
             $pr = 0;
             $srs = 0;
             $temy = '';
             $tema = 1;
             foreach ($podrazdelv['temy'] as $temak => $temav) {
                 if ($temav['nazvanie']) {
                     $temy .= '<p>' . $razdel . '.' . $podrazdel . '.' . $tema . ' ' . $temav['nazvanie'] . ' (' . ApiGlobals::first_letter_up($temav['tip_rabot']) . ', ' . $temav['chasy'] . ' ч.) - ' . $temav['prepodavatel'] . '</p>';
                     if ($temav['soderzhanie']) {
                         $temy .= ApiGlobals::parse_text($temav['soderzhanie']);
                     }
                     if ($temav['forma_kontrolya_id']) {
                         $temy .= '<p>Контроль. ' . ApiGlobals::first_letter_up($temav['forma_kontrolya']) . '.</p>';
                     }
                     if ($temav['tip_rabot_id'] == 1) {
                         $lk += $temav['chasy'];
                     } elseif ($temav['tip_rabot_id'] >= 2 and $temav['tip_rabot_id'] <= 10 or $temav['tip_rabot_id'] == 12) {
                         $pr += $temav['chasy'];
                     } else {
                         $srs += $temav['chasy'];
                     }
                     $tema++;
                 }
             }
             $all += $lk + $pr + $srs;
             $chasy = [];
             if ($lk) {
                 array_push($chasy, $lk . ' л.');
             }
             if ($pr) {
                 array_push($chasy, $pr . ' пр.');
             }
             if ($srs) {
                 array_push($chasy, $srs . ' срс.');
             }
             $podrazdely .= '<p><b>' . $razdel . '.' . $podrazdel . ' ' . $podrazdelv['nazvanie'] . ($chasy ? ' (' . join(', ', $chasy) . ')' : '') . '</b></p>';
             $podrazdely .= $temy;
             $podrazdel++;
         }
         $razdely .= '<p><b>' . $k . ' (' . $all . ' ч.)</b></p>' . $podrazdely;
         $razdel++;
     }
     $result = $razdely;
     return $result;
 }
예제 #30
0
 public function save()
 {
     $fizLicoFio = FizLico::getFioById($this->fizLicoId);
     $rabota = RabotaFizLica::find()->joinWith('dolzhnostiFizLicaNaRaboteRel')->where(['rabota_fiz_lica.id' => $this->dolzhnost])->one();
     $zayavlenie = ZayavlenieNaAttestaciyu::findOne($this->id ? $this->id : 0);
     //$attestaciyaDates = $this->parseAttestaciyaDate();
     if (!$zayavlenie) {
         $zayavlenie = new ZayavlenieNaAttestaciyu();
     }
     $zayavlenie->fiz_lico = $this->fizLicoId;
     $zayavlenie->familiya = $fizLicoFio['familiya'];
     $zayavlenie->imya = $fizLicoFio['imya'];
     $zayavlenie->otchestvo = $fizLicoFio['otchestvo'];
     $zayavlenie->ped_stazh = $this->pedStazh;
     $zayavlenie->rabota_organizaciya = $rabota->organizaciya;
     $zayavlenie->rabota_dolzhnost = $rabota->dolzhnostiFizLicaNaRaboteRel[0]->dolzhnost;
     $zayavlenie->rabota_stazh_v_dolzhnosti = $this->rabotaPedStazhVDolzhnosti;
     $zayavlenie->rabota_kopiya_trudovoj_knizhki = $this->trudovajya;
     $zayavlenie->attestaciya_kategoriya = $this->attestacionnyListKategoriya;
     $zayavlenie->attestaciya_kopiya_attestacionnogo_lista = $this->attestacionnyListPeriodFajl;
     $zayavlenie->attestaciya_data_prisvoeniya = date('Y-m-d', strtotime($this->attestaciyaDataPrisvoeniya));
     $zayavlenie->attestaciya_data_okonchaniya_dejstviya = date('Y-m-d', strtotime($this->attestaciyaDataOkonchaniyaDejstviya));
     $zayavlenie->na_kategoriyu = $this->kategoriya;
     $zayavlenie->rabota_data_naznacheniya = date('Y-m-d', strtotime($this->rabotaDataNaznacheniya));
     $zayavlenie->rabota_data_naznacheniya_v_uchrezhdenii = date('Y-m-d', strtotime($this->rabotaDataNaznacheniyaVUchrezhdenii));
     $zayavlenie->data_rozhdeniya = date('Y-m-d', strtotime($this->dataRozhdeniya));
     if ($zayavlenie->rabota_dolzhnost == 47) {
         $zayavlenie->stazh_obshij_trudovoj = $this->stazh_obshij_trudovoj;
         $zayavlenie->stazh_rukovodyashej_raboty = $this->stazh_rukovodyashej_raboty;
         $zayavlenie->stazh_v_dolzhnosti = null;
     } else {
         $zayavlenie->stazh_obshij_trudovoj = null;
         $zayavlenie->stazh_rukovodyashej_raboty = null;
         $zayavlenie->stazh_v_dolzhnosti = $this->pedStazhVDolzhnosti;
     }
     if ($this->kategoriya == KategoriyaPedRabotnika::VYSSHAYA_KATEGORIYA) {
         $zayavlenie->svedeniya_o_sebe = $this->svedeniysOSebe ? $this->svedeniysOSebe : null;
         $zayavlenie->svedeniya_o_sebe_fajl = $this->svedeniysOSebeFajl;
     } else {
         $zayavlenie->svedeniya_o_sebe = null;
         $zayavlenie->svedeniya_o_sebe_fajl = null;
     }
     if ($this->kategoriya == KategoriyaPedRabotnika::BEZ_KATEGORII) {
         $zayavlenie->var_ispytanie_2 = null;
         $zayavlenie->var_ispytanie_3 = null;
     } else {
         $zayavlenie->var_ispytanie_2 = $this->kategoriya == KategoriyaPedRabotnika::VYSSHAYA_KATEGORIYA ? $this->varIspytanie2 : null;
         $zayavlenie->var_ispytanie_3 = $this->kategoriya == KategoriyaPedRabotnika::VYSSHAYA_KATEGORIYA ? $this->varIspytanie3 : null;
         if (count($this->otraslevoeSoglashenie) > 0) {
             $zayavlenie->var_ispytanie_3 = null;
         }
         if ($zayavlenie->rabota_dolzhnost == 47) {
             $zayavlenie->var_ispytanie_3 = null;
         }
     }
     $zayavlenie->vremya_provedeniya = $this->vremyaProvedeniya;
     $this->status = $this->status ? $this->status : StatusZayavleniyaNaAttestaciyu::REDAKTIRUETSYA_PED_RABOTNIKOM;
     $zayavlenie->status = $this->status ? $this->status : StatusZayavleniyaNaAttestaciyu::REDAKTIRUETSYA_PED_RABOTNIKOM;
     $zayavlenie->vremya_smeny_statusa = date("Y-m-d H:i:s");
     $zayavlenie->domashnijTelefon = substr($this->domashnijTelefon, 1);
     $zayavlenie->provestiZasedanieBezPrisutstviya = $this->provestiZasedanieBezPrisutstviya;
     $zayavlenie->prilozhenie1 = $this->prilozhenie1;
     $zayavlenie->ld_olimpiady = $this->ldOlimpiady ? $this->ldOlimpiady : null;
     $zayavlenie->ld_posobiya = $this->ldPosobiya ? $this->ldPosobiya : null;
     $zayavlenie->ld_publikacii = $this->ldPublikacii ? $this->ldPublikacii : null;
     $zayavlenie->ld_prof_konkursy = $this->ldProfKonkursy ? $this->ldProfKonkursy : null;
     $zayavlenie->ld_obshestvennaya_aktivnost = $this->ldObshestvennayaAktivnost ? $this->ldObshestvennayaAktivnost : null;
     $zayavlenie->ld_elektronnye_resursy = $this->ldElektronnyeResursy ? $this->ldElektronnyeResursy : null;
     $zayavlenie->ld_otkrytoe_meropriyatie = $this->ldOtkrytoeMeropriyatie ? $this->ldOtkrytoeMeropriyatie : null;
     $zayavlenie->ld_nastavnik = $this->ldNastavnik ? $this->ldNastavnik : null;
     $zayavlenie->ld_deti_sns = $this->ldDetiSns ? $this->ldDetiSns : null;
     if (!$zayavlenie->validate()) {
         return false;
     }
     //создаем массив с высшими образованиями
     $Obrazovaniya = [];
     if ($this->visshieObrazovaniya) {
         foreach ($this->visshieObrazovaniya as $k => $v) {
             $object = ['tip' => 'vo', 'index' => $k];
             if ($v->udalit) {
                 $object['udalit'] = 1;
             } else {
                 $object['udalit'] = 0;
             }
             $dataVidachi = date('Y-m-d', strtotime($v->dataVidachi));
             $obrazovanieFizLica = ObrazovanieFizLica::findOne($v->obrazovanieFizLicaId ? $v->obrazovanieFizLicaId : 0);
             if (!$obrazovanieFizLica) {
                 $obrazovanieFizLica = new ObrazovanieFizLica();
             }
             $obrazovanieFizLica->fiz_lico = $this->fizLicoId;
             $obrazovanieFizLica->dokument_ob_obrazovanii_tip = $v->tipDokumenta;
             $obrazovanieFizLica->dokument_ob_obrazovanii_seriya = $v->seriya;
             $obrazovanieFizLica->dokument_ob_obrazovanii_nomer = $v->nomer;
             $obrazovanieFizLica->dokument_ob_obrazovanii_data = $dataVidachi;
             $obrazovanieFizLica->kvalifikaciya = $v->kvalifikaciyaId;
             $obrazovanieFizLica->organizaciya = $v->organizaciyaId;
             if (!$v->kvalifikaciyaId and $v->kvalifikaciyaNazvanie) {
                 $object['novayaKvalifikaciya'] = ApiGlobals::to_trimmed_text($v->kvalifikaciyaNazvanie);
             } else {
                 $object['novayaKvalifikaciya'] = '';
             }
             if (!$v->organizaciyaId and $v->organizaciyaNazvanie) {
                 $object['novayaOrganizaciya'] = ApiGlobals::to_trimmed_text($v->organizaciyaNazvanie);
             } else {
                 $object['novayaOrganizaciya'] = '';
             }
             $obrazovanieFizLica->dokument_ob_obrazovanii_kopiya = $v->documentKopiya;
             if (!$obrazovanieFizLica->validate()) {
                 return false;
             }
             $object['obrazovanieFizLica'] = $obrazovanieFizLica;
             $obrazovanieDlyaZayavleniya = ObrazovanieDlyaZayavleniyaNaAttestaciyu::findOne($v->obrazovanieDlyaZayavleniyaId ? $v->obrazovanieDlyaZayavleniyaId : 0);
             if (!$obrazovanieDlyaZayavleniya) {
                 $obrazovanieDlyaZayavleniya = new ObrazovanieDlyaZayavleniyaNaAttestaciyu();
             }
             $obrazovanieDlyaZayavleniya->zayavlenie_na_attestaciyu = $this->id;
             $obrazovanieDlyaZayavleniya->obrazovanie_istochnik = $v->obrazovanieFizLicaId;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_tip = $v->tipDokumenta;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_seriya = $v->seriya;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_nomer = $v->nomer;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_data = $dataVidachi;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_kopiya = $v->documentKopiya;
             $obrazovanieDlyaZayavleniya->kvalifikaciya = $v->kvalifikaciyaId;
             $obrazovanieDlyaZayavleniya->organizaciya = $v->organizaciyaId;
             $object['obrazovanieDlyaZayavlaniya'] = $obrazovanieDlyaZayavleniya;
             $Obrazovaniya[] = $object;
         }
     }
     if ($this->kursy) {
         foreach ($this->kursy as $k => $v) {
             $object = ['tip' => 'kurs', 'index' => $k];
             if ($v->udalit) {
                 $object['udalit'] = 1;
             } else {
                 $object['udalit'] = 0;
             }
             $dataVidachi = date('Y-m-d', strtotime($v->dataVidachi));
             $obrazovanieFizLica = ObrazovanieFizLica::findOne($v->obrazovanieFizLicaId ? $v->obrazovanieFizLicaId : 0);
             if (!$obrazovanieFizLica) {
                 $obrazovanieFizLica = new ObrazovanieFizLica();
             }
             $obrazovanieFizLica->fiz_lico = $this->fizLicoId;
             $obrazovanieFizLica->dokument_ob_obrazovanii_tip = $v->tipDokumenta;
             $obrazovanieFizLica->dokument_ob_obrazovanii_data = $dataVidachi;
             $obrazovanieFizLica->organizaciya = $v->organizaciyaId;
             $obrazovanieFizLica->kurs_nazvanie = $v->kursNazvanie;
             $obrazovanieFizLica->kurs_chasy = $v->kursChasy;
             $obrazovanieFizLica->kurs_tip = $v->kursTip;
             $obrazovanieFizLica->dokument_ob_obrazovanii_kopiya = $v->documentKopiya;
             $obrazovanieFizLica->dokument_ob_obrazovanii_seriya = null;
             $obrazovanieFizLica->dokument_ob_obrazovanii_nomer = null;
             if (!$v->organizaciyaId and $v->organizaciyaNazvanie) {
                 $object['novayaOrganizaciya'] = ApiGlobals::to_trimmed_text($v->organizaciyaNazvanie);
             } else {
                 $object['novayaOrganizaciya'] = '';
             }
             $object['novayaKvalifikaciya'] = '';
             if (!$obrazovanieFizLica->validate()) {
                 return false;
             }
             $object['obrazovanieFizLica'] = $obrazovanieFizLica;
             $obrazovanieDlyaZayavleniya = ObrazovanieDlyaZayavleniyaNaAttestaciyu::findOne($v->obrazovanieDlyaZayavleniyaId ? $v->obrazovanieDlyaZayavleniyaId : 0);
             if (!$obrazovanieDlyaZayavleniya) {
                 $obrazovanieDlyaZayavleniya = new ObrazovanieDlyaZayavleniyaNaAttestaciyu();
             }
             $obrazovanieDlyaZayavleniya->zayavlenie_na_attestaciyu = $this->id;
             $obrazovanieDlyaZayavleniya->obrazovanie_istochnik = $v->obrazovanieFizLicaId;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_tip = $v->tipDokumenta;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_data = $dataVidachi;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_kopiya = $v->documentKopiya;
             $obrazovanieDlyaZayavleniya->organizaciya = $v->organizaciyaId;
             $obrazovanieDlyaZayavleniya->kurs_nazvanie = $v->kursNazvanie;
             $obrazovanieDlyaZayavleniya->kurs_chasy = $v->kursChasy;
             $obrazovanieDlyaZayavleniya->kurs_tip = $v->kursTip;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_nomer = null;
             $obrazovanieDlyaZayavleniya->dokument_ob_obrazovanii_seriya = null;
             $object['obrazovanieDlyaZayavlaniya'] = $obrazovanieDlyaZayavleniya;
             $Obrazovaniya[] = $object;
         }
     }
     $saveTransaction = RabotaFizLica::getDb()->transaction(function () use($zayavlenie, $Obrazovaniya) {
         //var_dump($zayavlenie->save(false));
         if (!$zayavlenie->save(false)) {
             var_dump('zayavl_error');
             return false;
         }
         $this->id = $zayavlenie->id;
         foreach ($Obrazovaniya as $k => $v) {
             if ($v['udalit']) {
                 if (!$v['obrazovanieDlyaZayavlaniya']->delete()) {
                     return false;
                 }
                 if ($v['tip'] == 'kurs') {
                     if (!$v['obrazovanieFizLica']->delete()) {
                         return false;
                     }
                 }
                 if ($v['tip'] == 'vo') {
                     unset($this->visshieObrazovaniya[$v['index']]);
                 } else {
                     unset($this->kursy[$v['index']]);
                 }
             } else {
                 if ($v['novayaKvalifikaciya']) {
                     $kvalifikaciya = new Kvalifikaciya(['nazvanie' => ApiGlobals::to_trimmed_text($v['novayaKvalifikaciya']), 'obschij' => false]);
                     if (!$kvalifikaciya->save(false)) {
                         var_dump('kvalifik_error');
                         return false;
                     }
                     $v['obrazovanieFizLica']->kvalifikaciya = $kvalifikaciya->id;
                     $v['obrazovanieDlyaZayavlaniya']->kvalifikaciya = $kvalifikaciya->id;
                 }
                 if ($v['novayaOrganizaciya']) {
                     $organizaciya = new Organizaciya(['nazvanie' => ApiGlobals::to_trimmed_text($v['novayaOrganizaciya']), 'obschij' => false, 'etapy_obrazovaniya' => '{' . \app\enums\EtapObrazovaniya::VYSSHEE_PROFESSIONALNOE_OBRAZOVANIE . '}']);
                     if (!$organizaciya->save(false)) {
                         var_dump('orghanizac_error');
                         return false;
                     }
                     $v['obrazovanieFizLica']->organizaciya = $organizaciya->id;
                     $v['obrazovanieDlyaZayavlaniya']->organizaciya = $organizaciya->id;
                 }
                 if (!$v['obrazovanieFizLica']->validate()) {
                     return false;
                 }
                 if (!$v['obrazovanieFizLica']->save(false)) {
                     var_dump('obrfl_error');
                     return false;
                 }
                 if ($v['tip'] == 'vo') {
                     $this->visshieObrazovaniya[$v['index']]->obrazovanieFizLicaId = $v['obrazovanieFizLica']->id;
                 } else {
                     $this->kursy[$v['index']]->obrazovanieFizLicaId = $v['obrazovanieFizLica']->id;
                 }
                 $v['obrazovanieDlyaZayavlaniya']->obrazovanie_istochnik = $v['obrazovanieFizLica']->id;
                 $v['obrazovanieDlyaZayavlaniya']->zayavlenie_na_attestaciyu = $zayavlenie->id;
                 if (!$v['obrazovanieDlyaZayavlaniya']->validate()) {
                     return false;
                 }
                 if (!$v['obrazovanieDlyaZayavlaniya']->save(false)) {
                     var_dump('obrzZayavl_error');
                     return false;
                 }
                 if ($v['tip'] == 'vo') {
                     $this->visshieObrazovaniya[$v['index']]->obrazovanieDlyaZayavleniyaId = $v['obrazovanieDlyaZayavlaniya']->id;
                 } else {
                     $this->kursy[$v['index']]->obrazovanieDlyaZayavleniyaId = $v['obrazovanieDlyaZayavlaniya']->id;
                 }
             }
         }
         foreach ($this->otraslevoeSoglashenie as $key => $item) {
             /**
              * @var OtraslevoeSoglashenie $item
              */
             $item->zayavlenieNaAttestaciyu = $this->id;
             if ($savedItem = $item->save()) {
                 if ($item->udalit or $zayavlenie->rabota_dolzhnost == 47) {
                     unset($this->otraslevoeSoglashenie[$key]);
                 } else {
                     $item->id = $savedItem->id;
                 }
             } else {
                 var_dump('os_error');
                 return false;
             }
         }
         return true;
     });
     if (!$saveTransaction) {
         return false;
     }
     return true;
 }