EIOS/inc/rejt2.php

184 lines
7.4 KiB
PHP
Raw Normal View History

2023-12-28 15:39:22 +03:00
<?php
session_start();
$maincontent = '';
$smarty->assign('razdel','rejt2main');
if(isset($_GET['page'])){ $page=$_GET['page']; }else{ $page='main'; }
if(isset($_GET['des'])){ $des=$_GET['des']; }else{ $des='show';}
$TB['items2'] = $ST['dbpf'].'_rejt2_items';
//$DB->QUR('DROP TABLE `'.$TB['items2'].'`;');
{$sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['items2'].'` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_user` int(11) NOT NULL,
`id_razdel` int(11) NOT NULL,
`data_c` int(11) NOT NULL,
`data_s` int(11) NOT NULL,
`data_e` int(11) NOT NULL,
`name` text NOT NULL,
`hour_plan` DOUBLE NOT NULL,
`hour_fakt` DOUBLE NOT NULL,
`pos` int(11) NOT NULL,
`status` tinyint NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
$rez = $DB->QUR($sql);}
function rejt2_get_itemsnpr($id=0){
GLOBAL $ST,$TB,$DB; $out=array();
if($id){
$sql = 'SELECT * FROM '.$ST['dbpf'].'_rejtnpr_items WHERE id='.$id.' LIMIT 1';
}else{
$sql = 'SELECT * FROM '.$ST['dbpf'].'_rejtnpr_items ORDER BY pos';
}
$rez = $DB->QUR_SEL($sql);
if($rez){
foreach($rez as $key => $val)if($key){
$out[]=$val;
}
}
return $out;
}
function rejt2_get_useranketa(){
GLOBAL $ST,$DB,$TB;
$items=array(); $BALLS=0;
$sql = 'SELECT * FROM '.$TB['items2'].' WHERE id_user='.$_SESSION['user']['id'].' ORDER BY pos';
$rez = $DB->QUR_SEL($sql);
if($rez){
foreach($rez as $key => $val)if($key){
$items[]=$val;
}
}
return $items;
}
//echo '<pre>'.print_r($_SESSION['user'],1).'</pre>';
//if($_SESSION['user']['status']==99){
/*if($page=='admin'){
$smarty->assign('page',$page);
$smarty->assign('des',$des);
$maincontent = $smarty->fetch('tpl_rejt_main.html');
}*/
if($page=='xlsx'){
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/Moscow');
require_once 'inc/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Яковлев Александр Леонидович")
->setLastModifiedBy("Яковлев Александр Леонидович")
->setTitle('Рейтинг сотрудника "'.$_SESSION['user']['fio'].'"')
->setSubject("выгрузка данных с сайта")
->setDescription("сводные данные по всем машинам")
->setKeywords("alneo.ru alneo php")
->setCategory("эффективный контракт");
$objPHPExcel->getActiveSheet()->mergeCells('A1:D1');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'Рейтинг сотрудника "'.$_SESSION['user']['fio'].'" '.date('H:i d.m.Y'));
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
$rejtuser = rejt_get_useranketa();
$items = $rejtuser['items'];
$BALLS = $rejtuser['balls'];
$row=3;
foreach($items as $key => $it){
$row = $row+$key;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $it['name']);
$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
if (count($it['razdel'])){
$row++;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $it['razdel']['name']);
$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getFont()->setBold(true);
//$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
foreach($it['razdel'] as $key => $rd){
if (!count($rd['itemspolyas'])){//Блок без допполей
$row++;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $rd['name']);
//{if $rd.name=='Ф.И.О. преподавателя'}{$user.fio}{/if}
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, '--');
}
else{//блоки с допполями
$row++;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $rd['name']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row, $rd['formuls']['itogo']);
$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getFont()->setBold(true);
//$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
if ($rd['kolsaves']){//если есть сохранения
for ($kol=1;$kol<=$rd['kolsaves'];$kol++){
$row++;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $rd['name'].' №'.$kol);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row, $rd['formuls'][$kol-1]);
$objPHPExcel->getActiveSheet()->getStyle('C'.$row)->getFont()->setBold(true);
foreach($rd['itemspolyas'] as $key2 => $ip){
$row++;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $ip['name']);
if($ip['saves'][$kol]['value']!=''){
if(is_numeric($ip['saves'][$kol]['value'])){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $ip['saves'][$kol]['value']);
}else{
$urlb1 = false;
$urlb2 = false;
if (strpos($ip['saves'][$kol]['value'], 'upload/rejt') !== false) $urlb1 = true;
if (strpos($ip['saves'][$kol]['value'], 'http') !== false) $urlb2 = true;
if($urlb1){
$url = 'http://eios.mkgtu.ru'.$ip['saves'][$kol]['value'];
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, '=Hyperlink("'.$url.'","Скачать")');
}else{
if($urlb2){//внешние ссылки
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $ip['saves'][$kol]['value']);
}else{//просто текст
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $ip['saves'][$kol]['value']);
}
}
}
}
}
}
}
}
}
}
}
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
//$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->setTitle('Рейтинг');
$objPHPExcel->setActiveSheetIndex(0);
$file = 'Рейтинг_'.$_SESSION['user']['fio'].'';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$file.'.xlsx"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
}
if($page=='main'){
$smarty->assign('items',rejt2_get_useranketa());
$smarty->assign('itemsnprs',rejt2_get_itemsnpr());
$smarty->assign('des',$des);
$maincontent = $smarty->fetch('tpl_rejt2_anketa.html');
}
/*if($page=='maineu'){
//echo '<pre>'.print_r($_GET,1).'</pre>';
$_SESSION['rejteu'] = (int)$_GET['des'];
include 'rejt_anketa.php';
}*/
//}else{$maincontent = 'в разработке';}