コード例 #1
0
 public function getDolzhnostAttestacionnoiKomissiiRel()
 {
     return $this->hasMany(DolzhnostAttestacionnojKomissii::className(), ['attestacionnaya_komissiya' => 'id'])->inverseOf('attestacionnayaKomissiyaRel');
 }
コード例 #2
0
 public function actionDeleteDolzhnostFromKomissiya()
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     $dolzhnost_id = $_REQUEST['dolzhnost_id'];
     $komissiya_id = $_REQUEST['komissiya_id'];
     $dolzhnostAttestacionnoiKomissii = DolzhnostAttestacionnojKomissii::find()->where(['attestacionnaya_komissiya' => $komissiya_id, 'dolzhnost' => $dolzhnost_id])->one();
     if ($dolzhnostAttestacionnoiKomissii && $dolzhnostAttestacionnoiKomissii->delete()) {
         return 1;
     } else {
         return 0;
     }
 }
コード例 #3
0
ファイル: ListController.php プロジェクト: agarb7/mybriop
 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;
 }