public function transformations() { return [['kategoriyaPedRabotnikaAsEnum' => 'kategoriya_ped_rabotnika', EnumTransformer::className(), ['enum' => KategoriyaPedRabotnika::className()]], ['formattedTelefon' => 'telefon', TelefonTransformer::className()], ['pasportKemVydanKodFormatted' => 'pasport_kem_vydan_kod', PasportKemVydanKodTransformer::className()], ['snilsFormatted' => 'snils', SnilsTransformer::className()], ['dataRozhdeniyaAsDate' => 'data_rozhdeniya', DateTransformer::className()], ['pasportKogdaVydanAsDate' => 'pasport_kogda_vydan', DateTransformer::className()]]; }
?> </td> <td><?php echo $item['organizaciya']; ?> </td> <td><?php echo $item['dolzhnost']; ?> </td> <td><?php echo $item['god_rozhdeniya']; ?> </td> <td><?php echo KategoriyaPedRabotnika::namesMap()[$item['imeushayasya_kategoriya']] . ', ' . date('d.m.Y', strtotime($item['attestaciya_data_prisvoeniya'])); ?> </td> <td><?php echo $item['ped_stazh']; ?> /<?php echo $item['rabota_stazh_v_dolzhnosti']; ?> /<?php echo $item['stazh_v_dolzhnosti']; ?> </td> <td><?php echo $item['obrazovanie']; ?>
.zayavlenie_row a{ font-size: 1.1em; } .fajly_tb{ margin-left: 2em;margin-bottom:1em; } .ball_row{ padding: 0.5em; } '); echo Html::a('Регистрация', '/attestaciya/registraciya/', ['class' => 'btn btn-primary']); $kategorii = \app\enums\KategoriyaPedRabotnika::namesMap(); echo Html::tag('h3', 'Список заявлений'); //echo '<ul class="">'; ?> <?php foreach ($list as $k => $v) { ?> <div class="zayavlenie_row"> <?php echo Html::a('Заявление на "' . $kategorii[$v->na_kategoriyu] . '" (начало аттестации ' . $v->vremyaProvedeniyaAttestaciiRel->nachalo . ')' . ($v->status == \app\enums\StatusZayavleniyaNaAttestaciyu::OTKLONENO ? '(заявление отклонено)' : ''), \yii\helpers\Url::to(['/attestaciya/registraciya/', 'zid' => $v->id])); ?> </div> <?php if ($otsenki[$v->id]['rabotnik_count'] == $otsenki[$v->id]['podpisannie_otsenki_count']) { ?>
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; }
?> <?php echo $form->field($filterModel, 'dolzhnost')->widget(Select2::className(), ['data' => Dolzhnost::find()->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie'), 'options' => ['placeholder' => 'Выберите должность', 'multiple' => true]]); ?> </div> <div class="col-md-3"> <?php echo $form->field($filterModel, 'varIspytanie2')->widget(Select2::className(), ['data' => \app\entities\AttestacionnoeVariativnoeIspytanie_2::find()->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie'), 'options' => ['multiple' => true]]); ?> <?php echo $form->field($filterModel, 'varIspytanie3')->widget(Select2::className(), ['data' => \app\entities\AttestacionnoeVariativnoeIspytanie_2::find()->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie'), 'options' => ['multiple' => true]]); ?> </div> <div class="col-md-3"> <?php echo $form->field($filterModel, 'kategoriya')->widget(Select2::className(), ['data' => \app\enums\KategoriyaPedRabotnika::namesOnlyPositive(), 'options' => ['multiple' => true]]); ?> <?php echo $form->field($filterModel, 'fio'); ?> </div> <div class="col-md-3"> <br> <?php echo $form->field($filterModel, 'podtverzhdenieRegistracii')->checkbox(['label' => 'Подтвержден']); ?> <?php echo $form->field($filterModel, 'zayavlenieId', ['options' => ['style' => 'margin-top:2em']]); ?> </div> </div>
<div class="panel-body">'; echo '<div class="col-md-3 no-left-padding">'; echo $form->field($registraciya, 'attestacionnyListKategoriya')->dropDownList(KategoriyaPedRabotnika::namesMap(), ['placeholder' => 'Выберите категорию', 'onChange' => 'onChangeCurrentCategoriya()', 'id' => 'attestacionnyListKategoriya']); echo '</div>'; echo '<div id="preiod_dejstviya" class="col-md-3">'; echo $form->field($registraciya, 'attestacionnyListPeriodDejstviya', ['options' => ['class' => 'drp-container form-group', 'placeholder' => 'Выберите Период действия аттестации']])->widget(DateRangePicker::classname(), ['value' => date('d.m.Y') . ' - ' . date('d.m.Y'), 'useWithAddon' => true, 'language' => 'ru', 'hideInput' => true, 'pluginOptions' => ['format' => 'DD.MM.YYYY', 'separator' => ' - ', 'opens' => 'right']]); echo '</div>'; echo '<div id="copiya_lista" class="col-md-3 no-right-padding">'; echo $form->field($registraciya, 'attestacionnyListPeriodFajl')->widget(\app\widgets\Files2Widget::className(), [])->label('Копия'); echo '</div>'; echo '<div id="data_okonchaniya_attestacii" class="col-md-3 no-right-padding">'; echo $form->field($registraciya, 'attestaciyaDataOkonchaniyaDejstviya')->widget(\kartik\widgets\DatePicker::className(), ['pluginOptions' => ['format' => 'dd.mm.yyyy']]); echo '</div>'; echo '</div> </div>'; echo $form->field($registraciya, 'kategoriya')->dropDownList(KategoriyaPedRabotnika::namesOnlyPositive(), ['placeholder' => 'Выберите категорию', 'onchange' => 'onChangeKategoriya(\'' . Html::getInputId($registraciya, 'kategoriya') . '\')', 'id' => 'registraciya-kategoriya']); //echo '<div id="varIspytanie2Div">'; //echo $form->field($registraciya,'varIspytanie2')->dropDownList( // \app\entities\AttestacionnoeVariativnoeIspytanie_2::find() // ->formattedAll(EntityQuery::DROP_DOWN,'nazvanie') //); //echo '</div>'; //echo count($registraciya->otraslevoeSoglashenie); echo '<div id="varIspytanie3Div" class="' . ((count($registraciya->otraslevoeSoglashenie) > 0 and $registraciya->kategoriya == KategoriyaPedRabotnika::VYSSHAYA_KATEGORIYA) ? 'hidden' : '') . '">'; echo $form->field($registraciya, 'varIspytanie3')->dropDownList(\app\entities\AttestacionnoeVariativnoeIspytanie_3::find()->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie'), ['disabled' => count($registraciya->otraslevoeSoglashenie) > 0 ? 'disabled' : false]); echo '</div>'; ?> <div id="panel-otraslevoe-soglashenie" class="panel panel-default"> <div class="panel-heading">
<div class="col-md-5 form-horizontal"> <div class="fields-group-heading"> <h3>Работа</h3> </div> <?php echo $form->field($model, 'pedStazh')->widget(TouchSpin::className()); ?> <?php echo $form->field($model, 'stazhVDolzhnosti')->widget(TouchSpin::className()); ?> <?php echo $form->field($model, 'kategoriya')->widget(Select2::className(), ['data' => KategoriyaPedRabotnika::namesMap()]); ?> <?php echo SwitchingFields::widget(['commonOptions' => ['form' => $form, 'model' => $model, 'options' => ['template' => "{label}\n<div class=\"col-md-8\">\n{input}\n{hint}\n{error}\n{switch}\n</div>", 'options' => ['class' => 'form-group']]], 'field1Options' => ['attribute' => 'dolzhnostId', 'switchIntroText' => 'Не нашли в списке?', 'switchLinkText' => 'Нажмите здесь чтобы ввести должность вручную.', 'widgetClass' => Select2::className(), 'widgetConfig' => ['data' => Dolzhnost::find()->commonOnly()->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie')], 'widgetConfigDisabled' => ['disabled' => true]], 'field2Options' => ['attribute' => 'dolzhnostNazvanie', 'switchIntroText' => 'Возможно ваша должность есть в списке.', 'switchLinkText' => 'Нажмите здесь чтобы найти её в списке.']]); ?> </div> <div class="col-md-5 form-horizontal"> <div class="fields-group-heading"> <h3>Образование</h3> </div> <?php echo SwitchingFields::widget(['commonOptions' => ['form' => $form, 'model' => $model, 'options' => ['template' => "{label}\n<div class=\"col-md-8\">\n{input}\n{hint}\n{error}\n{switch}\n</div>", 'options' => ['class' => 'form-group']]], 'field1Options' => ['attribute' => 'obrOrgId', 'switchIntroText' => 'Не нашли в списке?', 'switchLinkText' => 'Нажмите здесь чтобы ввести организацию вручную.', 'widgetClass' => Select2::className(), 'widgetConfig' => ['data' => Organizaciya::findVysshegoProfessionalnogoObrazovaniya()->commonOnly()->formattedAll(EntityQuery::DROP_DOWN, 'nazvanie')], 'widgetConfigDisabled' => ['disabled' => true]], 'field2Options' => ['attribute' => 'obrOrgNazvanie', 'switchIntroText' => 'Возможно ваша организация есть в списке.', 'switchLinkText' => 'Нажмите здесь чтобы найти её в списке.']]);
public function rules() { return [['fizLico', 'exist', 'targetAttribute' => 'id', 'targetClass' => FizLico::className()], ['fizLico', 'required'], ['kurs', 'exist', 'targetAttribute' => 'id', 'targetClass' => Kurs::className()], ['kurs', 'required'], ['pedStazh', StazhValidator::className()], ['pedStazh', 'required'], ['stazhVDolzhnosti', StazhValidator::className()], ['stazhVDolzhnosti', 'required'], ['kategoriya', EnumValidator::className(), 'enumClass' => KategoriyaPedRabotnika::className()], ['kategoriya', 'required'], ['dolzhnostId', 'integer'], ['dolzhnostId', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'dolzhnostNazvanie'], ['dolzhnostNazvanie', SqueezeLineFilter::className()], ['dolzhnostNazvanie', NazvanieValidator::className()], ['dolzhnostNazvanie', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'dolzhnostId'], ['dolzhnostNazvanie', 'default'], ['obrOrgId', 'integer'], ['obrOrgId', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'obrOrgNazvanie'], ['obrOrgNazvanie', SqueezeLineFilter::className()], ['obrOrgNazvanie', NazvanieValidator::className()], ['obrOrgNazvanie', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'obrOrgId'], ['obrOrgNazvanie', 'default'], ['obrKvalifikaciyaId', 'integer'], ['obrKvalifikaciyaId', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'obrKvalifikaciyaNazvanie'], ['obrKvalifikaciyaNazvanie', SqueezeLineFilter::className()], ['obrKvalifikaciyaNazvanie', NazvanieValidator::className()], ['obrKvalifikaciyaNazvanie', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'obrKvalifikaciyaId'], ['obrKvalifikaciyaNazvanie', 'default'], ['obrDocTip', EnumValidator::className(), 'enumClass' => TipDokumentaObObrazovanii::className()], ['obrDocTip', 'required'], ['obrDocSeriya', SqueezeLineFilter::className()], ['obrDocSeriya', NomerDokumentaValidator::className()], ['obrDocSeriya', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'obrDocNomer'], ['obrDocSeriya', 'default'], ['obrDocNomer', SqueezeLineFilter::className()], ['obrDocNomer', NomerDokumentaValidator::className()], ['obrDocNomer', RequiredWhenTargetIsEmpty::className(), 'targetModel' => $this, 'targetAttribute' => 'obrDocSeriya'], ['obrDocNomer', 'default'], ['obrDocData', 'date'], ['obrDocData', 'required'], ['pasportNomer', PasportNomerValidator::className(), 'sqlAttribute' => 'pasportNomerSql'], ['pasportNomer', 'required'], ['pasportKemVydanKod', PasportKodPodrazdeleniyaValidator::className()], ['pasportKemVydanKod', 'required'], ['pasportKemVydan', SqueezeLineFilter::className()], ['pasportKemVydan', NazvanieValidator::className()], ['pasportKemVydan', 'required'], ['pasportKogdaVydan', 'date'], ['pasportKogdaVydan', 'required'], ['propiska', SqueezeLineFilter::className()], ['propiska', NazvanieValidator::className()], ['propiska', 'required'], ['dataRozhdeniya', 'date'], ['dataRozhdeniya', 'required'], ['snils', SnilsValidator::className()], ['snils', 'required'], ['inn', InnValidator::className()], ['inn', 'required']]; }
<?php if ($zayavlenie->attestaciya_kategoriya != \app\enums\KategoriyaPedRabotnika::BEZ_KATEGORII) { ?> <b>Копия действующего аттестационного листа</b><br> <?php echo Html::a($zayavlenie->attestaciyaFajlRel->vneshnee_imya_fajla, $zayavlenie->attestaciyaFajlRel->getUri(), ['target' => '_blank']); ?> <?php } ?> </div> </div> </div> <?php echo '<p><b>Категория, на которую будет производиться аттестация</b> ' . \app\enums\KategoriyaPedRabotnika::namesMap()[$zayavlenie->na_kategoriyu]; if ($zayavlenie->var_ispytanie_2) { echo '<p><b>Второе вариативное испытание</b> ' . mb_strtolower($zayavlenie->attestacionnoeVariativnoeIspytanie2Rel->nazvanie) . '</p>'; } if ($zayavlenie->var_ispytanie_3) { echo '<p><b>Третье вариативное испытание</b> ' . mb_strtolower($zayavlenie->attestacionnoeVariativnoeIspytanie3Rel->nazvanie) . '</p>'; } ?> <?php if ($zayavlenie->svedeniya_o_sebe) { ?> <div class="panel panel-default"> <div class="panel-heading"><b>Сведения о себе</b></div> <div class="panel-body"> <b>Текст</b><br>
</td> <td><?php echo $item['organizaciya']; ?> </td> <td><?php echo $item['dolzhnost']; ?> </td> <td><?php echo date('d.m.Y', strtotime($item['data_rozhdeniya'])); ?> </td> <td> <?php echo KategoriyaPedRabotnika::namesMap()[$item['imeushayasya_kategoriya']] . ($item['attestaciya_data_okonchaniya_dejstviya'] != '1970-01-01' ? ', ' . date('d.m.Y', strtotime($item['attestaciya_data_okonchaniya_dejstviya'])) : ''); ?> </td> <td><?php echo $item['ped_stazh']; ?> /<?php echo $item['rabota_stazh_v_dolzhnosti']; ?> /<?php echo $item['stazh_v_dolzhnosti']; ?> </td> <td><?php echo $item['obrazovanie']; ?>