EIOS/platniki.php

332 lines
13 KiB
PHP

<?php
session_start();
header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Europe/Moscow');
include 'inc/_db.php';
include 'config.php';
{$sql = 'CREATE TABLE IF NOT EXISTS `'.$ST['dbpf'].'_platniki_stud` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data_c` int(11) NOT NULL,
`fio` varchar(255) NOT NULL,
`num_prikaz` varchar(255) NOT NULL,
`dogovor` varchar(255) NOT NULL,
`foobuch` varchar(255) NOT NULL,
`otdel` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
$rez = $DB->QUR($sql);}
{$sql = 'CREATE TABLE IF NOT EXISTS `'.$ST['dbpf'].'_platniki_period` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data_c` int(11) NOT NULL,
`id_stud` int(11) NOT NULL,
`block` int(11) NOT NULL,
`zadolgen` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
$rez = $DB->QUR($sql);}
$dir = 'upload/platniki/';
$step=''; if(isset($_GET['step'])) $step = $_GET['step'];
if($step=='view'){
$file = $dir.'json/all.json';
$users = json_decode(file_get_contents($file),1);
echo '<table style="border-collapse:collapse;">';
foreach($users as $k => $v){
$f=explode(' ',$v[0]);
if($f[0]!=''){
$sql = 'SELECT fio,email FROM '.$ST['dbpf'].'_users WHERE fio LIKE "'.$f[0].' '.$f[1].'%"';
$rez = $DB->QUR_SEL($sql);
$iu=array();
if($rez){
foreach($rez as $key => $val)if($key){
$iu[]=$val['fio'].':'.$val['email'];
}
}
echo '<tr>
<td style="padding:0px;">'.$v[0].'</td>
<td style="padding:0px;">'.$v[1].'</td>
<td style="padding:0px;">'.$v[2].'</td>
<td style="padding:0px;">'.implode('<br>',$iu).'</td>
</tr>';
}
}
echo '</table>';
}
if($step=='add'){
/* ОЧНИКИ
sheet1.xml Абди Хассан Нурадин 5
sheet2.xml Агаев Шатлык 5
sheet3.xml Абдулаев 5
sheet4.xml Экономики и сервиса 5
sheet5.xml ОФО Лечебный ф-тет 3
sheet6.xml ОФО Экологичский ф-тет 5 - 3 блока
sheet7.xml ОФО Фак-тет аграрных технологий 5
sheet8.xml ОФО Фармацевтический ф-тет 3
sheet9.xml ОФО Фак-тет информационных систем 5
sheet10.xml Абдельмоним Махмуд Ашраф Мохамед 4 - должно быть 5 и 3 блока всего
sheet11.xml ОРДИНАТУРА 5 - 3 блока
sheet12.xml МАГИСТРАТУРА Абдул Водуд Зиаурахман 5
sheet13.xml Абилова Джамила Бейтулла кызы 5 - 3 блока
sheet14.xml Гриднева Инна Александровна 5 - 1 блок
sheet15.xml Стоматология очная фомра 3
sheet16.xml Абдулкарим Мохамад 3
*/
/* ЗАОЧНИКИ
sheet1.xml Инженерно-экономический 5
sheet2.xml технологический 5
sheet3.xml Абдрафикова 5
sheet4.xml управление 5
sheet5.xml Абдуллоев 5
sheet6.xml Фармацевтический 3
sheet7.xml аграрных 5
sheet8.xml Экологический 5
sheet9.xml Аскералиев 5
*/
$file = $dir.'/2018och.xlsx'; $fo='очники';
$t = parse_xlsx($file);
$users=array(); $blok_save=4;
foreach($t as $k => $v){
$num_st=-1; $kol=0;
foreach($v as $r => $c){
foreach($c as $r1 => $c1) if(trim(mb_strtolower($c1['text']))=='договор') {//определяем столбец договора
$kol++; //количество блоков = кол-во месяцев
$num_st=$r1;
//echo $k.'-'.$num_st.'<hr>';
break;
}
if($num_st!=-1){
$fio = trim($c[1]['text']);
$ndo = trim($c[$num_st]['text']);
$npr = '';//номер приказа
if($fio!=''&&$ndo!=''){
$zad = trim($c[17]['text']);
$data = array('fio'=>$fio,'npr'=>$npr,'ndo'=>$ndo,'zad'=>$zad,'kol'=>$kol,'fo'=>$fo,'otdel'=>$k);
insert_in_table($data);
}
}
}
}
/*foreach($t as $k => $v){
file_put_contents($dir.'/json/'.$k,json_encode($v));
//echo '<pre>'.print_r($v,1).'</pre>';
$num_st=-1; $kol=0;
foreach($v as $r => $c){
foreach($c as $r1 => $c1) if(trim(mb_strtolower($c1['text']))=='договор') {//определяем столбец договора
$kol++; //количество блоков = кол-во месяцев
$num_st=$r1;
//echo $k.'-'.$num_st.'<hr>';
break;
}
if($num_st!=-1){
$fio = trim($c[1]['text']);
$ndo = trim($c[$num_st]['text']);
if($fio!=''&&$ndo!=''){
$zad = trim($c[17]['text']);
$users[$kol][]=array($fio,$ndo,$zad);
//$key = cha($fio,$users);
//if($key!=-1) $users[$key]=array($fio,$ndo,$zad);
//else $users[]=array($fio,$ndo,$zad);
}
}
}
}
//echo '<pre>'.print_r($users,1).'</pre>';
file_put_contents($dir.'/json/all.json',json_encode($users[$blok_save]));*/
}
if($step=='add1'){
$file = $dir.'/2018zaoch.xlsx'; $fo='заочники';
$t = parse_xlsx($file);
$users=array(); $blok_save=4;
foreach($t as $k => $v){
$num_st=-1; $kol=0;
foreach($v as $r => $c){
foreach($c as $r1 => $c1) if(trim(mb_strtolower($c1['text']))=='договор') {//определяем столбец договора
$kol++; //количество блоков = кол-во месяцев
$num_st=$r1;
break;
}
if($num_st!=-1){
$fio = trim($c[1]['text']);
$ndo = trim($c[$num_st]['text']);
$npr = '';//номер приказа
if($fio!=''&&$ndo!=''){
$zad = trim($c[17]['text']);
$data = array('fio'=>$fio,'npr'=>$npr,'ndo'=>$ndo,'zad'=>$zad,'kol'=>$kol,'fo'=>$fo,'otdel'=>$k);
insert_in_table($data);
}
}
}
}
}
if($step==''){
$fio = ''; if(isset($_POST['fio'])) $fio = $_POST['fio'];
echo '<form method="POST">';
echo 'Введите ФИО <input type="text" name="fio" placeholder="Иванов" value="'.$fio.'">';
echo '<input type="submit" name="search" value="Найти">';
echo '</form>';
if(isset($_POST['search'])){
$sql = 'SELECT ps.fio,ps.dogovor,ps.foobuch,ps.otdel,pp.block,pp.zadolgen FROM '.$ST['dbpf'].'_platniki_stud as ps, '.$ST['dbpf'].'_platniki_period as pp WHERE ps.fio LIKE "%'.$fio.'%" AND ps.id=pp.id_stud ORDER BY pp.data_c';
$rez = $DB->QUR_SEL($sql);
if($rez){
echo '<style>td{border:1px solid black;}</style>';
echo '<table style="width:70%;border-collapse:collapse;margin:0 auto;">';
echo '<thead><tr><th>ФИО</th><th>Договор</th><th>ФО</th><th>Фак</th><th>Кв</th><th>Задолж</th></tr></thead>';
echo '<tbody>';
foreach($rez as $k => $v)if($k){
if($v['foobuch']=='очники'){
if($v['otdel']=='sheet1.xml') $fak='инженерно-эконом';
if($v['otdel']=='sheet2.xml') $fak='технологический';
if($v['otdel']=='sheet3.xml') $fak='управления';
if($v['otdel']=='sheet4.xml') $fak='Экономики и сервиса';
if($v['otdel']=='sheet5.xml') $fak='Лечебный ф-тет';
if($v['otdel']=='sheet6.xml') $fak='Экологичский ф-тет';
if($v['otdel']=='sheet7.xml') $fak='Фак-тет аграрных технологий';
if($v['otdel']=='sheet8.xml') $fak='Фармацевтический ф-тет';
if($v['otdel']=='sheet9.xml') $fak='Фак-тет информационных систем';
if($v['otdel']=='sheet10.xml') $fak='Международный';
if($v['otdel']=='sheet11.xml') $fak='ОРДИНАТУРА';
if($v['otdel']=='sheet12.xml') $fak='МАГИСТРАТУРА';
if($v['otdel']=='sheet13.xml') $fak='ЦЕЛЕВИКИ ЛД';
if($v['otdel']=='sheet14.xml') $fak='ЦЕЛЕВИКИ ФА';
if($v['otdel']=='sheet15.xml') $fak='Стоматология';
if($v['otdel']=='sheet16.xml') $fak='Педиатрия';
}
if($v['foobuch']=='заочники'){
if($v['otdel']=='sheet1.xml') $fak='инженерно-эконом';
if($v['otdel']=='sheet2.xml') $fak='технологический';
if($v['otdel']=='sheet3.xml') $fak='финансы';
if($v['otdel']=='sheet4.xml') $fak='управление';
if($v['otdel']=='sheet5.xml') $fak='информац. системы';
if($v['otdel']=='sheet6.xml') $fak='Фармацевтический ф-тет';
if($v['otdel']=='sheet7.xml') $fak='Фак-тет аграрных технологий';
if($v['otdel']=='sheet8.xml') $fak='Экологический';
if($v['otdel']=='sheet9.xml') $fak='МАГИСТРАТУРА';
}
echo '<tr>
<td>'.$v['fio'].'</td>
<td>'.$v['dogovor'].'</td>
<td>'.$v['foobuch'].'</td>
<td>'.$fak.'</td>
<td>'.$v['block'].'</td>
<td>'.$v['zadolgen'].'</td>
</tr>';
}
echo '</tbody>';
echo '</table>';
}
}
}
function insert_in_table($data){
GLOBAL $ST,$DB; $out=array();
$sql = 'SELECT id FROM '.$ST['dbpf'].'_platniki_stud WHERE fio="'.$data['fio'].'" AND foobuch="'.$data['fo'].'" AND otdel="'.$data['otdel'].'"';
$rez = $DB->QUR_SEL($sql); //echo $sql.'<pre>'.print_r($rez,1).'</pre>';
//if($rez){
if($rez[0]){
$id_stud=$rez[1]['id'];
$sql1 = 'SELECT id FROM '.$ST['dbpf'].'_platniki_period WHERE id_stud='.$id_stud.' AND block='.$data['kol'].'';
$rez1 = $DB->QUR_SEL($sql1); //echo $sql1.'<pre>'.print_r($rez1,1).'</pre>';
//if($rez1){
if($rez1[0]){
$sql = 'UPDATE '.$ST['dbpf'].'_platniki_period SET zad = "'.$data['zad'].'" WHERE id = '.$rez1[1]['id'].'';
$rez = $DB->QUR($sql); //echo $sql.'<pre>'.print_r($rez,1).'</pre>';
}else{
$sql = 'INSERT INTO '.$ST['dbpf'].'_platniki_period VALUES (0,'.time().','.$id_stud.','.$data['kol'].',"'.$data['zad'].'")';
$rez = $DB->QUR($sql); //echo $sql.'<pre>'.print_r($rez,1).'</pre>';
}
//}
}else{
$sql = 'INSERT INTO '.$ST['dbpf'].'_platniki_stud VALUES (0,'.time().',"'.$data['fio'].'","","'.$data['ndo'].'","'.$data['fo'].'","'.$data['otdel'].'")';
$rez = $DB->QUR($sql); //echo $sql.'<pre>'.print_r($rez,1).'</pre>';
$id_stud = mysql_insert_id();
$sql = 'INSERT INTO '.$ST['dbpf'].'_platniki_period VALUES (0,'.time().','.$id_stud.','.$data['kol'].',"'.$data['zad'].'")';
$rez = $DB->QUR($sql); //echo $sql.'<pre>'.print_r($rez,1).'</pre>';
}
//}
return $out;
}
function cha($fio,$users){//получение ключа в массиве фамилии
foreach($users as $k => $v){
if($fio==$v[0]) {
echo $fio.'--'.$v[0].'<br>';
return $k;
}
}
return -1;
}
function parse_xlsx($file){
include_once 'inc/pclzip.lib.php'; $out=array();
$archive = new PclZip($file);
$t=explode('.',$file);unset($t[count($t)-1]); $folder = implode('.',$t); //echo $folder.'; ';
if(!file_exists($folder)) mkdir($folder);
if ($archive->extract(PCLZIP_OPT_PATH, $folder) == 0) {
//die("Error : ".$archive->errorInfo(true));
}else{
$xml = simplexml_load_file($folder . '/xl/sharedStrings.xml');
$sharedStringsArr = array();
foreach ($xml->children() as $item) {
$sharedStringsArr[] = (string)$item->t;
}
$handle = @opendir($folder . '/xl/worksheets');
while ($file = @readdir($handle)) {
//проходим по всем файлам из директории /xl/worksheets/
if ($file != "." && $file != ".." && $file != '_rels') {
//if ($file == 'sheet1.xml') {
$xml = simplexml_load_file($folder . '/xl/worksheets/' . $file);
$mergeCells=array();
foreach ($xml->mergeCells->mergeCell as $item) {
$attr = $item->attributes();
$t=explode(':',$attr['ref']);
$t1=array(0=>$t[0],1=>$t[1]);
$mergeCells[]=$t1;
}
$ab=array('A'=>1,'B'=>2,'C'=>3,'D'=>4,'E'=>5,'F'=>6,'G'=>7,'H'=>8,'I'=>9,'J'=>10,'K'=>11,'L'=>12,'M'=>13,'N'=>14,'O'=>15);
//по каждой строке
$row = 0;
foreach ($xml->sheetData->row as $item) {
$out[$file][$row] = array();
//по каждой ячейке строки
$cell = 0;
foreach ($item as $child) {
$attr = $child->attributes();
$value = isset($child->v)? (string)$child->v:false;
$out[$file][$row][$cell]['text'] = isset($attr['t']) ? $sharedStringsArr[$value] : $value;
if(isset($attr['r'])){//проверим на объединение
foreach($mergeCells as $k1 => $v1){
if($attr['r'] == $v1[0]){//есть в объединениях
if($v1[0]{0}!=$v1[1]{0}&&$v1[0]{1}==$v1[1]{1}){//горизонтальное объединение
$out[$file][$row][$cell]['mcgor'] = $ab[$v1[1]{0}]-$ab[$v1[0]{0}]+1;
}
if($v1[0]{0}==$v1[1]{0}&&$v1[0]{1}!=$v1[1]{1}){//вертикальное объединение
$out[$file][$row][$cell]['mcver'] = $v1[1]{1}-$v1[0]{1}+1;
}
if($v1[0]{0}!=$v1[1]{0}&&$v1[0]{1}!=$v1[1]{1}){//херовое объединение
$out[$file][$row][$cell]['mcver'] = $v1[1]{1}-$v1[0]{1}+1;
$out[$file][$row][$cell]['mcgor'] = $ab[$v1[1]{0}]-$ab[$v1[0]{0}]+1;
}
}
}
}
$cell++;
}
$row++;
}
}
}
}
return $out;
}