aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/www/include/modules/naplo/base
diff options
context:
space:
mode:
authorM.Gergo2018-07-06 11:14:41 +0200
committerM.Gergo2018-07-06 11:14:41 +0200
commit43de9af71f7f4ca5731b94a06d688ae8412ba427 (patch)
tree54835de1dfcda504c02da261f0dc26885aed2e89 /mayor-orig/www/include/modules/naplo/base
parent50310b0e4513ee3fcce67351ae61e8fff851130e (diff)
downloadmayor-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.php298
-rw-r--r--mayor-orig/www/include/modules/naplo/base/log.php40
-rw-r--r--mayor-orig/www/include/modules/naplo/base/rights.php469
-rw-r--r--mayor-orig/www/include/modules/naplo/base/tool.php589
-rw-r--r--mayor-orig/www/include/modules/naplo/base/update.php86
-rw-r--r--mayor-orig/www/include/modules/naplo/base/zcheck.php100
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');
+
+?>