public function getPrintUrl($personid, $specid) { // http://10.1.103.26:8080/request_report-1.0/magistr.jsp?PersonID=197&PersonSpecialityID=205 - магистры // http://10.1.103.26:8080/request_report-1.0/bachelor.jsp?PersonID=197&PersonSpecialityID=205 - бакалавры $model = $this->getUserModel(); if (empty($model->syspk) || empty($model->syspk->printIP)) { throw new Exception("Необхідно визначити адресу серверу друку документів!"); } $ip = $model->syspk->printIP; $spec = Personspeciality::model()->find("idPersonSpeciality={$specid}"); if (empty($spec)) { throw new Exception("Необхідно визначити спеціальність!"); } if ($spec->QualificationID > 1) { return "http://" . $ip . ":8080/request_report-1.0/magistr.jsp?PersonID={$personid}&PersonSpecialityID={$specid}&iframe=true&width=1024&height=600"; } else { return "http://" . $ip . ":8080/request_report-1.0/bachelor.jsp?PersonID={$personid}&PersonSpecialityID={$specid}&iframe=true&width=1024&height=600"; } return ""; }
?> </TD> <TD class="pv"> <?php echo iconv("utf-8", "windows-1251", $list[$i]['isExtra']); ?> </TD> <TD class="original"> <?php echo iconv("utf-8", "windows-1251", $list[$i]['isOriginal']); ?> </TD> <TD class="wave"> <?php if ($contacts) { $model = Personspeciality::model()->findByPk($list[$i]['idPersonSpeciality']); $array_contacts = array(); foreach ($model->person->contacts as $mcontact) { $array_contacts[] = iconv("utf-8", "windows-1251", 'т:' . $mcontact->Value); } echo implode(';<br/>', $array_contacts); } ?> </TD> </TR> <?php } // end for $list } // end foreach $data ?>
public function getPrintPriceUrl($specid) { $model = $this->getUserModel(); if (empty($model->syspk) || empty($model->syspk->printIP)) { throw new Exception("Необхідно визначити адресу серверу друку документів!"); } $ip = $model->syspk->printIP; $spec = Personspeciality::model()->find("idPersonSpeciality={$specid}"); if (empty($spec)) { throw new Exception("Необхідно визначити спеціальність!"); } return "http://" . $ip . ":8080/request_report-1.0/price.jsp?PersonSpecialityID={$specid}&iframe=true&width=1024&height=600"; return ""; }
public function actionIndex() { Yii::app()->db->createCommand('SET SESSION group_concat_max_len=150000')->execute(); $reqFields = Yii::app()->request->getParam('fields', null); $reqCond = Yii::app()->request->getParam('cond', null); $reqAcondval = Yii::app()->request->getParam('acondval', null); $reqCondval = Yii::app()->request->getParam('condval', null); $reqExcel = Yii::app()->request->getParam('excel', null); //var_dump($reqCondval);exit(); $fields = array(); $fields[0] = array('text' => 'ПІБ персони'); $fields[1] = array('text' => 'Дата народження'); $fields[2] = array('text' => 'Адреса КОАТУУ'); $fields[3] = array('text' => 'Країна громадянства'); $fields[4] = array('text' => 'Закінчено навчальний заклад'); $fields[5] = array('text' => 'Місце народження'); $fields[6] = array('text' => 'Іноземна мова'); $fields[7] = array('text' => 'Спеціальність'); $fields[8] = array('text' => 'Факультет'); $fields[9] = array('text' => 'На бюджет'); $fields[10] = array('text' => 'На контракт'); $fields[11] = array('text' => 'Потрібен гуртожиток'); $fields[12] = array('text' => 'Статус заявки'); $fields[13] = array('text' => 'Дата створення заявки'); $fields[14] = array('text' => 'ЗНО (інформація)'); $fields[15] = array('text' => 'Форма навчання'); $fields[16] = array('text' => 'Іспити (інформація)'); $fields[17] = array('text' => 'ОКР'); $fields[18] = array('text' => 'Документи'); $fields[19] = array('text' => 'Пільги'); $fields[20] = array('text' => 'Тип пільги'); $fields[21] = array('text' => 'Першочергово'); $fields[22] = array('text' => 'Поза конкурсом'); $fields[23] = array('text' => 'Напрям'); $fields[24] = array('text' => 'Тип документа'); $fields[25] = array('text' => 'Курси ДП'); $fields[26] = array('text' => 'Номер справи'); $fields[27] = array('text' => 'Копія'); $fields[28] = array('text' => 'Відзнака'); $fields[29] = array('text' => 'Номер заяви'); $fields[30] = array('text' => 'Іноземна мова заяви'); $fields[31] = array('text' => 'Базова спеціальність'); $fields[32] = array('text' => 'Додатковий балл'); $fields[33] = array('text' => 'Приорітет'); if (!is_string($reqFields)) { throw new CHttpException(400, 'Помилка. Невірний запит.'); } $field_nums = explode(',', $reqFields); $field_num_indexes = array_flip($field_nums); if (count($field_nums) == 0) { throw new CHttpException(400, 'Помилка. Невірний запит.'); } $criteria = new CDbCriteria(); $select = array('*'); $with_rel = array(); $widget_columns = array(); $keys = array('idPersonSpeciality'); $group = 'idPerson'; for ($i = 0; $i < count($reqCond); $i++) { $condition_type = $reqCond[$i]; if (isset($reqCondval[$i])) { $condition_value = $reqCondval[$i]; } else { $condition_value = "none"; } if (isset($reqAcondval[$i])) { $alternative_condition_value = $reqAcondval[$i]; } else { $alternative_condition_value = true; } $to_select = in_array($i, $field_nums); if (!$to_select && !$condition_type) { continue; } $header = false; if (isset($fields[$i])) { $header = $fields[$i]['text']; } switch ($i) { case 0: $rels = array(array('name' => 'person', 'select' => true)); $sel = array('to_select' => $to_select, 'sql_as' => 'NAME', 'sql_expr' => "concat_ws(' ',trim(person.LastName),trim(person.FirstName),person.MiddleName)"); $widget_column = array('name' => 'NAME', 'header' => $header, 'value' => function ($data) { echo $data->NAME; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 1: $rels = array(array('name' => 'person', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field' => 'person.Birthday'); $widget_column = array('name' => 'person.Birthday', 'header' => $header, 'value' => function ($data) { echo !empty($data->person) ? $data->person->Birthday : ""; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldDateOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 2: //Спеціально для ..баного КОАТУУ $this->addRelationTo('person', $with_rel); $KOATUU3_sql = "(SELECT concat(KOATUULevel3FullName,' (тип: ',KOATUULevel3Type,')') FROM koatuulevel3 " . "WHERE person.KOATUUCodeID=idKOATUULevel3)"; $KOATUU2_sql = "(SELECT KOATUULevel2FullName FROM koatuulevel2 " . "WHERE person.KOATUUCodeID=idKOATUULevel2)"; $KOATUU1_sql = "(SELECT KOATUULevel1FullName FROM koatuulevel1 " . "WHERE person.KOATUUCodeID=idKOATUULevel1)"; $KOATUU_sql = "IF (ISNULL(" . $KOATUU3_sql . ")," . "IF (ISNULL(" . $KOATUU2_sql . ")," . "IF (ISNULL(" . $KOATUU1_sql . "),NULL," . $KOATUU1_sql . ")," . $KOATUU2_sql . ")," . $KOATUU3_sql . ")"; $field_num_index = $to_select ? $field_num_indexes[$i] : 0; if ($to_select) { array_push($select, new CDbExpression($KOATUU_sql . " AS KOATUU")); $widget_columns[$field_num_index] = array('name' => 'KOATUU', 'header' => $header, 'value' => function ($data) { echo $data->KOATUU; }); } if ($condition_type == 1 && $alternative_condition_value) { $criteria->addCondition("person.KOATUUCodeID = '" . $alternative_condition_value . "'"); } if (($condition_type == 2 || $condition_type == 3) && $condition_value) { $koatuu_keys = explode('|', $condition_value); $result_ids = array(); $denial = $condition_type == 3 ? "NOT" : ""; $kriteria1 = new CDbCriteria(); $kriteria2 = new CDbCriteria(); $kriteria3 = new CDbCriteria(); foreach ($koatuu_keys as $koatuu_key) { $or_koatuu_keys = explode('&', $koatuu_key); if (count($or_koatuu_keys) > 1) { $koatuu1_like_disjunct = '1'; $koatuu2_like_disjunct = '1'; $koatuu3_like_disjunct = '1'; foreach ($or_koatuu_keys as $koatuu_k) { $koatuu3_like_disjunct .= " AND (concat(KOATUULevel3FullName," . "' (тип: ',KOATUULevel3Type,')') LIKE '%" . $koatuu_k . "%')"; $koatuu2_like_disjunct .= ' AND (KOATUULevel2FullName LIKE "%' . $koatuu_k . '%")'; $koatuu1_like_disjunct .= ' AND (KOATUULevel1FullName LIKE "%' . $koatuu_k . '%")'; } $kriteria3->addCondition($koatuu3_like_disjunct, 'OR'); $kriteria2->addCondition($koatuu2_like_disjunct, 'OR'); $kriteria1->addCondition($koatuu1_like_disjunct, 'OR'); } else { $kriteria3->addCondition("concat(KOATUULevel3FullName," . "' (тип: ',KOATUULevel3Type,')') LIKE '%" . $koatuu_key . "%'", "OR"); $kriteria2->addCondition('KOATUULevel2FullName LIKE "%' . $koatuu_key . '%"', "OR"); $kriteria1->addCondition('KOATUULevel1FullName LIKE "%' . $koatuu_key . '%"', "OR"); } } $k3models = KoatuuLevel3::model()->findAll($kriteria3); foreach ($k3models as $model) { /* @var $model KoatuuLevel3 */ $result_ids[$model->idKOATUULevel3] = $model->idKOATUULevel3; } $k2models = KoatuuLevel2::model()->findAll($kriteria2); foreach ($k2models as $model) { /* @var $model KoatuuLevel2 */ $result_ids[$model->idKOATUULevel2] = $model->idKOATUULevel2; } $k1models = KoatuuLevel1::model()->findAll($kriteria1); foreach ($k1models as $model) { /* @var $model KoatuuLevel1 */ $result_ids[$model->idKOATUULevel1] = $model->idKOATUULevel1; } $koatuu_id_in = implode(',', $result_ids); if (!$koatuu_id_in) { $criteria->addCondition('person.KOATUUCodeID IS ' . $denial . ' NULL'); } else { $criteria->addCondition('person.KOATUUCodeID ' . $denial . ' IN (' . $koatuu_id_in . ')'); } } if ($condition_type == 4) { $criteria->addCondition("person.KOATUUCodeID = '' OR ISNULL(person.KOATUUCodeID)"); } //KOATUU END //////////////////////////////////////////////////// break; case 3: $rels = array(array('name' => 'person', 'select' => true), array('name' => 'person.country', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 'person.CountryID', 'db_field' => 'country.CountryName'); $widget_column = array('name' => 'country.CountryName', 'header' => $header, 'value' => function ($data) { if (!empty($data->person->country)) { echo $data->person->country->CountryName; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 4: $rels = array(array('name' => 'person', 'select' => true), array('name' => 'person.school', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 'person.SchoolID', 'db_field' => 'school.SchoolName'); $widget_column = array('name' => 'school.SchoolName', 'header' => $header, 'value' => function ($data) { if (!empty($data->person->school)) { echo $data->person->school->SchoolName; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 5: $rels = array(array('name' => 'person', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field' => 'person.BirthPlace'); $widget_column = array('name' => 'person.BirthPlace', 'header' => $header, 'value' => function ($data) { echo $data->person->BirthPlace; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); /////////////////////////////////////// break; case 6: $rels = array(array('name' => 'person', 'select' => true), array('name' => 'person.language', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 'person.LanguageID', 'db_field' => 'language.LanguagesName'); $widget_column = array('name' => 'language.LanguagesName', 'header' => $header, 'value' => function ($data) { if (!empty($data->person->language)) { echo $data->person->language->LanguagesName; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 7: // $group = 't.idPersonSpeciality'; $SPEC_sql = "concat_ws(' '," . "SpecialityClasifierCode," . "(case substr(SpecialityClasifierCode,1,1) when '6' then " . "SpecialityDirectionName else SpecialityName end)," . "(case SpecialitySpecializationName when '' then '' " . " else concat('(',SpecialitySpecializationName,')') end)" . ",',',concat('форма: ',eduform.PersonEducationFormName))"; $rels = array(array('name' => 'sepciality', 'select' => false), array('name' => 'sepciality.eduform', 'select' => false)); $sel = array('to_select' => $to_select, 'db_field_id' => 't.SepcialityID', 'sql_as' => 'SPEC', 'sql_expr' => $SPEC_sql, 'group_concat' => true); $widget_column = array('name' => 'SPEC', 'header' => $header, 'value' => function ($data) { $_arr = array(); $_nodes = explode('||', $data->SPEC); foreach ($_nodes as $_node) { $_subjs = explode(';;', $_node); if (!$_node) { continue; } $is_first = true; foreach ($_subjs as $_subj) { if (isset($_arr[$_subj]) || !$_subj) { continue; } $_arr[$_subj] = true; if (!$is_first) { echo '<br/>'; } else { $is_first = false; } echo $_subj; } } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 8: $group = 't.idPersonSpeciality'; $rels = array(array('name' => 'sepciality', 'select' => true), array('name' => 'sepciality.facultet', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field' => 'facultet.FacultetFullName'); $widget_column = array('name' => 'facultet.FacultetFullName', 'header' => $header, 'value' => function ($data) { if (!empty($data->sepciality->facultet)) { echo $data->sepciality->facultet->FacultetFullName; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); /////////////////////////////////////// break; case 9: $group = 't.idPersonSpeciality'; $sel = array('to_select' => $to_select, 'db_field' => 'isBudget'); $widget_column = array('name' => 'isBudget', 'header' => $header, 'value' => function ($data) { echo $data->isBudget ? "так" : "ні"; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldCheckboxOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 10: $group = 't.idPersonSpeciality'; $sel = array('to_select' => $to_select, 'db_field' => 'isContract'); $widget_column = array('name' => 'isContract', 'header' => $header, 'value' => function ($data) { echo $data->isContract ? "так" : "ні"; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldCheckboxOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 11: $group = 't.idPersonSpeciality'; $sel = array('to_select' => $to_select, 'db_field' => 'isNeedHostel'); $widget_column = array('name' => 'isNeedHostel', 'header' => $header, 'value' => function ($data) { echo $data->isNeedHostel ? "так" : "ні"; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldCheckboxOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 12: $group = 't.idPersonSpeciality'; $rels = array(array('name' => 'status', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 't.StatusID', 'db_field' => 'status.PersonRequestStatusTypeName'); $widget_column = array('name' => 'status.PersonRequestStatusTypeName', 'header' => $header, 'value' => function ($data) { if (!empty($data->status)) { echo $data->status->PersonRequestStatusTypeName; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 13: $group = 't.idPersonSpeciality'; $sel = array('to_select' => $to_select, 'db_field' => 't.CreateDate'); $widget_column = array('name' => 't.CreateDate', 'header' => $header, 'value' => function ($data) { echo date('d.m.Y H:i:s', strtotime($data->CreateDate)); }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldDateOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 14: $rels = array(array('name' => 'documentSubject1', 'select' => true), array('name' => 'documentSubject1.subject1', 'select' => true), array('name' => 'documentSubject1.document1', 'select' => true), array('name' => 'documentSubject2', 'select' => true), array('name' => 'documentSubject2.subject2', 'select' => true), array('name' => 'documentSubject2.document2', 'select' => true), array('name' => 'documentSubject3', 'select' => true), array('name' => 'documentSubject3.subject3', 'select' => true), array('name' => 'documentSubject3.document3', 'select' => true)); $sel = array('to_select' => $to_select, 'sql_as' => 'ZNO', 'sql_expr' => "group_concat(DISTINCT concat_ws(';;',\r\n IF(ISNULL(t.DocumentSubject1),'',\r\n concat(\r\n subject1.SubjectName,\r\n '; бал: ',IF(ISNULL(documentSubject1.SubjectValue),\r\n 'немає',documentSubject1.SubjectValue),\r\n '; номер: ',IF(ISNULL(document1.Numbers),\r\n 'немає',document1.Numbers),\r\n '; PIN: ',IF(ISNULL(document1.ZNOPin),\r\n 'немає',document1.ZNOPin)\r\n )\r\n ),\r\n IF(ISNULL(t.DocumentSubject2),'',\r\n concat(\r\n subject2.SubjectName,\r\n '; бал: ',IF(ISNULL(documentSubject2.SubjectValue),\r\n 'немає',documentSubject2.SubjectValue),\r\n '; номер: ',IF(ISNULL(document2.Numbers),\r\n 'немає',document2.Numbers),\r\n '; PIN: ',IF(ISNULL(document2.ZNOPin),\r\n 'немає',document2.ZNOPin)\r\n )\r\n ),\r\n IF(ISNULL(t.DocumentSubject3),'',\r\n concat(\r\n subject3.SubjectName,\r\n '; бал: ',IF(ISNULL(documentSubject3.SubjectValue),\r\n 'немає',documentSubject3.SubjectValue),\r\n '; номер: ',IF(ISNULL(document3.Numbers),\r\n 'немає',document3.Numbers),\r\n '; PIN: ',IF(ISNULL(document3.ZNOPin),\r\n 'немає',document3.ZNOPin)\r\n )\r\n )\r\n ) SEPARATOR '||')"); $widget_column = array('name' => 'ZNO', 'header' => $header, 'value' => function ($data) { $_arr = array(); $_nodes = explode('||', $data->ZNO); foreach ($_nodes as $_node) { $_subjs = explode(';;', $_node); if (!$_node) { continue; } $is_first = true; foreach ($_subjs as $_subj) { if (isset($_arr[$_subj]) || !$_subj) { continue; } $_arr[$_subj] = true; if (!$is_first) { echo '<br/>'; } else { $is_first = false; } echo $_subj; } } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); /////////////////////////////////////// break; case 16: //$group = 't.idPersonSpeciality'; $rels = array(array('name' => 'exam1', 'select' => true), array('name' => 'exam2', 'select' => true), array('name' => 'exam3', 'select' => true)); $sel = array('to_select' => $to_select, 'sql_as' => 'EXAM', 'sql_expr' => "concat_ws(';;',\r\n IF(ISNULL(t.Exam1ID),'',\r\n concat(exam1.SubjectName,'; бал: ',\r\n IF(ISNULL(t.Exam1Ball),'немає',t.Exam1Ball))),\r\n IF(ISNULL(t.Exam2ID),'',\r\n concat(exam2.SubjectName,'; бал: ',\r\n IF(ISNULL(t.Exam2Ball),'немає',t.Exam2Ball))),\r\n IF(ISNULL(t.Exam3ID),'',\r\n concat(exam3.SubjectName,'; бал: ',\r\n IF(ISNULL(t.Exam3Ball),'немає',t.Exam3Ball)))\r\n )", 'group_concat' => true); $widget_column = array('name' => 'EXAM', 'header' => $header, 'value' => function ($data) { $_arr = array(); $_nodes = explode('||', $data->EXAM); foreach ($_nodes as $_node) { $_subjs = explode(';;', $_node); if (!$_node) { continue; } $is_first = true; foreach ($_subjs as $_subj) { if (isset($_arr[$_subj]) || !$_subj) { continue; } $_arr[$_subj] = true; if (!$is_first) { echo '<br/>'; } else { $is_first = false; } echo $_subj; } } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); /////////////////////////////////////// break; case 18: $rels = array(array('name' => 'person', 'select' => true), array('name' => 'person.docs', 'select' => false), array('name' => 'person.docs.type', 'select' => false)); $sel = array('to_select' => $to_select, 'sql_as' => 'DOCS', 'sql_expr' => "concat(\r\n type.PersonDocumentTypesName,\r\n ': ',\r\n IF(ISNULL(docs.Series),'',docs.Series),' ',\r\n IF(ISNULL(docs.Numbers),'',concat(docs.Numbers,' ')),\r\n IF((ISNULL(docs.Issued) OR docs.Issued=''),\r\n '',concat('видано: ',docs.Issued,', ')),\r\n IF((ISNULL(docs.DateGet) OR docs.DateGet LIKE '1970-01-01'),\r\n '',concat('дата видачі ',docs.DateGet,' ')),\r\n IF ((ISNULL(docs.AtestatValue) OR docs.AtestatValue = 0),'',\r\n concat('(значення: ',docs.AtestatValue, ')'))\r\n )", 'group_concat' => true); $widget_column = array('name' => 'DOCS', 'header' => $header, 'value' => function ($data) { $_arr = array(); $_nodes = explode('||', $data->DOCS); foreach ($_nodes as $_node) { $_subjs = explode(';;', $_node); if (!$_node) { continue; } $is_first = true; foreach ($_subjs as $_subj) { if (isset($_arr[$_subj]) || !$_subj) { continue; } $_arr[$_subj] = true; if (!$is_first) { echo '<br/>'; } else { $is_first = false; } echo $_subj; } } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); /////////////////////////////////////// break; case 19: $rels = array(array('name' => 'pbenefits', 'select' => false), array('name' => 'pbenefits.psbenefit', 'select' => false), array('name' => 'pbenefits.psbenefit.benefit', 'select' => false)); $sel = array('to_select' => $to_select, 'sql_as' => 'BENEFITS', 'sql_expr' => "\r\n concat(\r\n benefit.BenefitName,\r\n ': ',\r\n IF(ISNULL(psbenefit.Series),'',concat('серія: ',psbenefit.Series)),' ',\r\n IF(ISNULL(psbenefit.Numbers),'',concat('номер: ',psbenefit.Numbers,' ')),\r\n IF((ISNULL(psbenefit.Issued) OR psbenefit.Issued=''),\r\n '',concat('видано: ',psbenefit.Issued,', ')),\r\n IF ((benefit.isPV = 1),' (першочергово)',''),\r\n IF ((benefit.isPZK = 1),' (поза конкурсом)','')\r\n )", 'group_concat' => true); $widget_column = array('name' => 'BENEFITS', 'header' => $header, 'type' => 'raw', 'value' => function ($data) { $_arr = array(); $_nodes = explode('||', $data->BENEFITS); foreach ($_nodes as $_node) { $_subjs = explode(';;', $_node); if (!$_node) { continue; } $is_first = true; foreach ($_subjs as $_subj) { if (isset($_arr[$_subj]) || !$_subj) { continue; } $_arr[$_subj] = true; if (!$is_first) { echo '<br/>'; } else { $is_first = false; } echo $_subj; } } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); /////////////////////////////////////// break; case 20: $rels = array(array('name' => 'pbenefits', 'select' => false), array('name' => 'pbenefits.psbenefit', 'select' => false), array('name' => 'pbenefits.psbenefit.benefit', 'select' => false)); $sel = array('to_select' => $to_select, 'db_field_id' => 'psbenefit.BenefitID', 'sql_as' => 'BENTYPES', 'sql_expr' => 'benefit.BenefitName', 'group_concat' => true); $widget_column = array('name' => 'BENTYPES', 'header' => $header, 'value' => function ($data) { echo $data->BENTYPES; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); /////////////////////////////////////// break; case 21: $rels = array(array('name' => 'pbenefits', 'select' => false), array('name' => 'pbenefits.psbenefit', 'select' => false), array('name' => 'pbenefits.psbenefit.benefit', 'select' => false)); $sel = array('to_select' => $to_select, 'db_field' => 'benefit.isPV'); $widget_column = array('name' => 'benefit.isPV', 'header' => $header, 'value' => function ($data) { if (!empty($data->pbenefits)) { $echo = 'ні'; foreach ($data->pbenefits as $pben) { if ($pben->psbenefit->benefit->isPV) { $echo = 'так'; } } echo $echo; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldCheckboxOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 22: $rels = array(array('name' => 'pbenefits', 'select' => false), array('name' => 'pbenefits.psbenefit', 'select' => false), array('name' => 'pbenefits.psbenefit.benefit', 'select' => false)); $sel = array('to_select' => $to_select, 'db_field' => 'benefit.isPZK'); $widget_column = array('name' => 'benefit.isPZK', 'header' => $header, 'value' => function ($data) { if (!empty($data->pbenefits)) { $echo = 'ні'; foreach ($data->pbenefits as $pben) { if ($pben->psbenefit->benefit->isPZK) { $echo = 'так'; } } echo $echo; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldCheckboxOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 15: $group = 't.idPersonSpeciality'; $rels = array(array('name' => 'sepciality', 'select' => true), array('name' => 'sepciality.eduform', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 'sepciality.PersonEducationFormID', 'db_field' => 'eduform.PersonEducationFormName'); $widget_column = array('name' => 'eduform.PersonEducationFormName', 'header' => $header, 'value' => function ($data) { echo $data->sepciality->eduform->PersonEducationFormName; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 17: $group = 't.idPersonSpeciality'; $rels = array(array('name' => 'qualification', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 't.QualificationID', 'db_field' => 'qualification.QualificationName'); $widget_column = array('name' => 'qualification.QualificationName', 'header' => $header, 'value' => function ($data) { if (!empty($data->qualification)) { echo $data->qualification->QualificationName; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 23: $group = 't.idPersonSpeciality'; $rels = array(array('name' => 'sepciality', 'select' => true)); $DIRECTION_sql = "concat_ws(' '," . "SpecialityClasifierCode," . "(case substr(SpecialityClasifierCode,1,1) when '6' then " . "SpecialityDirectionName else SpecialityName end)," . "(case SpecialitySpecializationName when '' then '' " . " else concat('(',SpecialitySpecializationName,')') end)" . ")"; $sel = array('to_select' => $to_select, 'sql_as' => 'DIRECTION', 'sql_expr' => $DIRECTION_sql, 'group_concat' => false); $widget_column = array('name' => 'DIRECTION', 'header' => $header, 'value' => function ($data) { echo $data->DIRECTION; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 24: $rels = array(array('name' => 'person', 'select' => true), array('name' => 'person.docs', 'select' => false), array('name' => 'person.docs.type', 'select' => false)); $sel = array('to_select' => $to_select, 'db_field_id' => 'docs.TypeID', 'sql_as' => 'DOCTYPES', 'sql_expr' => 'type.PersonDocumentTypesName', 'group_concat' => true); $widget_column = array('name' => 'DOCTYPES', 'header' => $header, 'value' => function ($data) { echo $data->DOCTYPES; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); /////////////////////////////////////// break; case 25: $rels = array(array('name' => 'coursedp', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field' => 'coursedp.CourseDPName'); $widget_column = array('name' => 'CourseDPName', 'header' => $header, 'value' => function ($data) { echo !$data->coursedp ? "" : $data->coursedp->CourseDPName; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 26: $rels = array(); $sel = array('to_select' => $to_select, 'sql_as' => 'PersonCase', 'sql_expr' => "CONCAT((CASE t.QualificationID \r\n WHEN 1 THEN 'Б' \r\n WHEN 2 THEN 'СМ' \r\n WHEN 3 THEN 'СМ' \r\n WHEN 4 THEN 'МС' END), t.CourseID, '-', LPAD(t.PersonRequestNumber,5,'0'))"); $widget_column = array('name' => 'PersonCase', 'header' => $header, 'value' => function ($data) { echo $data->PersonCase; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 27: $group = 't.idPersonSpeciality'; $sel = array('to_select' => $to_select, 'db_field' => 't.isCopyEntrantDoc'); $widget_column = array('name' => 't.isCopyEntrantDoc', 'header' => $header, 'value' => function ($data) { echo $data->isCopyEntrantDoc ? "так" : "ні"; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldCheckboxOnly($with_rel, $rels, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 28: $rels = array(array('name' => 'entrantdoc', 'select' => true), array('name' => 'entrantdoc.docaward', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 'entrantdoc.PersonDocumentsAwardsTypesID', 'db_field' => 'docaward.PersonDocumentsAwardsTypesName'); $widget_column = array('name' => 'docaward.PersonDocumentsAwardsTypesName', 'header' => $header, 'value' => function ($data) { if (!empty($data->entrantdoc)) { if (!empty($data->entrantdoc->docaward)) { echo $data->entrantdoc->docaward->PersonDocumentsAwardsTypesName; } } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 29: $rels = array(); $sel = array('to_select' => $to_select, 'sql_as' => 'ReqCase', 'sql_expr' => "LPAD(t.RequestNumber,5,'0')"); $widget_column = array('name' => 'ReqCase', 'header' => $header, 'value' => function ($data) { echo $data->ReqCase; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 30: $rels = array(array('name' => 'xlang', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 'LanguageExID', 'db_field' => 'xlang.LanguageExName'); $widget_column = array('name' => 'xlang.LanguageExName', 'header' => $header, 'value' => function ($data) { if (!empty($data->person->language)) { echo $data->xlang->LanguageExName; } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 31: $group = 't.idPersonSpeciality'; $rels = array(array('name' => 'entrantdoc', 'select' => true), array('name' => 'entrantdoc.docbasespec', 'select' => true)); $sel = array('to_select' => $to_select, 'db_field_id' => 'entrantdoc.PersonBaseSpecealityID', 'db_field' => 'docbasespec.PersonBaseSpecialityName'); $widget_column = array('name' => 'docbasespec.PersonBaseSpecialityName', 'header' => $header, 'value' => function ($data) { if (!empty($data->entrantdoc)) { if (!empty($data->entrantdoc->docbasespec)) { echo $data->entrantdoc->docbasespec->PersonBaseSpecialityClasifierCode . ' ' . $data->entrantdoc->docbasespec->PersonBaseSpecialityName; } } }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextAlternative($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $alternative_condition_value, $criteria); //////////////////////////////////////////// break; case 32: $group = 't.idPersonSpeciality'; $rels = array(); $sel = array('to_select' => $to_select, 'db_field' => 't.CoursedpBall'); $widget_column = array('name' => 't.CoursedpBall', 'header' => $header, 'value' => function ($data) { echo $data->CoursedpBall; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; case 33: $group = 't.idPersonSpeciality'; $rels = array(); $sel = array('to_select' => $to_select, 'db_field' => 't.priority'); $widget_column = array('name' => 't.priority', 'header' => $header, 'value' => function ($data) { echo $data->priority; }); $field_num_index = $to_select ? $field_num_indexes[$i] : 0; $this->ProcessFieldTextOnly($with_rel, $rels, $select, $sel, $widget_columns, $widget_column, $field_num_index, $condition_type, $condition_value, $criteria); //////////////////////////////////////////// break; } } $criteria->select = $select; $criteria->with = $with_rel; $criteria->group = $group; $criteria->together = true; $model = new Personspeciality(); //$criteria->addCondition('KOA=123'); $dataProvider = new CActiveDataProvider($model, array('criteria' => $criteria, 'sort' => array('defaultOrder' => array('idPersonSpeciality' => CSort::SORT_ASC), 'attributes' => array('NAME' => array('asc' => 'NAME', 'desc' => 'NAME DESC'), 'DIRECTION' => array('asc' => 'sepciality.SpecialityName ASC,sepciality.SpecialityDirectionName ASC,sepciality.SpecialityClasifierCode ASC', 'desc' => 'sepciality.SpecialityName DESC,sepciality.SpecialityDirectionName DESC,sepciality.SpecialityClasifierCode DESC'), 'KOATUU' => array('asc' => 'KOATUU', 'desc' => 'KOATUU DESC'), 'ZNO' => array('asc' => 'ZNO', 'desc' => 'ZNO DESC'), 'BENEFITS' => array('asc' => 'BENEFITS', 'desc' => 'BENEFITS DESC'), 'DOCS' => array('asc' => 'DOCS', 'desc' => 'DOCS DESC'), 'PersonCase' => array('asc' => 'PersonCase', 'desc' => 'PersonCase DESC'), 'status.PersonRequestStatusTypeName' => array('asc' => 'status.PersonRequestStatusTypeName', 'desc' => 'status.PersonRequestStatusTypeName DESC'), 'facultet.FacultetFullName' => array('asc' => 'facultet.FacultetFullName', 'desc' => 'facultet.FacultetFullName DESC'), 'language.LanguagesName' => array('asc' => 'language.LanguagesName', 'desc' => 'language.LanguagesName DESC'), 'person.BirthPlace' => array('asc' => 'person.BirthPlace', 'desc' => 'person.BirthPlace DESC'), 'person.Birthday' => array('asc' => 'person.Birthday', 'desc' => 'person.Birthday DESC'), 'school.SchoolName' => array('asc' => 'school.SchoolName', 'desc' => 'school.SchoolName DESC'), 't.CreateDate' => array('asc' => 't.CreateDate', 'desc' => 't.CreateDate DESC'), 't.priority' => array('asc' => 't.priority', 'desc' => 't.priority DESC'), 't.CoursedpBall' => array('asc' => 't.CoursedpBall', 'desc' => 't.CoursedpBall DESC'), '*')), 'pagination' => array('pageSize' => $reqExcel ? 15000 : 150))); $dataProvider->setTotalItemCount(count($model->findAll($criteria))); $this->layout = $reqExcel ? '//layouts/clear' : '//layouts/main_noblock'; $direct_widget_columns = array(); for ($i = 0; $i < count($field_nums); $i++) { foreach ($widget_columns as $key => $value) { if ($key == $i) { $direct_widget_columns[] = $value; } } } $this->render($reqExcel ? '/statistic/rept_excel' : '/statistic/rept', array('data' => $dataProvider, 'columns' => $direct_widget_columns)); }
public function CoursedpBall() { $model = Personspeciality::model()->findBySql("SELECT `CoursedpBall` FROM `personspeciality` WHERE `idPersonSpeciality` = {$this->idPersonSpeciality}"); if (!empty($model)) { return $model->CoursedpBall; } return ""; }
public function actionUtil() { $model = new PersonSpecialityView('search'); $model->unsetAttributes(); // clear any default values if (isset($_GET['PersonSpecialityView'])) { $model->attributes = $_GET['PersonSpecialityView']; $out = ""; if (isset($_GET['renum'])) { $c = new CDbCriteria(); $c->compare("SepcialityID", $model->SepcialityID); $c->order = "CreateDate"; $pspes = Personspeciality::model()->findAll($c); foreach ($pspes as $i => $obj) { $out .= "RequestNumber: " . $obj->RequestNumber . " chaget to: " . ($i + 1) . "<br>"; $obj->RequestNumber = $i + 1; if ($obj->QualificationID > 1 && $obj->SepcialityID != 70686 && $obj->SepcialityID != 90661) { $obj->scenario = "SHORTFORM"; //$obj->CausalityID = 100; } if (!$obj->save()) { debug(print_r($obj->getErrors(), true)); } } } $this->render('sverka', array("model" => $model)); if (!empty($out)) { echo $out; } } else { $this->render('util'); } }
public function actionDocsend() { if (isset($_REQUEST["idSpeciality"])) { $model = Personspeciality::model()->findAll("SepcialityID = " . $_REQUEST["idSpeciality"] . " and StatusID in (7)"); } elseif (isset($_REQUEST["idQualification"])) { $model = Personspeciality::model()->findAll("QualificationID = " . $_REQUEST["idQualification"] . " and StatusID in (7)"); } elseif (!isset($_REQUEST["idPersons"]) || trim($_REQUEST["idPersons"]) == "") { $model = Personspeciality::model()->findAll("StatusID = 7"); } $res = array(); if (!isset($_REQUEST["idPersons"]) || trim($_REQUEST["idPersons"]) == "") { foreach ($model as $item) { $res[] = $item->person->idPerson; } } else { $model = Person::model()->findAll("idPerson in (" . $_REQUEST["idPersons"] . ")"); foreach ($model as $item) { $res[] = $item->idPerson; } } $this->render("proces/doc", array("res" => json_encode($res))); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = Personspeciality::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** * Метод повертає архів із фото усіх зарахованих персон для факультету з ID = $id */ public function actionGetphotozip() { $id = Yii::app()->request->getParam('id', 0); if (!is_numeric($id)) { throw new CHttpException(400, 'Помилка: ID має бути цілим числом.'); } $faculty = Facultets::model()->findByPk($id); if (!$faculty) { throw new CHttpException(400, 'Факультет з ID=' . $id . ' не знайдено.'); } $criteria = new CDbCriteria(); $criteria->with = array('person', 'sepciality', 'sepciality.facultet'); $criteria->compare('sepciality.FacultetID', $id); $criteria->compare('StatusID', 7); $criteria->together = true; $models = Personspeciality::model()->findAll($criteria); if (count($models) == 0) { throw new CHttpException(400, 'Помилка: немає даних.'); } $zipname = 'Facultet_' . $models[0]->sepciality->FacultetID . '.zip'; $zip = new ZipArchive(); $zip->open($zipname, ZipArchive::CREATE); $def_path = Yii::app()->getBasePath() . '/../images/Photos/'; $count = 0; foreach ($models as $model) { $file_entity = $def_path . $model->person->PhotoName; if (file_exists($file_entity)) { $file_ext = substr(strrchr($file_entity, '.'), 1); $res = $zip->addFile($file_entity, $model->PersonID . '.' . $file_ext); if ($res) { $count++; } } } $zip->close(); if ($count > 0) { $this->redirect(Yii::app()->CreateUrl($zipname)); } else { throw new CHttpException(400, 'Помилка: не знайдено жодного файлу фотографії.'); } }
width: 230px; } li.person-item-edboid { width: 200px; } li.person-item-msg { width: 500px; } </style> <?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ $requests = Personspeciality::model()->findAll("SepcialityID = {$specid}"); echo "<div> Обрано " . count($requests) . " заявок. </div>"; $i = 0; foreach ($requests as $item) { $msg = ""; try { $res = WebServices::getPersonBaseEducations($item->person->codeU); $res = CJSON::decode($res); if (is_array($res)) { $msg .= ""; foreach ($res as $obj) { $obj = (object) $obj; if (!(strpos($obj->universityFullName, "Запорізький національний університет") > 0)) { $msg .= $obj->personEducationFormName . " : " . $obj->personEducationPaymentTypeName . " : " . $obj->qualificationName . " : " . $obj->specDirectionName . " : " . $obj->universityFullName; } else { $msg = " немає ";
public function valididateCopyEntrantDoc($attributes) { if ($this->isCopyEntrantDoc == 1) { return true; } $count = Personspeciality::model()->count("PersonID = {$this->PersonID} and isCopyEntrantDoc = 0 and EntrantDocumentID = {$this->EntrantDocumentID} "); if ($this->isNewRecord) { if ($count > 0) { $this->addError($attributes, "В іншій заявці вже вказано оригінал документу!"); return false; } } else { $model = Personspeciality::model()->findByPk($this->idPersonSpeciality); if ($model->isCopyEntrantDoc == 1 && $count > 0) { $this->addError($attributes, "В іншій заявці вже вказано оригінал документу!"); return false; } } return true; }
} else { echo '<span ' . ' title="Має право приймати участь у конкурсі, але без права на позаконкурсний прийом." ' . ' style="color: #CA0EE3;">' . 'Не проходить' . '</span>'; } } if (Personspeciality::$is_rating_order && $data->isBudget && !$data->isOutOfComp && !$data->Quota1) { //на бюджет $was = Personspeciality::decrementCounter(Personspeciality::$C_BUDGET); if ($was) { $local_counter = 1 + $data->sepciality->SpecialityBudgetCount - $was; echo '<span ' . ' title="Місце у рейтингу прийому за кошти держ. бюджету за попередньою інформацією." ' . ' style="color: lightgreen; font-size: 14pt; font-family: Oreos;"> ' . $local_counter . '</span>'; } } if (Personspeciality::$is_rating_order && (!$data->isBudget && !$data->isOutOfComp && !$data->Quota1 || !$was && $data->isBudget && !$data->isOutOfComp && !$data->Quota1)) { //на контракт $was = Personspeciality::decrementCounter(Personspeciality::$C_CONTRACT); if ($was) { $local_counter = 1 + $data->sepciality->SpecialityContractCount - $was; echo '<span ' . ' title="Місце у рейтингу на контракт за попередньою інформацією." ' . ' style="color: #ad6704; font-size: 14pt; font-family: Oreos;"> ' . $local_counter . '</span>'; } else { echo '<span ' . ' title="...за попередньою інформацією." ' . ' style="color: red;">' . 'Не проходить' . '</span>'; } } //var_dump($data->rating_order_mode); if (!Personspeciality::$is_rating_order) { echo $data->edboID; } ?> </a> <?php $doc_orig = 'Копія'; $is_orig = 0;
public function actionRatinginfolinks6() { $criteria = new CDbCriteria(); $criteria->with = array('eduform'); $criteria->together = true; //$criteria->addCondition('eduform.idPersonEducationForm IN (1,2)'); $criteria->addCondition('substr(SpecialityClasifierCode,1,1) LIKE "6"'); $criteria->addCondition('idSpeciality NOT IN(162738)'); $criteria->select = array('idSpeciality', new CDbExpression("concat_ws(' '," . "SpecialityClasifierCode," . "(case substr(SpecialityClasifierCode,1,1) when '6' then " . "SpecialityDirectionName else SpecialityName end)," . "(case SpecialitySpecializationName when '' then '' " . " else concat('(',SpecialitySpecializationName,')') end)" . ",',',concat('форма: ',eduform.PersonEducationFormName)) AS tSPEC")); $criteria->order = 'SpecialityName ASC,SpecialityDirectionName ASC,SpecialityClasifierCode ASC, eduform.PersonEducationFormName ASC'; echo '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Інформація про подані абітурієнтами заяви (ОКР "Бакалавр")</title> </head><body>'; echo "<p style='text-align: right; font-family: \"Courier New\"; font-size: 8pt;'>Дані сформовано " . date('d.m.Y H:i') . "</p>"; echo "<h1 style='text-align: center;'>Інформація про подані абітурієнтами заяви</h1>"; echo "<h3 style='text-align: center;'>Заяви на ОКР \"Бакалавр\"</h3>"; echo "<ul>"; foreach (Specialities::model()->findAll($criteria) as $spec) { $href = Yii::app()->createAbsoluteUrl("/rating/rating/ratinginfo", array('Personspeciality[SepcialityID]' => $spec->idSpeciality, 'Personspeciality[rating_order_mode]' => 1)); echo "<li><a href='" . $href . "' target='_blank'>" . $spec->tSPEC . " (" . Personspeciality::model()->count('(SepcialityID=' . $spec->idSpeciality . ' AND StatusID IN (1,4,5,7,8))') . ")</a></li>"; } echo "</ul><footer style='text-align: center;'>ЗНУ, Лабораторія ІС та КТ</footer>" . '<!--ZNUstat--><center> <script> document.writeln(\'<a href="http://sites.znu.edu.ua/counter/statistic1.php?site_id=10&time=year&groupby=daily&t=\'+Math.random()+\'"><img src="http://sites.znu.edu.ua:8000/counter/count.php?id=10&t=\'+Math.random()+\'"></a>\'); </script> <noscript> <a href="http://sites.znu.edu.ua/counter/statistic1.php?site_id=10&time=year&groupby=daily"><img src="http://sites.znu.edu.ua:8000/counter/count.php?id=10"></a> </noscript> </center><!--/ZNUstat-->' . "</body></html>"; }
/** * Формування рейтингових даних для цільовиків. * @param integer $mode 0 - цільовики, 1 - пільговики, 2 - бюджетники, 3 - контрактники, 4 - решта * @param boolean $sort_status сортувати за статусом? * @return Personspeciality[] */ public function rating_search($mode, $sort_status = false) { if (!is_numeric($this->SepcialityID)) { return array(); } Yii::import('application.models.Qualifications'); $spec_model = Specialities::model()->findByPk($this->SepcialityID); $first_symbol = mb_substr($spec_model->SpecialityClasifierCode, 0, 1, 'utf-8'); $is_spec_mag = $first_symbol == '7' || $first_symbol == '8'; if (!$spec_model) { return array(); } $criteria = new CDbCriteria(); //З якими відношеннями маємо справу $with_rel = array(); array_push($with_rel, 'sepciality'); array_push($with_rel, 'person'); array_push($with_rel, 'olymp'); array_push($with_rel, 'entrantdoc'); array_push($with_rel, 'educationForm'); array_push($with_rel, 'edbo'); array_push($with_rel, 'documentSubject1'); array_push($with_rel, 'documentSubject2'); array_push($with_rel, 'documentSubject3'); array_push($with_rel, 'documentSubject1.subject1'); array_push($with_rel, 'documentSubject2.subject2'); array_push($with_rel, 'documentSubject3.subject3'); $with_rel['sepciality.facultet'] = array('select' => false); $with_rel['person.country'] = array('select' => false); $with_rel['status'] = array('select' => false); $with_rel['pbenefits'] = array('select' => false); $with_rel['pbenefits.psbenefit'] = array('select' => false); $with_rel['pbenefits.psbenefit.benefit'] = array('select' => false); $criteria->with = $with_rel; //також йде вибірка :: // ПІБ персон і спеціальності, // формат поля спеціальності: (( код_спеціальності назва_спеціальності[ (назва_напряму)] , форма: назва_форми )) // бал документу ,перерахований по шкалі ЄДЕБО, // бал документу, // загальна сума балів для рейтингу, // бал профільного предмету, // відмітка про позаконкурсний вступ або ж про те, що є відповідна пільга, // відмітка про першочерговий вступ або ж про те, що є відповідна пільга, // відмітка про оригінал на іншій спеціальності, // сума балів ЗНО. // МЫ ТУТ МЕНЯЛИ УМНОЖЕНИЕ НА 5 $criteria->select = array('*', new CDbExpression("concat_ws(' ',trim(person.LastName),trim(person.FirstName),trim(person.MiddleName)) AS NAME"), new CDbExpression("concat_ws(' '," . "sepciality.SpecialityClasifierCode," . "(case substr(sepciality.SpecialityClasifierCode,1,1) when '6' then " . "sepciality.SpecialityDirectionName else sepciality.SpecialityName end)," . "(case sepciality.SpecialitySpecializationName when '' then '' " . " else concat('(',sepciality.SpecialitySpecializationName,')') end)" . ",',',concat('форма: ',educationForm.PersonEducationFormName)) AS SPEC"), new CDbExpression('ROUND( IF(ISNULL(entrantdoc.AtestatValue),0.0, IF((entrantdoc.AtestatValue > 12), entrantdoc.AtestatValue ,entrantdoc.AtestatValue)) ,2) AS ZnoDocValue'), new CDbExpression('ROUND( IF(ISNULL(entrantdoc.AtestatValue),0.0,entrantdoc.AtestatValue),2) AS PointDocValue'), new CDbExpression('(ROUND(( ROUND( IF( ISNULL(entrantdoc.AtestatValue), 0.0, IF( t.QualificationID = ' . Qualifications::$bakalavr . ', set_bal(entrantdoc.AtestatValue)* ' . Yii::app()->params['scoreweight_AtestatValue'] . ' , entrantdoc.AtestatValue ) ),2)+ IF(ISNULL(documentSubject1.SubjectValue),0.0,documentSubject1.SubjectValue*sepciality.ZnoKoef1)+ IF(ISNULL(documentSubject2.SubjectValue),0.0,documentSubject2.SubjectValue*sepciality.ZnoKoef2)+ IF(ISNULL(documentSubject3.SubjectValue),0.0,documentSubject3.SubjectValue*sepciality.ZnoKoef3)+ IF(ISNULL(t.AdditionalBall),0.0,t.AdditionalBall)+ IF(ISNULL(t.CoursedpBall),0.0,t.CoursedpBall*' . Yii::app()->params['scoreweight_CoursedpBall'] . ')+ IF(ISNULL(olymp.OlympiadAwardBonus),0.0,olymp.OlympiadAwardBonus)+ IF(ISNULL(t.Exam1Ball),0.0,t.Exam1Ball*sepciality.ZnoKoef1)+ IF(ISNULL(t.Exam2Ball),0.0,t.Exam2Ball*sepciality.ZnoKoef2)+ IF(ISNULL(t.Exam3Ball),0.0,t.Exam3Ball*sepciality.ZnoKoef3)),2)) AS ComputedPoints'), new CDbExpression('IF(documentSubject1.SubjectID IN(SELECT ssj.SubjectID FROM specialitysubjects ssj WHERE ssj.isProfile=1 AND ssj.SpecialityID=t.SepcialityID), documentSubject1.SubjectValue, IF(documentSubject2.SubjectID IN(SELECT ssj.SubjectID FROM specialitysubjects ssj WHERE ssj.isProfile=1 AND ssj.SpecialityID=t.SepcialityID), documentSubject2.SubjectValue, IF(documentSubject3.SubjectID IN(SELECT ssj.SubjectID FROM specialitysubjects ssj WHERE ssj.isProfile=1 AND ssj.SpecialityID=t.SepcialityID),documentSubject3.SubjectValue, 0 ) ) ) AS ProfileSubjectValue'), new CDbExpression('if(ISNULL((SELECT bf.idBenefit FROM personspecialitybenefits psbf ' . 'LEFT JOIN personbenefits pbf ON psbf.PersonBenefitID=pbf.idPersonBenefits ' . 'LEFT JOIN benefit bf ON pbf.BenefitID=bf.idBenefit ' . 'WHERE psbf.PersonSpecialityID=t.idPersonSpeciality AND bf.isPZK>0 LIMIT 1)),0,1) AS isOutOfComp'), new CDbExpression('if(ISNULL((SELECT bf.idBenefit FROM personspecialitybenefits psbf ' . 'LEFT JOIN personbenefits pbf ON psbf.PersonBenefitID=pbf.idPersonBenefits ' . 'LEFT JOIN benefit bf ON pbf.BenefitID=bf.idBenefit ' . 'WHERE psbf.PersonSpecialityID=t.idPersonSpeciality AND bf.isPV>0 LIMIT 1)),0,1) AS isExtraEntry'), new CDbExpression('IF((t.isCopyEntrantDoc = 0),0,(SELECT SUM(IF((ISNULL(prsp.isCopyEntrantDoc) OR prsp.isCopyEntrantDoc = 0),1,0)) FROM personspeciality prsp WHERE prsp.PersonID=t.PersonID)) AS AnyOriginal'), new CDbExpression('(IF(ISNULL(documentSubject1.SubjectValue),0.0,documentSubject1.SubjectValue)+ IF(ISNULL(documentSubject2.SubjectValue),0.0,documentSubject2.SubjectValue)+ IF(ISNULL(documentSubject3.SubjectValue),0.0,documentSubject3.SubjectValue)) AS ZNOSum')); //оформлення єдиного запиту на вибірку $criteria->together = true; //вибірка для певної спеціальності/напряму певної форми $criteria->compare("t.SepcialityID", $this->SepcialityID); //вибірка для обраних статусів або для нових заяв, допущених, рекомендованих, до наказу і затриманих $status_in = '('; $status_ids = array(); if ($this->status_confirmed) { $status_ids[] = '4'; } if ($this->status_committed) { $status_ids[] = '5'; } if ($this->status_submitted) { $status_ids[] = '7'; } $status_in .= implode(',', $status_ids) . ')'; if ($status_in != '()') { $criteria->addCondition('t.StatusID IN ' . $status_in); } else { $criteria->addCondition('t.StatusID IN (1,4,5,7,8)'); } if ($sort_status) { $criteria->addCondition('t.StatusID < 8'); } switch ($mode) { //цільовики case 0: $criteria->compare('t.QuotaID', $this->param_quotaID); if (is_numeric($this->param_quotaID)) { $criteria->limit = intval($this->quota_budget_places); } else { return array(); } if ($sort_status) { $criteria->addCondition('t.StatusID IN (7)'); } break; //пільговики //пільговики case 1: $criteria->compare('if(isnull(benefit.isPZK),0,benefit.isPZK)', 1); $criteria->addCondition('t.isBudget > 0'); if (!empty($this->exludedIDs)) { $criteria->addCondition('t.idPersonSpeciality NOT IN (' . implode(',', $this->excludedIDs) . ')'); } $criteria->limit = intval($spec_model->Quota1); if ($sort_status) { $criteria->addCondition('t.StatusID IN (7)'); } break; //бюджетники //бюджетники case 2: $criteria->addCondition('t.isBudget > 0'); $place_num = intval($spec_model->SpecialityBudgetCount) - count($this->excludedIDs); $criteria->limit = $place_num >= 0 ? $place_num : 0; if ($sort_status) { $criteria->addCondition('t.StatusID IN (7)'); } break; //контрактники //контрактники case 3: $criteria->limit = intval($spec_model->SpecialityContractCount); if ($sort_status) { $criteria->addCondition('t.StatusID IN (7,5,4)'); } break; //решта //решта case 4: $criteria->limit = 100000; break; } if (count($this->excludedIDs) > 0) { $criteria->addCondition('t.idPersonSpeciality NOT IN (' . implode(',', $this->excludedIDs) . ')'); } //дані групуються по ІД заявки $criteria->group = "t.idPersonSpeciality"; //параметр сортування даних для формування рейтингу //$rating_order = ($sort_status)? "t.StatusID DESC, ":""; $rating_order = 'ComputedPoints DESC,' . 'IF(SUM(benefit.isPV)>0,1,0) DESC, IF(ISNULL(entrantdoc.PersonDocumentsAwardsTypesID),0,10-entrantdoc.PersonDocumentsAwardsTypesID) DESC, ProfileSubjectValue DESC, t.CreateDate ASC'; // $criteria->order = $rating_order; $result_models = Personspeciality::model()->findAll($criteria); if ($mode < 4) { $excl_ids = array(); foreach ($result_models as $res_model) { $excl_ids[] = $res_model->idPersonSpeciality; } $this->excludedIDs = array_merge($this->excludedIDs, $excl_ids); } return $result_models; }