diff options
author | M.Gergo | 2018-07-06 11:14:41 +0200 |
---|---|---|
committer | M.Gergo | 2018-07-06 11:14:41 +0200 |
commit | 43de9af71f7f4ca5731b94a06d688ae8412ba427 (patch) | |
tree | 54835de1dfcda504c02da261f0dc26885aed2e89 /mayor-orig/www/include/modules/naplo/base | |
parent | 50310b0e4513ee3fcce67351ae61e8fff851130e (diff) | |
download | mayor-43de9af71f7f4ca5731b94a06d688ae8412ba427.tar.gz mayor-43de9af71f7f4ca5731b94a06d688ae8412ba427.zip |
2018/Feb/28 -i állapot hozzáadva, mint a módosítások kiindulási állapota
Diffstat (limited to 'mayor-orig/www/include/modules/naplo/base')
-rw-r--r-- | mayor-orig/www/include/modules/naplo/base/base.php | 298 | ||||
-rw-r--r-- | mayor-orig/www/include/modules/naplo/base/log.php | 40 | ||||
-rw-r--r-- | mayor-orig/www/include/modules/naplo/base/rights.php | 469 | ||||
-rw-r--r-- | mayor-orig/www/include/modules/naplo/base/tool.php | 589 | ||||
-rw-r--r-- | mayor-orig/www/include/modules/naplo/base/update.php | 86 | ||||
-rw-r--r-- | mayor-orig/www/include/modules/naplo/base/zcheck.php | 100 |
6 files changed, 1582 insertions, 0 deletions
diff --git a/mayor-orig/www/include/modules/naplo/base/base.php b/mayor-orig/www/include/modules/naplo/base/base.php new file mode 100644 index 00000000..d3c32ad6 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/base/base.php @@ -0,0 +1,298 @@ +<?php + + function initTolIgDt($tanev, &$tolDt, &$igDt, $override = false) { + + global $_TANEV; + + if (!is_numeric($tanev)&&$tanev!='') $_SESSION['alert'][] = 'info:TANEV:paramalert'.serialize($tanev); + + if ($tanev != '') { + if ($tanev != __TANEV) $TA = getTanevAdat($tanev); + else $TA = $_TANEV; + if ($tanev == __TANEV && __FOLYO_TANEV) { + $dt = date('Y-m-d'); + if ($tolDt == '') $tolDt = $dt; + elseif (!$override && strtotime($tolDt) < strtotime($TA['kezdesDt'])) $tolDt = $TA['kezdesDt']; + if ($igDt == '') if (strtotime($dt) > strtotime($tolDt)) $igDt = $dt; else $igDt = $tolDt; + elseif (!$override && strtotime($igDt) > strtotime($TA['zarasDt'])) $igDt = $TA['zarasDt']; + } else { + if ($tolDt == '' or (!$override && strtotime($tolDt) < strtotime($TA['kezdesDt']))) $tolDt = $TA['kezdesDt']; + elseif ($tolDt != '' && strtotime($TA['zarasDt']) < strtotime($tolDt)) $tolDt = $TA['zarasDt']; + if ($igDt == '' or (!$override && strtotime($igDt) > strtotime($TA['zarasDt']))) $igDt = $TA['zarasDt']; + elseif ($igDt != '' && strtotime($igDt) < strtotime($TA['kezdesDt'])) $igDt = $TA['kezdesDt']; + } + } + } + + // -------------------------------------------------- // + + function getTanitasiNapVissza($napszam, $from = 'curdate()', $olr = '') { + return getTanitasiNap(array('direction'=>'vissza','napszam'=>$napszam,'fromDt'=>$from), $olr); + } + + function getTanitasiNap($ADAT = array('direction'=>'', 'napszam'=>0, 'fromDt'=>'curdate()'), $olr = null) { + + global $_TANEV; + + if ($ADAT['fromDt']!='') $fromDt = $ADAT['fromDt']; else $fromDt = 'curdate()'; + if ($ADAT['direction']!='') $direction = $ADAT['direction']; + if ($ADAT['napszam']!='') $napszam = $ADAT['napszam']; + if ($napszam < 0 || !defined('__TANEV') || is_null(__TANEV) ||!is_array($_TANEV) || $_TANEV['kezdesDt']=='' || $_TANEV['statusz']=='tervezett') { + return false; + } + if ($direction == 'vissza') { $relacio='<'; $DESC = 'DESC'; } + else { $relacio = '>'; $DESC = 'ASC'; } + + if ($napszam==0) { // extra eset + $v = array($fromDt,1); + $from="CAST('%s' AS DATE)"; + if ($direction == 'vissza') $relacio = '<='; + else $relacio = '>='; + $limit = "1"; + } elseif ($fromDt != 'curdate()') { + $v = array($fromDt, ($napszam-1)); + $from="CAST('%s' AS DATE)"; + $limit = "%u,1"; + } else { + $v = array(($napszam-1)); + $from='curdate()'; + $limit = "%u,1"; + } + + $q = "SELECT DISTINCT(dt) FROM nap + WHERE dt $relacio $from + AND tipus LIKE '%%tanítási nap' + ORDER BY dt $DESC + LIMIT ".$limit; + $nap = db_query($q, array('fv' => 'getTanitasiNap', 'modul' => 'naplo', 'result' => 'value', 'values' => $v), $olr); + // Ha nincs elég tanítási nap, akkor iránytól függően adjuk vissza a szélső értékeket + if ($nap == '') { + if ($direction == 'vissza') $nap = date('Y-m-d',strtotime($_TANEV['kezdesDt'])); // ez ugye lehet nem tanítási nap is! + else $nap = date('Y-m-d',strtotime($_TANEV['zarasDt'])); // ez ugye lehet nem tanítási nap is! + } + + return $nap; + + } + + function getTanitasiHetHetfo($ADAT = array('direction'=>'', 'napszam'=>0, 'fromDt'=> ''), $olr = null) { + + global $_TANEV; + + if ($ADAT['fromDt']!='') $fromDt = $ADAT['fromDt']; else $fromDt = date('Y-m-d'); + if ($ADAT['direction']!='') $direction = $ADAT['direction']; + if ($ADAT['napszam']!='') $napszam = $ADAT['napszam']; + if ($napszam < 0 || !defined('__TANEV') || is_null(__TANEV) ||!is_array($_TANEV) || $_TANEV['kezdesDt']=='') { + return false; + } + if ($napszam == 0) { + // Az előző/következő napot követő/megelőző nap utáni 1 tanítási nap + if ($direction == 'vissza') { $muv = '+'; } + else { $muv = '-'; } + $v = array($napszam); + $from = "'$fromDt' $muv INTERVAL 1 DAY"; + } elseif ($fromDt != 'curdate()') { + $v = array($fromDt, ($napszam-1)); + $from="CAST('%s' AS DATE)"; + } else { + $v = array(($napszam-1)); + $from = $fromDt; + } + if ($direction == 'vissza') { $relacio='<'; $DESC = 'DESC'; } + else { $relacio = '>'; $DESC = 'ASC'; } + + $q = "SELECT DISTINCT( DATE(dt-INTERVAL (DAYOFWEEK(dt)-2) DAY) ) AS dt FROM nap + WHERE dt $relacio $from + AND tipus LIKE '%%tanítási nap' + ORDER BY dt $DESC + LIMIT %u,1"; + $nap = db_query($q, array('fv' => 'getTanitasiNap', 'modul' => 'naplo', 'result' => 'value', 'values' => $v), $olr); + + if ($nap == '') $nap = date('Y-m-d',strtotime($_TANEV['kezdesDt'])); // ez ugye lehet nem tanítási nap is! + + return $nap; + + } + + + // -------------------------------------------------- // + + function checkNaplo($dt = '') { + + global $_TANEV; + + $time = strtotime($dt); + + if ($time < strtotime($_TANEV['kezdesDt']) || $time > strtotime($_TANEV['zarasDt'])) return false; + if ($time === false // $dt == '0000-00-00' || $dt == '' || !isset($dt) + || __TANKOROK_OK !== true + || ( + !__NAPLOADMIN + && ($time < strtotime($_TANEV['kezdesDt']) || $time > strtotime($_TANEV['zarasDt'])) + ) + ) { + $_SESSION['alert'][] = 'message:wrong_data:checkNaplo:'.$dt.'('.(__TANKOROK_OK?1:2).')'; + return false; + } else { + + $napszam = date('w', strtotime($dt)); + if ($napszam == 0) $napszam = 7; + + // Muszáj újrakapcsolódnunk a lock miatt - nem adható át $olr... + $lr = db_connect('naplo', array('force' => true, 'fv' => 'checkNaplo')); + + // E helyett: Van-e olyan munkaterv, amiben van tanítási nap - sőt, lekérdezzük rögtön a hozzá tartozó órarendi hét-osztalyId párokat is! + $query = "SELECT distinct orarendiHet, osztalyId FROM nap LEFT JOIN munkatervOsztaly USING (munkatervId) WHERE dt=CAST('%s' AS DATE) + AND tipus='tanítási nap' AND osztalyId IS NOT NULL"; // ha egy munkatervhez nincs osztály rendelve, akkor se zavarjon be... + $v = array($dt); + // keyvalues = első mező a kulcs, azon belül a második mező indexelve jelenik meg + $RESULT = db_query($query, array('fv' => 'checkNaplo', 'modul' => 'naplo', 'result' => 'keyvalues', 'values' => $v), $lr); + if ($RESULT===false) { + db_close($lr); + return false; + } + if (is_array($RESULT) && count($RESULT) > 0) { + + $query = "SELECT oraId FROM ora WHERE dt=CAST('%s' AS DATE) LIMIT 1"; + $_oraId = db_query($query, array('fv' => 'checkNaplo/testIfCheck', 'modul' => 'naplo', 'result' => 'value', 'values' => $v), $lr); + if ($_oraId === false) { + db_close($lr); + return false; + } + + if ($_oraId === null) { + + // lock + $lock_q = 'LOCK TABLE ora write, orarendiOra read, orarendiOraTankor read, osztalyNaplo READ, '.__INTEZMENYDBNEV.'.osztaly READ,'.__INTEZMENYDBNEV.'.tankorOsztaly READ,'.__INTEZMENYDBNEV.'.tankorSzemeszter READ'; + db_query($lock_q, array('fv' => 'checkNaplo/lock ora', 'modul' => 'naplo'), $lr); + // recheck + $query = "SELECT oraId FROM ora WHERE dt=CAST('%s' AS DATE) LIMIT 1"; + $_oraId = db_query($query, array('fv' => 'checkNaplo/testIfCheck', 'modul' => 'naplo', 'result' => 'value', 'values' => $v), $lr); + if ($_oraId === false || $_oraId !== null) { + db_query('unlock tables', array('fv' => 'checkNaplo/lock ora', 'modul' => 'naplo'), $lr); + db_close($lr); + return false; + } + // -- + + // órarendi hetenként töltjük be... bár jelenleg egy nap csak egy órarendi hét lehet! + foreach ($RESULT as $orarendiHet => $osztalyIds) { + if (!is_array($osztalyIds) || count($osztalyIds)==0) continue; + // INSERT-be pedig csak azon tankorId-k, amik szerepelnek a tankorOsztaly táblában + $q = "SELECT DISTINCT tankorId FROM ".__INTEZMENYDBNEV.".tankorOsztaly WHERE osztalyId IN (".implode(',',$osztalyIds).")"; + $tankorIds = db_query($q, array('fv'=>'checkNaplo/tankorIds', 'modul'=>'naplo', 'result'=>'idonly')); + // Elvileg nem lehet tankor NULL - _TANKOROK_OK + // De sajnos minden lehet: + if (!is_array($tankorIds) || count($tankorIds)==0) continue; + $query = "INSERT INTO ora (dt,ora,ki,tankorId,teremId,tipus,eredet) + SELECT '%s',ora,orarendiOra.tanarId AS tanarId, orarendiOraTankor.tankorId AS tankorId, + teremId, 'normál','órarend' + FROM orarendiOra LEFT JOIN orarendiOraTankor USING (tanarId,osztalyJel,targyJel) + WHERE orarendiOraTankor.tankorId IS NOT NULL + AND tankorId IN (".implode(',', $tankorIds).") + AND het=%u + AND nap=%u + AND tolDt<='%s' AND igDt>='%s' "; // !!!! + $v = array($dt, $orarendiHet, $napszam, $dt, $dt); + $er = db_query($query, array('fv' => 'checkNaplo/finally', 'modul' => 'naplo', 'values' => $v), $lr); + } + + db_query('unlock tables', array('fv' => 'checkNaplo/unlock', 'modul' => 'naplo'), $lr); + if ($er === false) { + db_close($lr); + return false; + } + } + //} + } + db_close($lr); + return true; + } + } + + // -------------------------------------------------- // + + function checkNaploStatus($olr = '') { + + if ($olr == '') $lr = db_connect('naplo'); + else $lr = $olr; + + // A munkaterv meglétének ellenőrzése + $q = "SELECT COUNT(*) FROM nap"; + $count = db_query($q, array('fv' => 'checkNaploStatus/darab', 'modul' => 'naplo', 'result' => 'value'), $lr); + define('__MUNKATERV_OK', ($count != 0)); + + $q = "SELECT COUNT(*) FROM orarendiOra WHERE tolDt <= curdate() AND igDt >= curdate()"; + $count = db_query($q, array('fv' => 'checkNaploStatus/darab', 'modul' => 'naplo', 'result' => 'value'), $lr); + define('__ORAREND_OK', ($count != 0)); + + $q = "SELECT COUNT(DISTINCT orarendiOra.tanarId, orarendiOra.targyJel, orarendiOra.osztalyJel) + FROM orarendiOra LEFT JOIN orarendiOraTankor USING(tanarId, targyJel, osztalyJel) + WHERE tankorId IS NULL"; + $count = db_query($q, array('fv' => 'checkNaploStatus/darab', 'modul' => 'naplo', 'result' => 'value'),$lr); + if ($count != 0) { + define('__TANKOROK_OK', false); + define('__HIANYZO_TANKOROK_SZAMA', $count); + } else { + define('__TANKOROK_OK', true); + define('__HIANYZO_TANKOROK_SZAMA', 0); + } + + if ($olr == '') db_close($lr); + + } + + function checkDiakStatusz() { + + /* Konzisztencia ellenőrzés */ + + $lr = db_connect('naplo_intezmeny', array('fv' => 'checkDiakStatusz')); + db_start_trans($lr); + + // Ha státusz!='felvételt nyert' akkor kell lennie jogviszonyKezdete dátumnak + $q = "SELECT COUNT(*) AS db FROM diak WHERE statusz!='felvételt nyert' AND (jogviszonyKezdete IS NULL OR jogviszonyKezdete = '0000-00-00')"; + $db = db_query($q, array('fv' => 'checkDiakStatusz/pre#1', 'modul' => 'naplo_intezmeny', 'result' => 'value'), $lr); + if (__NAPLOADMIN && $db > 0) $_SESSION['alert'][] = 'message:wrong_data:jogviszonyKezdete hiányzik '.$db.' darab rekordban'; + + // Ha van olyan jogviszonyKezdete bejegyzés, melyhez nem tartozik diakJogviszony rekord, akkor azt pótoljuk + $q = "SELECT COUNT(*) AS db FROM diak LEFT JOIN diakJogviszony + ON diak.diakId = diakJogviszony.diakId AND diakJogviszony.statusz IN ('jogviszonyban van','vendégtanuló') AND diak.jogviszonyKezdete=diakJogviszony.dt + WHERE diakJogviszony.dt IS NULL AND jogviszonyKezdete IS NOT NULL AND jogviszonyKezdete != '0000-00-00'"; + $db = db_query($q, array('fv' => 'checkDiakStatusz/pre#1', 'modul' => 'naplo_intezmeny', 'result' => 'value'), $lr); + + $insDb = 0; + if ($db!==false && $db>0) { + $q = "INSERT INTO ".__INTEZMENYDBNEV.".diakJogviszony + SELECT diak.diakId as diakId, IF(diak.statusz='vendégtanuló','vendégtanuló','jogviszonyban van') AS statusz, jogviszonyKezdete AS dt FROM diak LEFT JOIN diakJogviszony + ON diak.diakId = diakJogviszony.diakId AND diakJogviszony.statusz IN ('jogviszonyban van','vendégtanuló') AND diak.jogviszonyKezdete=diakJogviszony.dt + WHERE diakJogviszony.dt IS NULL AND jogviszonyKezdete IS NOT NULL AND jogviszonyKezdete != '0000-00-00'"; + $insDb = db_query($q, array('fv' => 'checkDiakStatusz/#1', 'modul' => 'naplo_intezmeny', 'result' => 'affected rows'), $lr); + } + // A diakJogviszony tábla alapján állítjuk az aktuális státuszt + /* $q = "UPDATE ".__INTEZMENYDBNEV.".diak LEFT JOIN ".__INTEZMENYDBNEV.".diakJogviszony AS dj ON diak.diakId=dj.diakId + AND dj.dt=(SELECT MAX(dt) FROM ".__INTEZMENYDBNEV.".diakJogviszony WHERE dt<=CURDATE() AND diakId=dj.diakId) + SET diak.statusz = dj.statusz + WHERE diak.statusz<>'felvételt nyert' AND dj.statusz IS NOT NULL AND diak.statusz<>dj.statusz"; + */ + $q = "SELECT ".__INTEZMENYDBNEV.".diak.diakId,dj.statusz,dt + FROM ".__INTEZMENYDBNEV.".diak LEFT JOIN ".__INTEZMENYDBNEV.".diakJogviszony AS dj + ON ( + diak.diakId=dj.diakId + AND dj.dt=(SELECT MAX(dt) FROM ".__INTEZMENYDBNEV.".diakJogviszony WHERE dt<=CURDATE() AND diakId=dj.diakId) + ) WHERE diak.statusz<>'felvételt nyert' AND dj.statusz IS NOT NULL AND diak.statusz<>dj.statusz ORDER BY diakId,dt"; + $r = db_query($q, array('fv' => 'checkDiakStatusz/#2', 'modul' => 'naplo_intezmeny', 'result' => 'indexed'), $lr); + $updDb = 0; + for ($i=0; $i<count($r); $i++) { + $q = "UPDATE ".__INTEZMENYDBNEV.".diak SET statusz='%s' WHERE diakId=%u"; + $v = array($r[$i]['statusz'],$r[$i]['diakId']); + $updDb += db_query($q, array('fv' => 'checkDiakStatusz/#2', 'modul' => 'naplo_intezmeny', 'values'=>$v, 'result' => 'affected rows'), $lr); + } + + db_commit($lr); + db_close($lr); + + return intval($insDb)+intval($updDb); + + } + +?> diff --git a/mayor-orig/www/include/modules/naplo/base/log.php b/mayor-orig/www/include/modules/naplo/base/log.php new file mode 100644 index 00000000..e244c9a3 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/base/log.php @@ -0,0 +1,40 @@ +<?php +/* + module: naplo + version: 3.0 + + function logAction($SET = array('actionId' => null, 'szoveg' => '', 'tabla' => '', 'values' => array()), $olr = null) + Logbejegyzést készít, belerakja a datetime-ot, az action-t és a _USERACCOUNT-ot, ... + checkReloadAction($actionId, $action = '', $tabla = '', $olr = '') +*/ + + function logAction($SET = array('actionId' => null, 'szoveg' => '', 'tabla' => '', 'values' => array()), $olr = null) { + + global $action; + + $ip = $_SERVER['REMOTE_ADDR']; + $v = mayor_array_join(array($ip, $SET['tabla'], $action), $SET['values'], array($SET['actionId'])); + $q = "INSERT INTO ".__TANEVDBNEV.".logBejegyzes (userAccount, dt, ip, tabla, action, szoveg, actionId) VALUES + ('"._USERACCOUNT."', now(), '%s', '%s', '%s', '".$SET['szoveg']."','%s')"; + return db_query($q, array('fv' => 'logAction', 'modul' => 'naplo', 'values' => $v), $olr); + + } + + function checkReloadAction($actionId, $action = '', $tabla = '', $olr = null) { + + + $q = "SELECT logId FROM ".__TANEVDBNEV.".logBejegyzes WHERE actionId = '%s'"; + $v = array($actionId); + if ($action != '') { $q .= " AND action='%s'"; $v[] = $action; } + if ($tabla != '') { $q .= " AND tabla='%s'"; $v[] = $tabla; } + + $r = db_query($q, array('fv' => 'checkReloadAction', 'modul' => 'naplo', 'result' => 'value', 'values' => $v), $olr); + + if ($r===false) { + $_SESSION['alert'][] = 'message:sql_query_failure:checkReloadAction:'.$q.':'.$error; + return false; + } + return ($r === null); + + } +?> diff --git a/mayor-orig/www/include/modules/naplo/base/rights.php b/mayor-orig/www/include/modules/naplo/base/rights.php new file mode 100644 index 00000000..61a3f2a6 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/base/rights.php @@ -0,0 +1,469 @@ +<?php + + function intezmenyDbNev($intezmeny) { return 'intezmeny_'.$intezmeny; } + function tanevDbNev($intezmeny, $tanev) { return 'naplo_'.$intezmeny.'_'.$tanev; } + + function getTanevAdat($tanev = __TANEV, $olr = null) { + + $q = "SELECT * FROM szemeszter WHERE tanev = %u ORDER BY szemeszter"; + $ret['szemeszter'] = db_query($q, array( + 'fv' => 'getTanevAdat', 'modul' => 'naplo_intezmeny', 'result' => 'assoc', 'keyfield' => 'szemeszter', 'values' => array($tanev) + ), $olr); + + if (!is_array($ret['szemeszter'])) return false; + + // A legkorábbi kezdés és legkésőbbi zárás keresése... + $kezdesDt = '2030-01-01'; $zarasDt = '1980-01-01'; + $kezdes = strtotime($kezdesDt); $zaras = strtotime($zarasDt); + foreach ($ret['szemeszter'] as $szemeszter => $A) { + + if ($kezdes > strtotime($A['kezdesDt'])) { + $kezdesDt = $A['kezdesDt']; + $kezdes = strtotime($kezdesDt); + } + if ($zaras < strtotime($A['zarasDt'])) { + $zarasDt = $A['zarasDt']; + $zaras = strtotime($zarasDt); + } + $ret['statusz'] = $A['statusz']; + } + $ret['kezdesDt'] = $kezdesDt; $ret['zarasDt'] = $zarasDt; $ret['tanev'] = $tanev; + $q = "SELECT MAX(zarasDt) FROM szemeszter WHERE zarasDt<'%s'"; + $ret['elozoZarasDt'] = db_query($q, array('fv'=>'getTanevAdat/elozo','modul'=>'naplo_intezmeny','result'=>'value','values'=>array($ret['kezdesDt']))); + $q = "SELECT MIN(kezdesDt) FROM szemeszter WHERE kezdesDt>'%s'"; + $ret['kovetkezoKezdesDt'] = db_query($q, array('fv'=>'getTanevAdat/kovetkezo','modul'=>'naplo_intezmeny','result'=>'value','values'=>array($ret['zarasDt']))); + + return $ret; + + } + + function initIntezmeny($DATA) { + + global $MYSQL_DATA; + + $intezmeny = $DATA['intezmeny']; + $MYSQL_DATA['naplo_intezmeny'] = $MYSQL_DATA['naplo_base']; + $MYSQL_DATA['naplo_intezmeny']['db']= intezmenyDbNev($intezmeny); + + define('__INTEZMENY', $intezmeny); + define('__INTEZMENYDBNEV', intezmenyDbNev(__INTEZMENY)); + + if (isset($DATA['telephelyId'])) { + define('__TELEPHELYID',$DATA['telephelyId']); + } + + $num = checkDiakStatusz(); + if ($num != 0) $_SESSION['alert'][] = 'info:success:checkDiakStatusz:helyreállított rekordok száma='.$num; + + $q = "SELECT OMKod FROM intezmeny WHERE rovidNev='%s'"; + define('__OMKOD',db_query($q, array('fv' => 'initIntezmeny', 'modul' => 'naplo_base', 'result' => 'value','values'=>array($intezmeny)))); + + } + + function initTanev($intezmeny, $tanev) { + + global $MYSQL_DATA, $_TANEV; + + $MYSQL_DATA['naplo'] = $MYSQL_DATA['naplo_base']; + $MYSQL_DATA['naplo']['db']= tanevDbNev($intezmeny, $tanev); + + define('__TANEV', $tanev); + define('__TANEVDBNEV', tanevDbNev(__INTEZMENY, __TANEV)); + $_TANEV = getTanevAdat(); + // A kezdes- és zarasDt a szemeszter táblában DATE típusú, így az összehasonlítás korrekt + $date = date('Y-m-d'); + define('__FOLYO_TANEV',( + $_TANEV['kezdesDt'] <= $date + && $date <= $_TANEV['zarasDt'] + )); + + if (file_exists($file = _CONFIGDIR."/module-naplo/config-$intezmeny.php")) require_once($file); + initDefaults(); + + if ($_TANEV['statusz'] == 'aktív') { + checkNaploStatus(); + if (__FOLYO_TANEV) + if (__MUNKATERV_OK && __ORAREND_OK && __TANKOROK_OK) checkNaplo(date('Y-m-d')); + else $_SESSION['alert'][]= 'info:checkNaploFailed:orarend-'.((__ORAREND_OK)?'ok':'!').':tankorok-'.((__TANKOROK_OK)?'ok':'!'); + } + } + + function initDefaults() { + + if (!defined('_ZARAS_HATARIDO')) define('_ZARAS_HATARIDO',date('Y-m-01 00:00:00',strtotime('10 days ago'))); + // Helyttesített óra beírása (szaktanár): következő nap 8:00 + if (!defined('_HELYETTESITES_HATARIDO')) define('_HELYETTESITES_HATARIDO',date('Y-m-d',strtotime('8 hours ago'))); // Csak dárum lehet, mert az órák időpontját nem tudjuk + // Jegyek beírása, módosítása, törlése (szaktanár): zárásig (zárt időintervallum!) + if (!defined('_OSZTALYOZO_HATARIDO')) define('_OSZTALYOZO_HATARIDO',_ZARAS_HATARIDO); + + // Saját óra beírása (szaktanár) + // A mai nap+8 óra előtti tanatási nap utáni napot megelőző hétfő + // Azaz egy óra a következő hétfői tanítási nap 16:00-ig írható be. + if (!defined('_HALADASI_HATARIDO')) + define('_HALADASI_HATARIDO', + date('Y-m-d H:i:s', + strtotime('last Monday', + strtotime('next day', + strtotime( + getTanitasiNapVissza(1,date('Y-m-d H:i:s',strtotime('+8hours'))) + ) + ) + ) + ) + ); + + // A nevek rendezése a helyettesítés kiíráskor: súly szerint (súly) vagy névsorban (ABC) + if (!defined('__HELYETTESITES_RENDEZES')) define('__HELYETTESITES_RENDEZES','súly'); + // Fogadóórán egy vizit tervezett hossza + if (!defined('_VIZITHOSSZ')) define('_VIZITHOSSZ',10); + // Jegyek default súlyozása + if (!defined('__DEFAULT_SULYOZAS')) define('__DEFAULT_SULYOZAS','1:1:1:1:1'); + // Jegymódosításkor a jegy típus modosítható-e (pl: féljegy --> százalékos) + if (!defined('__JEGYTIPUS_VALTHATO')) define('__JEGYTIPUS_VALTHATO',false); + + // TANEV + // Szülői igazolások száma: félévenként legfeljebb 5 nap + define('__SZULOI_IGAZOLAS_FELEVRE',5); + define('__SZULOI_IGAZOLAS_EVRE',0); + // Szülő által igazolható órák maximális száma: félévenként legfeljebb 14 óra + define('__SZULOI_ORA_IGAZOLAS_FELEVRE',14); + define('__SZULOI_ORA_IGAZOLAS_EVRE',0); + // Osztályfőnöki igazolások száma: évi 3 nap + // Csak ha < 5 igazolatlanja van + define('__OSZTALYFONOKI_IGAZOLAS_FELEVRE',0); + define('__OSZTALYFONOKI_IGAZOLAS_EVRE',5); + define('__OSZTALYFONOKI_ORA_IGAZOLAS_FELEVRE',0); + define('__OSZTALYFONOKI_ORA_IGAZOLAS_EVRE',21); + + // Összeadjuk-e a késések perceit, hogy átváltsuk + if (!defined('_KESESI_IDOK_OSSZEADODNAK')) define('_KESESI_IDOK_OSSZEADODNAK', false); + // Hány késés felel meg egy igazolatlan órának - ha 0 vagy _KESESI_IDOK_OSSZEADODNAK, akkor nem váltjuk át + if (!defined('_HANY_KESES_IGAZOLATLAN')) define('_HANY_KESES_IGAZOLATLAN', 3); + // Hány felszerelés hiány felel meg egy igazolatlan órának - ha 0 vagy _KESESI_IDOK_OSSZEADODNAK, akkor nem váltjuk + if (!defined('_HANY_FSZ_IGAZOLATLAN')) define('_HANY_FSZ_IGAZOLATLAN', 3); + // Hány egyenruha hiány felel meg egy igazolatlan órának - ha 0, akkor nem váltjuk + if (!defined('_HANY_EH_IGAZOLATLAN')) define('_HANY_EH_IGAZOLATLAN', 0); + + // Hiányzás, késés, felszerelés hiány, egyenruha hiány beírása (szaktanár): következő nap 16:00 + if (!defined('_HIANYZAS_HATARIDO')) define('_HIANYZAS_HATARIDO',date('Y-m-d 00:00:00',strtotime('16 hours ago'))); + // Hiányzás, késés beírása osztályfőnöknek: 5 tanítási nap + if (!defined('_OFO_HIANYZAS_BEIRAS')) define('_OFO_HIANYZAS_BEIRAS',5); + if (!defined('_OFO_HIANYZAS_HATARIDO')) define('_OFO_HIANYZAS_HATARIDO',getTanitasiNapVissza(_OFO_HIANYZAS_BEIRAS,'curdate()')); + // Igazolás beírásának határideje: 5 tanítási nap + if (!defined('_IGAZOLAS_BEIRAS')) define('_IGAZOLAS_BEIRAS',6); + if (!defined('_IGAZOLAS_BEIRAS_HATARIDO')) define('_IGAZOLAS_BEIRAS_HATARIDO',getTanitasiNapVissza(_IGAZOLAS_BEIRAS,'curdate()')); + // Igazolás leadás határideje - ha nincs közben osztályfőnöki óra: 8 tanítási nap + if (!defined('_IGAZOLAS_LEADAS')) define('_IGAZOLAS_LEADAS',8); + if (!defined('_LEGKORABBI_IGAZOLHATO_HIANYZAS')) define('_LEGKORABBI_IGAZOLHATO_HIANYZAS',getTanitasiNapVissza(_IGAZOLAS_BEIRAS+_IGAZOLAS_LEADAS,'curdate()')); + + } + + //--- + + function getIdByOid($oId, $td = 'diak') { + + + if (intval($oId) == 0) { + $_SESSION['alert'][] = 'page:insufficient_access:Hiányzó oktatási azonosító!:'.$td; + return false; + } + $td = readVariable($td, 'enum', 'diak', array('tanar', 'diak')); + + $q = "SELECT ${td}Id FROM $td WHERE oId = '%s'"; + $id = db_query($q, array('fv' => 'getIdByOid', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => array($oId))); + + if (!$id) { + $_SESSION['alert'][] = 'message:id_not_found:(oid:'.$oId.')'; + return false; + } + + return $id; + + } + + function getSzuloIdByUserAccount($szuloCheck=true) { + $q = "SELECT szuloId FROM ".__INTEZMENYDBNEV.".szulo WHERE userAccount='"._USERACCOUNT."'"; + $szuloId = db_query($q, array('fv' => 'getSzuloIdByUserAccount', 'modul' => 'naplo_intezmeny', 'result' => 'value')); + if ($szuloCheck===true && __CHECK_SZULO_TORVENYES === true) { + $q = "SELECT count(*) FROM `".__INTEZMENYDBNEV."`.`diak` WHERE diakId='".__PARENTDIAKID."' AND + ( + (anyaId=%u AND FIND_IN_SET('anya',torvenyesKepviselo)=1) OR + (apaId=%u AND FIND_IN_SET('apa',torvenyesKepviselo)=2) OR + (gondviseloId=%u)OR + (neveloId=%u) ) + "; + $torvenyesE = db_query($q, array('fv' => 'getSzuloIdByUserAccount', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values'=>array($szuloId,$szuloId,$szuloId,$szuloId))); + if ($torvenyesE==0) { + $_SESSION['alert'][] = 'page:nem_torvenyes_kepviselo'; + } + } + return $szuloId; + } + + + function isTanar($tanarId) { + $q = "SELECT COUNT(*) AS db FROM ".__INTEZMENYDBNEV.".tanar + WHERE tanarId=%u AND beDt<=CURDATE() AND (kiDt IS NULL OR kiDt>=CURDATE())"; + $v = db_query($q, array('fv' => 'isTanar', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => array($tanarId))); + return ($v==1); + } + + // Én hajlanék arra is, hogy az egész $Param tömböt kivegyük... + function getOsztalyIdsByTanarId($tanarId, $Param = array('tanev' => __TANEV, 'tolDt' => '', 'igDt' => '', 'csakId'=>true)) { + + global $_TANEV; + + if (is_null($Param['tanev']) || $Param['tanev']=='') $Param['tanev']=__TANEV; + if ($Param['tanev'] != __TANEV && $Param['tanev']!='') $TA = getTanevAdat($Param['tanev']); + else $TA = $_TANEV; + + if (isset($Param['tolDt']) && $Param['tolDt']!='') $tolDt = $Param['tolDt']; else unset($tolDt); + if (isset($Param['igDt']) && $Param['igDt']!='') $igDt = $Param['igDt']; else unset($igDt); + initTolIgDt($Param['tanev'], $tolDt, $igDt); + + $q = "SELECT DISTINCT osztalyId FROM ".__INTEZMENYDBNEV.".osztalyTanar WHERE tanarId=%u AND beDt <= '%s' + AND (kiDt IS NULL OR kiDt >= '%s')"; + $v = array($tanarId, $igDt, $tolDt); + return db_query($q, array('fv' => 'getOsztalyIdsByTanarId', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => $v)); + + } + + + function naploBeallitasok() { + + global $_RPC; + + $lr = db_connect('naplo_base', array('fv' => 'naploBeallitasok')); + if ($lr == false) return false; + + // session lekérdezése + $q = "SELECT intezmeny, telephelyId, tanev, parentDiakId FROM session WHERE sessionID='"._SESSIONID."' AND policy='"._POLICY."'"; + $RESULT = db_query($q, array('fv' => 'naploBeallitasok', 'modul' => 'naplo_base', 'result' => 'record'), $lr); + + if ($vanSession = (is_array($RESULT) && (count($RESULT) > 0))) { // Létező session - egyszerű eset + + if ($RESULT['intezmeny'] != '') + initIntezmeny($RESULT); + if (defined('__INTEZMENY') && $RESULT['tanev'] != '') + initTanev($RESULT['intezmeny'], $RESULT['tanev']); + if (_POLICY == 'parent' && $RESULT['parentDiakId'] != '') + define('__PARENTDIAKID', $RESULT['parentDiakId']); +//var_dump($RESULT); +//die(); + + } + // Az (alapértelmezett) intézmény lekérdezése - ha még nincs meg + if (!defined('__INTEZMENY')) { + + if (_RPC) { + /* Ha az RPC hívás tartalmazza az OMKod-ot */ + $OMKod = readVariable($_RPC['request']['OMKod'],'numeric unsigned'); + $q = "SELECT rovidNev AS intezmeny FROM intezmeny WHERE OMKod=%u"; + $RESULT = db_query($q, array('fv' => 'naploBeallitasok/settings', 'modul' => 'naplo_base', 'values'=> array($OMKod),'result' => 'record')); + if ($RESULT['intezmeny'] == '' && $page=='naplo') { // ismeretlen OMKod esetén elutasítjuk a további feldolgozást + $DATA = array('alert'=>'page:wrong_data:OMKod','OMKod'=>$OMKod,'result'=>'failure'); + global $RPC; + $RPC->setResponse($DATA); $RPC->sendResponse(); die(); + } + } else { + /* egyedi intezmeny és telephely lekérdezése a settings-ből */ + $q = "SELECT intezmeny, telephelyId FROM settings WHERE userAccount='%s' AND policy='%s'"; + $RESULT = db_query($q, array('fv' => 'naploBeallitasok/settings', 'modul' => 'naplo_base', 'values'=> array(_USERACCOUNT,_POLICY),'result' => 'record')); + + /* ellenőrizzük, hogy érvényes-e */ + if ($RESULT['intezmeny'] != '') { + $q = "SELECT rovidnev FROM intezmeny WHERE rovidnev='%s'"; + $RESULT['intezmeny'] = db_query($q, array('fv' => 'naploBeallitasok/settings intézmény', 'modul' => 'naplo_base', 'result' => 'value', 'values'=>array($RESULT['intezmeny'])), $lr); + + /* telephely ellenőrzése */ + if ($RESULT['intezmeny'] != '' && $RESULT['telephelyId'] != '') { + $q = "SELECT telephelyId FROM `%s`.`telephely` WHERE `telephelyId`='%s'"; + $RESULT['telephelyId'] = db_query($q, array( + 'fv' => 'naploBeallitasok/settings telephely', 'modul' => 'naplo_base', 'result' => 'value', + 'values' => array(intezmenyDbNev($RESULT['intezmeny']), $RESULT['telephelyId']) + ), $lr); + } else { unset($RESULT['telephelyId']); /* Ha az intézmény hibás, akkor a telephely sem lehet jó... */ } + } + } + + /* ha nem érvényes vagy nincs elmentve */ + if ($RESULT['intezmeny']=='') { + $q = "SELECT rovidnev FROM intezmeny ORDER BY alapertelmezett DESC LIMIT 1"; + $RESULT['intezmeny'] = db_query($q, array('fv' => 'naploBeallitasok/default intézmény', 'modul' => 'naplo_base', 'result' => 'value'), $lr); + } + + /* Ha a settings-ben nem kapott a telephelyId értéket, akkor lássuk, van-e alapértelmezett! */ + if ($RESULT['telephelyId'] == '') { + // Csak ha van alapértelmezett telephely, akkor kérdezzük le! + $q = "SELECT telephelyId FROM `%s`.`telephely` WHERE alapertelmezett=1 LIMIT 1"; + $RESULT['telephelyId'] = db_query($q, array( + 'fv' => 'naploBeallitasok/default telephely', 'modul' => 'naplo_base', 'result' => 'value', + 'values' => array(intezmenyDbNev($RESULT['intezmeny'])) + ), $lr); + } + + /* */ + + if ($RESULT['intezmeny']) initIntezmeny($RESULT); + } + + if (defined('__INTEZMENY') && !defined('__TANEV')) { + + $lr2 = db_connect('naplo_intezmeny', array('fv' => 'naploBeallitasok')); + if ($lr2 === false) return false; + + if (_RPC) { + // Ha az RPC hívás tartalmazza a tanévet + $tanev = readVariable($_RPC['request']['tanev'], 'numeric unsigned'); + // ellenőrzés + $q = "SELECT tanev FROM szemeszter WHERE tanev=%u ORDER BY szemeszter LIMIT 1"; + $v = array($tanev); + $ret = db_query($q, array('fv' => 'naploBeallitasok/default tanév', 'modul' => 'naplo_intezmeny', 'result' => 'record','values'=>$v)); + } + if (!is_array($ret) || count($ret) == 0) { + // A mai dátumhoz leközelebb eső kezdesDt, vagy zarasDt határozza meg, hogy melyik az aktív szemeszter + $q = "SELECT tanev, szemeszter, + IF(ABS(DATEDIFF(zarasDt,CURDATE()))<ABS(DATEDIFF(kezdesDt,CURDATE())), + ABS(DATEDIFF(zarasDt,CURDATE())), + ABS(DATEDIFF(kezdesDt,CURDATE()))) AS sub + FROM szemeszter WHERE statusz IN ('aktív','lezárt') ORDER BY statusz,sub LIMIT 1"; + $ret = db_query($q, array('fv' => 'naploBeallitasok/default tanév', 'modul' => 'naplo_intezmeny', 'result' => 'record')); + } + if (is_array($ret) && count($ret) > 0) { + $RESULT['tanev'] = $ret['tanev']; $RESULT['szemeszter'] = $ret['szemeszter']; + initTanev(__INTEZMENY, $RESULT['tanev']); + } + + } + + // session létrehozása - ha kell + $intezmeny = ''; $tanev = $telephelyId = 'NULL'; + if (defined('__INTEZMENY')) { + $intezmeny = __INTEZMENY; + if (defined('__TELEPHELYID')) $telephelyId = __TELEPHELYID; + if (!defined('__TANEV')) $_SESSION['alert'][] = 'message:nincs_tanev'; + } else { + $_SESSION['alert'][] = 'message:nincs_intezmeny'; + } + if (defined('__TANEV') && __TANEV!='') $tanev = __TANEV; + + if (defined('_SESSIONID') && _SESSIONID!='' && !$vanSession) { + $q = "REPLACE INTO session (sessionID, policy, intezmeny, telephelyId, tanev) VALUES + ('"._SESSIONID."','"._POLICY."' , '".$intezmeny."',".$telephelyId.", ".$tanev.")"; + db_query($q, array('fv' => 'naploBeallitasok/session', 'modul' => 'naplo_base'), $lr); + } + + db_close($lr); + return defined('__TANEV') && defined('__INTEZMENY'); + + } // function + + function nagykoruE($diakId) { + if (is_numeric($diakId)) { + $q = "select IF(diak.szuletesiIdo + interval 18 year < CURDATE(),1,0) FROM `diak` WHERE diakId=%u"; + return db_query($q, array('fv' => 'nagykoruE', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => array($diakId))); + } else { + return false; + } + } + + + +/* ====================================================================================================================================== */ + + + +// Kategóriák + if (_POLICY=='private' && memberOf(_USERACCOUNT, 'naploadmin') || _RUNLEVEL==='cron') { + $AUTH['my']['categories'][] = 'naploadmin'; + define('__NAPLOADMIN',true); + } else { + define('__NAPLOADMIN',false); + } + if (_POLICY=='private' && memberOf(_USERACCOUNT, 'vezetoseg')) { + $AUTH['my']['categories'][] = 'vezetoseg'; + define('__VEZETOSEG',true); + } else { + define('__VEZETOSEG',false); + } + + if (_POLICY=='parent') + define('__DIAK',true); + else + define('__DIAK',in_array('diák',$AUTH['my']['categories'])); + + define('__TITKARSAG',in_array('titkárság',$AUTH['my']['categories'])); + + // a TANAR tagság lejjebb dől el!!! + $TANARE = in_array('tanár',$AUTH['my']['categories']); + + + +if (__NAPLO_INSTALLED === true) { + + if (__UZENO_INSTALLED === true && _POLICY=='private') { + if (memberOf(_USERACCOUNT,'uzenoadmin')===true) define('__UZENOADMIN',true); + else define('__UZENOADMIN',false); + } else define('__UZENOADMIN',false); + + if (!naploBeallitasok()) { // Ha nincs intézmény, vagy tanév + if (__NAPLOADMIN === true) { + // naploadmin vegyen fel intézményt, tanévet + if (!defined('__INTEZMENY') and "$page:$sub:$f" != 'naplo:admin:intezmenyek') { + $href = 'index.php?page=naplo&sub=admin&f=intezmenyek'; + header('Location: '.location($href)); + } elseif ( + defined('__INTEZMENY') and !defined('__TANEV') + and "$page:$sub" != 'naplo:admin' + and "$page:$sub" != 'naplo:intezmeny' + ) { + $href = 'index.php?page=naplo&sub=admin&f=tanevek'; + header('Location: '.location($href)); + } + } elseif (!defined('__INTEZMENY') or (!defined('__TANEV') and "$page:$sub" != 'naplo:intezmeny')) { + // ures oldal, ez túl szigorú! + //$sub = ''; + //$f = 'error'; + } + } + + if (defined('__INTEZMENY')) { + if (__DIAK) { + if (_POLICY=='private') { + define('__USERDIAKID',getIdByOid(_STUDYID,'diak')); + } elseif (defined('__PARENTDIAKID')) { + define('__USERDIAKID',__PARENTDIAKID); + define('__USERSZULOID', getSzuloIdByUserAccount(("$page/$sub/$f" != 'naplo//diakValaszto'))); + } elseif ("$page/$sub/$f" != 'naplo//diakValaszto') { + header('Location: '.location('index.php?page=naplo&f=diakValaszto')); + } else { + define('__USERDIAKID',false); + } + } + // A diák milyen jogokkal és kötelezettségekkel rendelkezik + define('__NAGYKORU',(__DIAK===true && nagykoruE(__USERDIAKID))); + if ($TANARE && ($TANARE=isTanar(getIdByOid(_STUDYID,'tanar')))) { // itt már ellenőrizhetjük, hogy a keretrendszer szerint tanár, a napló szerint is tanár-e még a megfelelő intézmény időszakában + define('__USERTANARID',getIdByOid(_STUDYID,'tanar')); + if (__USERTANARID !== false) { + $_OSZTALYA = getOsztalyIdsByTanarId(__USERTANARID, array('tanev'=>__TANEV,'csakId'=>true)); + define('__OSZTALYFONOK',(is_array($_OSZTALYA) && count($_OSZTALYA) > 0)); + } + } + } + +} elseif (__NAPLOADMIN===true || memberOf(_USERACCOUNT,'useradmin')===true) { + $sub = 'admin'; + $f = 'install'; +} elseif ($page == 'naplo') { + global $sub,$f; + $sub = ''; + $f = 'error'; + $_SESSION['alert'][] = 'page:page_missing'; +} else { + // másik modult nézünk, csak becsatoljuk a base alatt lévő dolgokat..... + // jó ez vajon??? dump($page,$sub,$f); +} + + define('__TANAR',$TANARE); + +?> diff --git a/mayor-orig/www/include/modules/naplo/base/tool.php b/mayor-orig/www/include/modules/naplo/base/tool.php new file mode 100644 index 00000000..39923b9f --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/base/tool.php @@ -0,0 +1,589 @@ +<?php + +if ( !isset($TOOL) || !is_array($TOOL)) +$TOOL = array(); + +function getToolParameters() { + + global $TOOL; + + $TOOLVARS = array( + 'diakId'=> array('type'=>'id'), + 'tanarId'=> array('type'=>'id'), + 'szuloId'=> array('type'=>'id'), + 'teremId'=> array('type'=>'id'), + 'osztalyId'=> array('type'=>'id'), + 'targyId'=> array('type'=>'id'), + 'mkId'=> array('type'=>'id'), + 'tankorId'=> array('type'=>'id'), + 'telephelyId' => array('type'=>'id'), + + 'tolDt' => array('type'=>'datetime'), + 'igDt' => array('type'=>'datetime'), + 'refDt' => array('type'=>'datetime'), + 'dt' => array('type'=>'datetime'), + + 'tanev' => array('type'=>'numeric unsigned'), + 'het' => array('type'=>'numeric unsigned'), + + 'fileName' => array('type'=>'strictstring'), + 'conv' => array('type'=>'strictstring'), + 'sorrendNev' => array('type'=>'enum','allowOnly' => array('napló','anyakönyv','ellenőrző','bizonyítvány','egyedi')), + 'targySorrend' => array('type'=>'strictstring'), + 'vizsgaTipus' => array('type'=>'enum','allowOnly' => array('osztályozó vizsga','javítóvizsga','különbözetivizsga','beszámoltatóvizsga')), + + + // ellenőrizendő még: + 'ho' => array('type'=>'strictstring'), + 'ora' => array('type'=>'strictstring'), + 'tipus' => array('type'=>'strictstring'), +// 'telephely' => array('type'=>'strictstring'), + // ... + ); + + + foreach ( $TOOL as $tool => $params ) if (is_array($params)) { + + for ($i = 0; $i < count($params['post']); $i++) { + $_var = $params['post'][$i]; + //if ($TOOLVARS[$_var]=='') $_SESSION['alert'][] = '::toolvars:'.$_var; // nem üzenünk hibát + if ( $_POST[$_var]!='' && ($TOOLVARS[$_var]['type']!='') ) { // ellenőrizzük a fenti tömb szerinti változókat. + // itt típuskonverzió is történik + $_POST[$_var] = readVariable($_POST[$_var],$TOOLVARS[$_var]['type'],null,$TOOLVARS[$_var]['allowOnly']); + } + } + + if ( function_exists( $func = "get$tool" ) ) { + $func(); + } + + } + +} + + +/* AUDIT */ + +/* +getAuditInfo(); +function getAuditInfo() { + +global $page,$sub,$f; + +$_SESSION['alert'][] = '::'.$page.$sub.$f; + +$WORK = $_POST; + +for ($i +reset($WORK); +ksort($WORK); +$X = unserialize(serialize($WORK)); + +var_dump($X); + +} + */ + + +/* ------------------------- */ + + +function getSzamSelect() { + + global $TOOL; + + if (!is_array($TOOL['szamSelect']['szamok'])) { + $minValue = (isset($TOOL['szamSelect']['minValue']))?$TOOL['szamSelect']['minValue']:1; + $maxValue = (isset($TOOL['szamSelect']['maxValue']))?$TOOL['szamSelect']['maxValue']:100; + $TOOL['szamSelect']['szamok'] = range($minValue, $maxValue); + } + + if ( !isset($TOOL['szamSelect']['paramName']) || $TOOL['szamSelect']['paramName']=='' ) + $TOOL['szamSelect']['paramName'] = 'szam'; + +} + +function getIntezmenySelect() { + + global $TOOL; + + if (!is_array($TOOL['intezmenySelect']['intezmenyek'])) { + require_once('include/modules/naplo/share/intezmenyek.php'); + $TOOL['intezmenySelect']['intezmenyek'] = getIntezmenyek(); + } + if ( !isset($TOOL['intezmenySelect']['paramName']) || $TOOL['intezmenySelect']['paramName'] == '' ) + $TOOL['intezmenySelect']['paramName'] = 'intezmeny'; + +} + +function getTelephelySelect() { + + global $TOOL; + + if (!is_array($TOOL['telephelySelect']['telephelyek'])) { + require_once('include/modules/naplo/share/intezmenyek.php'); + $TOOL['telephelySelect']['telephelyek'] = getTelephelyek(); + } + if ( !isset($TOOL['telephelySelect']['paramName']) || $TOOL['telephelySelect']['paramName'] == '' ) + $TOOL['telephelySelect']['paramName'] = 'telephelyId'; + if (count($TOOL['telephelySelect']['telephelyek']) < 2) unset($TOOL['telephelySelect']); + +} + +function getTanevSelect() { + + global $TOOL; + + require_once('include/modules/naplo/share/intezmenyek.php'); + if (!is_array($TOOL['tanevSelect']['tanevek'])) $TOOL['tanevSelect']['tanevek'] = getTanevek($TOOL['tanevSelect']['tervezett']); + + if ( !isset($TOOL['tanevSelect']['paramName']) || $TOOL['tanevSelect']['paramName']=='' ) + $TOOL['tanevSelect']['paramName'] = 'tanev'; + +} + +function getSzemeszterSelect() { + + global $TOOL; + + require_once('include/modules/naplo/share/szemeszter.php'); + $TOOL['szemeszterSelect']['szemeszterek'] = getSzemeszterek($TOOL['szemeszterSelect']); + + if ( !isset($TOOL['szemeszterSelect']['paramName']) || $TOOL['szemeszterSelect']['paramName'] == '' ) + $TOOL['szemeszterSelect']['paramName'] = 'szemeszterId'; + +} + +function getTargySorrendSelect() { + + global $TOOL; + + require_once('include/modules/naplo/share/targy.php'); + if (!isset($TOOL['targySorrendSelect']['tanev'])) $TOOL['targySorrendSelect']['tanev'] = __TANEV; + $TOOL['targySorrendSelect']['sorrendNevek'] = getTargySorrendNevek($TOOL['targySorrendSelect']['tanev']); + + if ( !isset($TOOL['targySorrendSelect']['paramName']) || $TOOL['targySorrendSelect']['paramName'] == '' ) + $TOOL['targySorrendSelect']['paramName'] = 'sorrendNev'; + +} + +function getMunkakozossegSelect() { + + global $TOOL; + + if (!is_array($TOOL['munkakozossegSelect']['munkakozossegek'])) + $TOOL['munkakozossegSelect']['munkakozossegek'] = getMunkakozossegek(); + if ( !isset($TOOL['munkakozossegSelect']['paramName']) || $TOOL['munkakozossegSelect']['paramName']=='' ) + $TOOL['munkakozossegSelect']['paramName'] = 'mkId'; + +} + +function getTargySelect() { + + global $TOOL; + + if (!is_array($TOOL['targySelect']['targyak'])) + $TOOL['targySelect']['targyak'] = getTargyak(array('mkId' => $TOOL['targySelect']['mkId'])); + if ( !isset($TOOL['targySelect']['paramName']) || $TOOL['targySelect']['paramName']=='' ) + $TOOL['targySelect']['paramName'] = 'targyId'; + +} + +function getMunkatervSelect() { + + global $TOOL; + + if (!is_array($TOOL['munkatervSelect']['munkatervek'])) + $TOOL['munkatervSelect']['munkatervek'] = getMunkatervek(); + if ( !isset($TOOL['munkatervSelect']['paramName']) || $TOOL['munkatervSelect']['paramName']=='' ) + $TOOL['munkatervSelect']['paramName'] = 'munkatervId'; + +} + +function getTanarSelect() { + + global $TOOL; + + if (!is_array($TOOL['tanarSelect']['tanarok'])) { + if (!isset($TOOL['tanarSelect']['tanev']) && defined('__TANEV')) $TOOL['tanarSelect']['tanev'] = __TANEV; + if (is_array($TOOL['tanarSelect']['Param'])) $Param = $TOOL['tanarSelect']['Param']; + else $Param = array( + 'mkId' => $TOOL['tanarSelect']['mkId'], + 'tanev' => $TOOL['tanarSelect']['tanev'], + 'beDt' => $TOOL['tanarSelect']['beDt'], + 'kiDt' => $TOOL['tanarSelect']['kiDt'], + 'összes' => $TOOL['tanarSelect']['összes'], + 'override' => $TOOL['tanarSelect']['override'], + ); + $TOOL['tanarSelect']['tanarok'] = getTanarok($Param); + } + if (!isset($TOOL['tanarSelect']['paramName']) || $TOOL['tanarSelect']['paramName']=='' ) + $TOOL['tanarSelect']['paramName'] = 'tanarId'; + +} + +function getDiakSelect() { + + global $TOOL, $osztalyId; + + if (!isset($TOOL['diakSelect']['osztalyId']) && isset($osztalyId)) + $TOOL['diakSelect']['osztalyId'] = $osztalyId; + if (!is_array($TOOL['diakSelect']['diakok'])) + $TOOL['diakSelect']['diakok'] = getDiakok(array( + 'osztalyId' => $TOOL['diakSelect']['osztalyId'], + 'tanev' => $TOOL['diakSelect']['tanev'], + 'statusz' => $TOOL['diakSelect']['statusz'], + 'tolDt' => $TOOL['diakSelect']['tolDt'], + 'igDt' => $TOOL['diakSelect']['igDt'], + )); + if (!is_array($TOOL['diakSelect']['statusz'])) + $TOOL['diakSelect']['statusz'] = array('jogviszonyban van','magántanuló','vendégtanuló','jogviszonya felfüggesztve','jogviszonya lezárva','felvételt nyert'); + if ( !isset($TOOL['diakSelect']['paramName']) || $TOOL['diakSelect']['paramName']=='' ) + $TOOL['diakSelect']['paramName'] = 'diakId'; +} + +function getDiakLapozo() { + + global $TOOL, $osztalyId; + + if (!isset($TOOL['diakLapozo']['osztalyId']) && isset($osztalyId)) + $TOOL['diakLapozo']['osztalyId'] = $osztalyId; + if (!is_array($TOOL['diakLapozo']['diakok'])) + $TOOL['diakLapozo']['diakok'] = getDiakok(array( + 'osztalyId' => $TOOL['diakLapozo']['osztalyId'], + 'tanev' => $TOOL['diakLapozo']['tanev'], + 'statusz' => $TOOL['diakLapozo']['statusz'], + 'tolDt' => $TOOL['diakLapozo']['tolDt'], + 'igDt' => $TOOL['diakLapozo']['igDt'], + )); + if (!is_array($TOOL['diakLapozo']['statusz'])) + $TOOL['diakLapozo']['statusz'] = array('jogviszonyban van','magántanuló','vendégtanuló','jogviszonya felfüggesztve','jogviszonya lezárva','felvételt nyert'); + if ( !isset($TOOL['diakLapozo']['paramName']) || $TOOL['diakLapozo']['paramName']=='' ) + $TOOL['diakLapozo']['paramName'] = 'diakId'; + +} + + +function getTableSelect () { + + global $TOOL; + + $TOOL['tableSelect']['naplo'] =$TOOL['tableSelect']['naplo_intezmeny'] = array(); + if (defined('__INTEZMENY')) { + $TOOL['tableSelect']['naplo_intezmeny'] = db_query('SHOW TABLES', array('fv' => 'getTableSelect', 'modul' => 'naplo_intezmeny', 'result' => 'idonly')); + } + if (defined('__TANEV')) { + $TOOL['tableSelect']['naplo'] = + db_query('SHOW TABLES', array('fv' => 'getTableSelect', 'modul' => 'naplo', 'result' => 'idonly')); + } + if ( !isset($TOOL['tableSelect']['paramName']) || $TOOL['tableSelect']['paramName']=='' ) + $TOOL['tableSelect']['paramName'] = 'dbtable'; + +} + +function getOsztalySelect() { + + global $TOOL, $tanev; + + if (!isset($TOOL['osztalySelect']['tanev'])) { + if (isset($tanev)) $TOOL['osztalySelect']['tanev'] = $tanev; + elseif (defined('__TANEV')) $TOOL['osztalySelect']['tanev'] = __TANEV; + } + global $telephelyId; + if (!isset($TOOL['osztalySelect']['osztalyok'])) + if (isset($TOOL['osztalySelect']['tanev'])) + $TOOL['osztalySelect']['osztalyok'] = getOsztalyok($TOOL['osztalySelect']['tanev'],array('mindenOsztalyfonok'=>true, 'result'=>'indexed','telephelyId' => $telephelyId)); + else + $TOOL['osztalySelect']['osztalyok'] = array(); + + if ( !isset($TOOL['osztalySelect']['paramName']) || $TOOL['osztalySelect']['paramName']=='' ) + $TOOL['osztalySelect']['paramName'] = 'osztalyId'; + +} + +function getTanmenetSelect() { + + global $TOOL, $tanev, $tanarId, $targyId; + + if (!isset($TOOL['tanmenetSelect']['tanev'])) { + if (isset($tanev)) $TOOL['tanmenetSelect']['tanev'] = $tanev; + elseif (defined('__TANEV')) $TOOL['tanmenetSelect']['tanev'] = __TANEV; + } + + if (!isset($TOOL['tanmenetSelect']['tanmenetek'])) + if (isset($TOOL['tanmenetSelect']['tanev'])) { + if (isset($tanarId)) $TOOL['tanmenetSelect']['tanmenetek'] = getTanmenetByTanarId($tanarId, array('tanev' => $TOOL['tanmenetSelect']['tanev'])); + elseif (isset($targyId)) $TOOL['tanmenetSelect']['tanmenetek'] = getTanmenetByTargyId($targyId, array('tanev' => $TOOL['tanmenetSelect']['tanev'])); +// } else { +// $TOOL['tanmenetSelect']['tanmenetek'] = array(); + } + + if ( !isset($TOOL['tanmenetSelect']['paramName']) || $TOOL['tanmenetSelect']['paramName']=='' ) + $TOOL['tanmenetSelect']['paramName'] = 'tanmenetId'; + +} + +function getTankorSelect() { + + global $TOOL, $tanev, $mkId, $targyId, $osztalyId, $tanarId, $diakId; + + // Tanév beállítás: paraméter, globális változó, konstans + if (!isset($TOOL['tankorSelect']['tanev'])) { + if (isset($tanev)) $TOOL['tankorSelect']['tanev'] = $tanev; + elseif (defined('__TANEV')) $TOOL['tankorSelect']['tanev'] = __TANEV; + } + $tolDt=$TOOL['tankorSelect']['tolDt']; + $igDt=$TOOL['tankorSelect']['igDt']; + + // Paraméter neve + if ( !isset($TOOL['tankorSelect']['paramName']) || $TOOL['tankorSelect']['paramName']=='' ) + $TOOL['tankorSelect']['paramName'] = 'tankorId'; + + // tankörök lekérdezése - ha még nem történt meg + if (!is_array($TOOL['tankorSelect']['tankorok'])) { + if (isset($diakId) && $diakId!='') { // diák tankörei + $TOOL['tankorSelect']['tankorok'] = getTankorByDiakId($diakId, $TOOL['tankorSelect']['tanev'], array('tolDt'=>$tolDt, 'igDt'=>$igDt)); + } elseif (isset($osztalyId) && $osztalyId!='') { // osztály tankörei + $TOOL['tankorSelect']['tankorok'] = getTankorByOsztalyId($osztalyId, $TOOL['tankorSelect']['tanev'], array('tolDt'=>$tolDt, 'igDt'=>$igDt)); + } elseif (isset($tanarId) && $tanarId!='') { // tanár tankörei + $TOOL['tankorSelect']['tankorok'] = getTankorByTanarId($tanarId, $TOOL['tankorSelect']['tanev'], array('tolDt'=>$tolDt, 'igDt'=>$igDt)); + } else { // általános tankörlekérdző + $WHERE = array(); + if (isset($targyId) && $targyId != '') { // leszűkítés adott tárgyra + $WHERE[] = 'targyId='.$targyId; + } elseif (isset($mkId) && $mkId != '') { // leszűkítés adott munkaközösségre + $TARGYAK = getTargyakByMkId($mkId); + for ($i = 0; $i < count($TARGYAK); $i++) $T[] = $TARGYAK[$i]['targyId']; + if (count($T) > 0) $WHERE[] = 'targyId IN ('.implode(',', $T).')'; + } + + if (isset($TOOL['tankorSelect']['tanev'])) // szűkítés adott tanévre + $WHERE[] = 'tankorSzemeszter.tanev='.$TOOL['tankorSelect']['tanev']; + + $TOOL['tankorSelect']['tankorok'] = getTankorok($WHERE); + } + } else { + // A megadott tankörök csoportosításához + if (!is_array($TOOL['tankorSelect']['tankorIds'])) { + if (isset($diakId) && $diakId != '') { // diák tankörei + $TOOL['tankorSelect']['tankorIds'] = getTankorByDiakId($diakId, $TOOL['tankorSelect']['tanev'],array('csakId' => true, 'tolDt'=>$tolDt, 'igDt'=>$igDt )); + } elseif (isset($osztalyId) && $osztalyId != '') { // osztály tankörei + $TOOL['tankorSelect']['tankorIds'] = getTankorByOsztalyId($osztalyId, $TOOL['tankorSelect']['tanev'], array('csakId' => true, 'tolDt'=>$tolDt, 'igDt'=>$igDt)); + } elseif (isset($tanarId) && $tanarId != '') { // tanár tankörei + $TOOL['tankorSelect']['tankorIds'] = getTankorByTanarId($tanarId, $TOOL['tankorSelect']['tanev'], array('csakId' => true,'tolDt'=>$tolDt, 'igDt'=>$igDt)); + } + } + } + if ($tolDt!='' || $igDt!='') + $TOOL['tankorSelect']['tankorIdsDt'] = $tolDt.'-'.$igDt; + +} + +function getDatumSelect() { + + global $TOOL, $tanev; + + if (isset($tanev)) $TOOL['datumSelect']['tanev'] = $tanev; + elseif (defined('__TANEV')) $TOOL['datumSelect']['tanev'] = __TANEV; + + if ( + (is_array($TOOL['datumSelect']['napTipusok']) || isset($TOOL['datumSelect']['napokSzama'])) + && !is_array($TOOL['datumSelect']['napok']) + ) { + $TOOL['datumSelect']['napok'] = getNapok( + array( + 'tanev' => $TOOL['datumSelect']['tanev'], + 'tolDt' => $TOOL['datumSelect']['tolDt'], + 'igDt' => $TOOL['datumSelect']['igDt'], + 'tipus' => $TOOL['datumSelect']['napTipusok'], + 'napokSzama' => $TOOL['datumSelect']['napokSzama'], + ) + ); + } else { + + $tolDt = $TOOL['datumSelect']['tolDt']; $igDt = $TOOL['datumSelect']['igDt']; + initTolIgDt($TOOL['datumSelect']['tanev'], $tolDt, $igDt, $TOOL['datumSelect']['override']); + $TOOL['datumSelect']['tolDt'] = $tolDt; $TOOL['datumSelect']['igDt'] = $igDt; + + if (!isset($TOOL['datumSelect']['hanyNaponta']) || $TOOL['datumSelect']['hanyNaponta']=='' ) + $TOOL['datumSelect']['hanyNaponta'] = 1; + + }; + + if (!isset($TOOL['datumSelect']['paramName']) || $TOOL['datumSelect']['paramName']=='' ) + $TOOL['datumSelect']['paramName'] = 'dt'; +} + +function getDatumTolIgSelect() { + + global $TOOL, $tanev; + + if (isset($tanev)) $TOOL['datumTolIgSelect']['tanev'] = $tanev; + elseif (defined('__TANEV')) $TOOL['datumTolIgSelect']['tanev'] = __TANEV; + + if ( + (is_array($TOOL['datumTolIgSelect']['napTipusok']) || isset($TOOL['datumTolIgSelect']['napokSzama'])) + && !is_array($TOOL['datumTolIgSelect']['napok']) + ) { + $TOOL['datumTolIgSelect']['napok'] = getNapok( + array( + 'tanev' => $TOOL['datumTolIgSelect']['tanev'], + 'tolDt' => $TOOL['datumTolIgSelect']['tolDt'], + 'igDt' => $TOOL['datumTolIgSelect']['igDt'], + 'tipus' => $TOOL['datumTolIgSelect']['napTipusok'], + 'napokSzama' => $TOOL['datumTolIgSelect']['napokSzama'], + ) + ); + } else { + $tolDt = $TOOL['datumTolIgSelect']['tolDt']; $igDt = $TOOL['datumTolIgSelect']['igDt']; + initTolIgDt($TOOL['datumTolIgSelect']['tanev'], $tolDt, $igDt, $TOOL['datumTolIgSelect']['override']); + $TOOL['datumTolIgSelect']['tolDt'] = $tolDt; $TOOL['datumTolIgSelect']['igDt'] = $igDt; + + if (!isset($TOOL['datumTolIgSelect']['hanyNaponta']) || $TOOL['datumTolIgSelect']['hanyNaponta']=='' ) + $TOOL['datumTolIgSelect']['hanyNaponta'] = 1; + + }; + + if (!isset($TOOL['datumTolIgSelect']['tolParamName']) || $TOOL['datumTolIgSelect']['tolParamName']=='' ) + $TOOL['datumTolIgSelect']['tolParamName'] = 'tolDt'; + if (!isset($TOOL['datumTolIgSelect']['igParamName']) || $TOOL['datumTolIgSelect']['igParamName']=='' ) + $TOOL['datumTolIgSelect']['igParamName'] = 'igDt'; + +} + +function getOraSelect() { + + global $TOOL, $tanev; + + if (!isset($TOOL['oraSelect']['tol']) || $TOOL['oraSelect']['tol'] == '' ) + $TOOL['oraSelect']['tol'] = getMinOra(); + if (!isset($TOOL['oraSelect']['ig']) || $TOOL['oraSelect']['ig'] == '' ) + $TOOL['oraSelect']['ig'] = getMaxOra(); + + if (!isset($TOOL['oraSelect']['paramName']) || $TOOL['oraSelect']['paramName']=='' ) + $TOOL['oraSelect']['paramName'] = 'ora'; + +} + +function getTeremSelect() { + + global $TOOL; + + $telephelyId = $TOOL['teremSelect']['telephelyId']; + if (!is_array($TOOL['teremSelect']['termek'])) $TOOL['teremSelect']['termek'] = getTermek(array('telephelyId' => $telephelyId)); + if (!isset($TOOL['teremSelect']['paramName']) || $TOOL['teremSelect']['paramName']=='' ) + $TOOL['teremSelect']['paramName'] = 'teremId'; + +} + +function getKepzesSelect() { + + global $TOOL; + + $TOOL['kepzesSelect']['kepzes'] = getKepzesek(); + if (!is_array($TOOL['kepzesSelect']['kepzes']) || count($TOOL['kepzesSelect']['kepzes']) == 0) { + unset($TOOL['kepzesSelect']); + } else { + if ( !isset($TOOL['kepzesSelect']['paramName']) || $TOOL['kepzesSelect']['paramName'] == '' ) + $TOOL['kepzesSelect']['paramName'] = 'kepzesId'; + } +} + +function getKerdoivSelect() { + + global $TOOL; + + if (!is_array($TOOL['kerdoivSelect']['kerdoiv'])) $TOOL['kerdoivSelect']['kerdoiv'] = getKerdoiv(); + if ( !isset($TOOL['kerdoivSelect']['paramName']) || $TOOL['kerdoivSelect']['paramName'] == '' ) + $TOOL['kerdoivSelect']['paramName'] = 'kerdoivId'; + +} + +function getSzuloSelect() { + + global $TOOL; + + $TOOL['szuloSelect']['szulo'] = getSzulok(array('result' => 'indexed')); + if (!is_array($TOOL['szuloSelect']['szulo']) || count($TOOL['szuloSelect']['szulo']) == 0) { + unset($TOOL['szuloSelect']); + } else { + if ( !isset($TOOL['szuloSelect']['paramName']) || $TOOL['szuloSelect']['paramName'] == '' ) + $TOOL['szuloSelect']['paramName'] = 'szuloId'; + } +} + + +/* TANEV FÜGGŐK */ + +function getOrarendiHetSelect() { + + global $TOOL; + $TOOL['orarendiHetSelect']['hetek'] = getOrarendiHetek($TOOL['orarendiHetSelect']); // tolDt, igDt, tanev + if ( !isset($TOOL['orarendiHetSelect']['paramName']) || $TOOL['orarendiHetSelect']['paramName']=='' ) + $TOOL['orarendiHetSelect']['paramName'] = 'het'; + +} + +function getTanarOraLapozo() { + + global $TOOL; + global $tanarId,$tolDt,$igDt,$oraId; + $_X = $TOOL['tanarOraLapozo']['orak'] = getTanarOrak( + $tanarId,array('tolDt' => $tolDt, 'igDt' => $igDt, 'tipus' => array('normál','normál máskor','helyettesítés','felügyelet','összevonás')) + ); + for ($i = 0; $i < count($_X); $i++) { + if ($_X[$i]['oraId'] == $oraId) { + $TOOL['tanarOraLapozo']['oraAdat'] = $_X[$i]; + if (is_array($_X[($i-1)])) $TOOL['tanarOraLapozo']['elozo'] = $_X[$i-1]; + if (is_array($_X[($i+1)])) $TOOL['tanarOraLapozo']['kovetkezo'] = $_X[$i+1]; + break; + } + } + if ( !isset($TOOL['tanarOraLapozo']['paramName']) || $TOOL['tanarOraLapozo']['paramName']=='' ) + $TOOL['tanarOraLapozo']['paramName'] = 'oraId'; + +} + +function getIgazolasOsszegzo() { + + global $TOOL; + global $diakId; + global $_TANEV; + if ($diakId!='') { + $TOOL['igazolasOsszegzo']['igazolasok'] = getIgazolasSzam($diakId); + $_T = getDiakHianyzasOsszesites(array($diakId),$_TANEV); + $TOOL['igazolasOsszegzo']['hianyzasok'] = $_T[$diakId]; + } + +} + +function getZaradekSelect() { + + global $TOOL; + + if (!is_array($TOOL['zaradekSelect']['zaradekok'])) $TOOL['zaradekSelect']['zaradekok'] = getZaradekok(); + + if (!isset($TOOL['zaradekSelect']['paramName']) || $TOOL['zaradekSelect']['paramName']=='' ) + $TOOL['zaradekSelect']['paramName'] = 'zaradekIndex'; + +} + +function getKerelemStat() { + global $TOOL; + //$TOOL['kerelemStat']['stat'] = getKerelemOsszesito(); +} + +//function getTelephelySelect() { +// global $TOOL; +// if (!is_array($TOOL['telephelySelect']['telephelyek'])) { +// $TOOL['telephelySelect']['telephelyek'] = getTelephely(); +// } +// +//} + +function getVissza() { + global $TOOL; + if ($TOOL['vissza']['icon']=='') { $TOOL['vissza']['icon'] = 'arrow-left'; } // default, egyelőre csak a 'vissza' típusnál használjuk +} + +?> diff --git a/mayor-orig/www/include/modules/naplo/base/update.php b/mayor-orig/www/include/modules/naplo/base/update.php new file mode 100644 index 00000000..02bcf0e8 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/base/update.php @@ -0,0 +1,86 @@ +<?php + +/* + function update002483() { + + + // A bejegyzések kezelését konfigurciós állományból áttettük adatbázisba. + // Ennek a konverziónak a végső lépését PHP-ből célszerű elvégezni - ezt csinálja ez a script + + global $FEGYELMI_FOKOZATOK, $DICSERET_FOKOZATOK, $HIANYZASI_FOKOZATOK; + + // Hogy ne fusson le feleslegesen minden oldalbetöltésekor egy lock file-t készítünk a sikeres lefutás után... + // Idővel aztán kikommentezzük a függvényhívást, még később akár töröljük is a függvényt... + $dir = file_exists(_CACHEDIR)?_CACHEDIR:_DOWNLOADDIR; + $lock = $dir.'/002483.lock'; + if (!file_exists($lock)) { + require_once('include/modules/naplo/share/ertekeles.php'); + + $lr = db_connect('naplo_intezmeny'); + db_start_trans($lr); + // A fegyelmi fokozatok neveinek beállítása + foreach ($FEGYELMI_FOKOZATOK as $fokozat => $bejegyzesTipusNev) { + if ($fokozat > 0) { + // Ki jogosult beírni + $jogosult = array('admin'); + if (in_array(mb_substr($bejegyzesTipusNev, 0, 9, 'UTF-8'), array('igazgatói', 'nevelőtes'))) $jogosult[] = 'vezetőség'; + if (mb_substr($bejegyzesTipusNev, 0, 13, 'UTF-8') == 'osztályfőnöki') $jogosult[] = 'osztályfőnök'; + if (mb_substr($bejegyzesTipusNev, 0, 10, 'UTF-8') == 'szaktanári') $jogosult[] = 'szaktanár'; + // frissítés + $q = "UPDATE `bejegyzesTipus` SET `bejegyzesTipusNev`='%s', `jogosult`='".implode(',', $jogosult)."' WHERE `tipus`='fegyelmi' AND `fokozat`='%s'"; + $v = array($bejegyzesTipusNev, $fokozat); + $r = db_query($q, array('fv' => 'update002483/fegyelmi','modul' => 'naplo_intezmeny','values' => $v, 'rollback' => true), $lr); + if (!$r) { + db_close($lr); + return false; + } + } + } + // A dicséret fokozatok neveinek beállítása + foreach ($DICSERET_FOKOZATOK as $fokozat => $bejegyzesTipusNev) { + if ($fokozat > 0) { + // Ki jogosult beírni + $jogosult = array('admin'); + if (in_array(mb_substr($bejegyzesTipusNev, 0, 9, 'UTF-8'), array('igazgatói', 'nevelőtes'))) $jogosult[] = 'vezetőség'; + if (mb_substr($bejegyzesTipusNev, 0, 13, 'UTF-8') == 'osztályfőnöki') $jogosult[] = 'osztályfőnök'; + if (mb_substr($bejegyzesTipusNev, 0, 10, 'UTF-8') == 'szaktanári') $jogosult[] = 'szaktanár'; + // frissítés + $q = "UPDATE `bejegyzesTipus` SET `bejegyzesTipusNev`='%s', `jogosult`='".implode(',', $jogosult)."' WHERE `tipus`='dicseret' AND `fokozat`='%s'"; + $v = array($bejegyzesTipusNev, $fokozat); + $r = db_query($q, array('fv' => 'update002483/dicseret','modul' => 'naplo_intezmeny','values' => $v, 'rollback' => true), $lr); + if (!$r) { + db_close($lr); + return false; + } + } + } + // Az adott számú igazolatlan hiűnyzáshoz rendelt fegyelmi fokozatok eltárolása + foreach ($HIANYZASI_FOKOZATOK as $hianyzasDb => $fokozat) { + if ($fokozat > 0) { + $q = "UPDATE `bejegyzesTipus` SET `hianyzasDb`=%u WHERE `tipus`='fegyelmi' AND `fokozat`='%s'"; + $v = array($hianyzasDb, $fokozat); + $r = db_query($q, array('fv' => 'update002483/hianyzas','modul' => 'naplo_intezmeny','values' => $v, 'rollback' => true), $lr); + if (!$r) { + db_close($lr); + return false; + } + } + } + // A felesleges fegyelmi és dicséret fokozatok törlése (20-20 fokozat volt felvéve) + $q = "DELETE FROM `bejegyzesTipus` WHERE `bejegyzesTipusNev` IS NULL"; + $r = db_query($q, array('fv' => 'update002483/delete','modul' => 'naplo_intezmeny', 'rollback' => true), $lr); + + if ($r) db_commit($lr); + db_close($lr); + + $fp = fopen($lock,'w'); + fwrite($fp, 'PHP update 002483 done.'); + fclose($fp); + } + } +*/ + + +// update002483(); + +?> diff --git a/mayor-orig/www/include/modules/naplo/base/zcheck.php b/mayor-orig/www/include/modules/naplo/base/zcheck.php new file mode 100644 index 00000000..38c03a11 --- /dev/null +++ b/mayor-orig/www/include/modules/naplo/base/zcheck.php @@ -0,0 +1,100 @@ +<?php + + function checkConstants() { + + + $_check = array( + '__OSZTALYFONOKI_IGAZOLAS_EVRE', +// '__TANITASI_HETEK_SZAMA', +// '__VEGZOS_TANITASI_HETEK_SZAMA', + '__SZULOI_IGAZOLAS_FELEVRE', + '__SZULOI_IGAZOLAS_EVRE', + '__SZULOI_ORA_IGAZOLAS_FELEVRE', + '__SZULOI_ORA_IGAZOLAS_EVRE', + '__OSZTALYFONOKI_IGAZOLAS_FELEVRE', + '__OSZTALYFONOKI_IGAZOLAS_EVRE', + '__OSZTALYFONOKI_ORA_IGAZOLAS_FELEVRE', + '__OSZTALYFONOKI_ORA_IGAZOLAS_EVRE', + '_KESESI_IDOK_OSSZEADODNAK', + '_HANY_KESES_IGAZOLATLAN', + '_HANY_FSZ_IGAZOLATLAN', + '_HIANYZAS_HATARIDO', + '_OFO_HIANYZAS_BEIRAS', + '_OFO_HIANYZAS_HATARIDO', + '_IGAZOLAS_BEIRAS', + '_IGAZOLAS_BEIRAS_HATARIDO', + '_IGAZOLAS_LEADAS', + '_LEGKORABBI_IGAZOLHATO_HIANYZAS', + '_VIZITHOSSZ', + '__DEFAULT_SULYOZAS', + + ); + + for($i=0; $i<count($_check); $i++) { + if (!defined($_check[$i])) $_SESSION['alert'][] = 'alert:missing_constant:'.$_check[$i]; + } + + if (defined('_TANKOR_MODOSITAS_HATARIDO')) + $_SESSION['alert'][] = 'alert:obsolete_constant:_TANKOR_MODOSITAS_HATARIDO'; + } + + global $page,$sub,$f; + + if (__NAPLOADMIN===true && !($page=='naplo' && $sub=='admin' && $f=='tanevek') && defined('__INTEZMENY')) checkConstants(); + + if (!defined('__UZENO_DEFAULTLIMIT')) define('__UZENO_DEFAULTLIMIT',20); + if (!defined('__UZENO_AJAXLIMIT')) define('__UZENO_AJAXLIMIT',5); + if (!defined('__SHOW_FACES')) define('__SHOW_FACES','always'); + + + if ($skin!='vakbarat') { // nem szép megoldás, de nem tudok jobbat, ez a beállítás skin függő + if (__SHOW_FACES=='always') { + define('__SHOW_FACES_TF',true); + } elseif (__SHOW_FACES=='menu-driven') { + define('__SHOW_FACES_TF',true); + } elseif (__SHOW_FACES=='optional') { + define('__SHOW_FACES_TF',true); + } else { + define('__SHOW_FACES_TF',false); + } + } else { + define('__SHOW_FACES_TF',false); + } + + // CHECK ME! + if (!defined('__DETAILED')) { + if (__NAPLOADMIN===true) { + define('__DETAILED',true); + } else { + define('__DETAILED',false); + } + } + + if (!defined('__HIANYZASTOROLHETO')) define('__HIANYZASTOROLHETO',false); else define('__HIANYZASTOROLHETO',true); + + if (!defined('__MAXORA_MINIMUMA')) define('__MAXORA_MINIMUMA',8); + if (!defined('__HETIMAXNAP_MINIMUMA')) define('__HETIMAXNAP_MINIMUMA',5); + + if (!defined('__HIANYZASBA_NEM_SZAMITO_TIPUSOK')) { + define('__HIANYZASBA_NEM_SZAMITO_TIPUSOK','délutáni,egyéni foglalkozás,tanórán kívüli'); + } + if (!defined('__TANITASINAP_HETENTE')) define('__TANITASINAP_HETENTE',5); + + /* üzenő szerepkor beallitasa */ + if (__UZENOADMIN===true) { + $__asWho = readVariable($_POST['asWho'],'strictstring','asIs',array('asAdmin','asIs')); + define('__ASWHO',$__asWho); + } else { + define('__ASWHO','asIs'); + } + + if (defined('__UZENOADMIN') && __UZENOADMIN===true && defined('__ASWHO') && __ASWHO==='asAdmin') define('__UZENOSZEREP','admin'); + elseif (__TANAR===true) define('__UZENOSZEREP', 'tanar'); + elseif (__DIAK===true && defined('__PARENTDIAKID') && intval(__PARENTDIAKID)>0) define('__UZENOSZEREP','szulo'); + elseif (__DIAK===true && defined('__USERDIAKID') && intval(__USERDIAKID)>0) define('__UZENOSZEREP','diak'); + elseif (__UZENOADMIN===true) define('__UZENOSZEREP','admin'); + else define('__UZENOSZEREP',''); + + if (count($KERELEM_TAG) ==0) $KERELEM_TAG = array('névsor','jogviszony','órarend, haladási','hiányzás, igazolás','jegy, zárójegy'); + +?> |