diff options
Diffstat (limited to 'mayor-orig/www/include/modules/naplo/admin')
7 files changed, 0 insertions, 814 deletions
diff --git a/mayor-orig/www/include/modules/naplo/admin/azonositok.php b/mayor-orig/www/include/modules/naplo/admin/azonositok.php deleted file mode 100644 index 9d85b3e5..00000000 --- a/mayor-orig/www/include/modules/naplo/admin/azonositok.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - - function getOsztalyNevsorEsOid($osztalyId) { - - $q = "SELECT diakId, TRIM(CONCAT_WS(' ',viseltNevElotag, ViseltCsaladiNev, viseltUtoNev)) AS diakNev, viseltCsaladinev, viseltUtonev, oId - FROM diak LEFT JOIN osztalyDiak USING (diakId) - WHERE osztalyId=%u - AND beDt<=CURDATE() AND (kiDt >= CURDATE() OR kiDt IS NULL) - AND (statusz != 'jogviszonya lezárva' OR jogviszonyVege < CURDATE()) ORDER BY diakNev, oId"; - return db_query($q, array('fv' => 'getOsztalyAzonositok', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => array($osztalyId)), $lr); - - } - -?> diff --git a/mayor-orig/www/include/modules/naplo/admin/checksql.php b/mayor-orig/www/include/modules/naplo/admin/checksql.php deleted file mode 100644 index cb751521..00000000 --- a/mayor-orig/www/include/modules/naplo/admin/checksql.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - - - - function checkSqlConsistency($queryFile,$db,&$Q_ERR) - { - - $convert = array("%DB%" => intezmenyDbNev(__INTEZMENY)); - - $fp = fopen($queryFile, 'r'); - $query = fread($fp, filesize($queryFile)); - fclose($fp); - - // A tárolt eljárásoknak, függvényeknek "DELIMITER //" és "DELIMITER ; //" között kell lenniük - egy blokkban a file végén! - list($query, $delimiter) = explode('DELIMITER //', $query); - - // Tábladefiníciók - normál query-k - $QUERIES = explode(';', str_replace("\n", '', $query)); - for ($i = 0; $i < count($QUERIES); $i++) { - $q = $QUERIES[$i]; - if (trim($q) != '' and substr($q, 0, 2) != '--' and substr($q, 0, 3) != '/*!') { - if (is_array($convert)) foreach ( $convert as $mit=>$mire ) $q = str_replace($mit,$mire,$q); - } - if (substr($q,0,6) == 'CREATE') { - $_q = str_replace(' ','',$q); - $first = $second = 0; - for ($c = 0; $c<strlen($_q); $c++) { - if ($_q[$c]==='`') { - if ($first==0) $first = $c; - else { - $second = $c; break; - } - } - } - $table = substr($_q,$first+1,$second-$first-1); - $r = db_query("SHOW CREATE TABLE $table",array('modul'=>$db,'result'=>'record')); - $q1 = str_replace("\n",'',str_replace(' ','',$r['Create Table'])); - $q2 = str_replace(' ','',$_q); - $q1_tmp = substr($q1,0,strrpos($q1,")")); - $q2_tmp = substr($q2,0,strrpos($q2,")")); - if ($q1_tmp!=$q2_tmp) { - $Q_ERR[]=array('inDb'=>$r['Create Table'],'inFile'=>$q); - } - } - } - } - - - -/* -Paul's Simple Diff Algorithm v 0.1 -(C) Paul Butler 2007 <http://www.paulbutler.org/> -May be used and distributed under the zlib/libpng license. -This code is intended for learning purposes; it was written with short -code taking priority over performance. It could be used in a practical -application, but there are a few ways it could be optimized. -Given two arrays, the function diff will return an array of the changes. -I won't describe the format of the array, but it will be obvious -if you use print_r() on the result of a diff on some test data. -htmlDiff is a wrapper for the diff command, it takes two strings and -returns the differences in HTML. The tags used are <ins> and <del>, -which can easily be styled with CSS. -*/ - -function diff($old, $new){ -foreach($old as $oindex => $ovalue){ -$nkeys = array_keys($new, $ovalue); -foreach($nkeys as $nindex){ -$matrix[$oindex][$nindex] = isset($matrix[$oindex - 1][$nindex - 1]) ? -$matrix[$oindex - 1][$nindex - 1] + 1 : 1; -if($matrix[$oindex][$nindex] > $maxlen){ -$maxlen = $matrix[$oindex][$nindex]; -$omax = $oindex + 1 - $maxlen; -$nmax = $nindex + 1 - $maxlen; -} -} -} -if($maxlen == 0) return array(array('d'=>$old, 'i'=>$new)); -return array_merge( -diff(array_slice($old, 0, $omax), array_slice($new, 0, $nmax)), -array_slice($new, $nmax, $maxlen), -diff(array_slice($old, $omax + $maxlen), array_slice($new, $nmax + $maxlen))); -} - -function htmlDiff($old, $new){ -$diff = diff(explode(' ', $old), explode(' ', $new)); -foreach($diff as $k){ -if(is_array($k)) -$ret .= (!empty($k['d'])?"<del>".implode(' ',$k['d'])."</del> ":''). -(!empty($k['i'])?"<ins>".implode(' ',$k['i'])."</ins> ":''); -else $ret .= $k . ' '; -} -return $ret; -} - - - -?> diff --git a/mayor-orig/www/include/modules/naplo/admin/intezmenyek.php b/mayor-orig/www/include/modules/naplo/admin/intezmenyek.php deleted file mode 100644 index 654a4c56..00000000 --- a/mayor-orig/www/include/modules/naplo/admin/intezmenyek.php +++ /dev/null @@ -1,117 +0,0 @@ -<?php - - function updateNaploSession($sessionID,$rovidnev) { - if (defined('__TANEV')) { - $q = "UPDATE session SET intezmeny='%s',tanev=%u WHERE sessionID='%s'"; - $v = array($rovidnev,__TANEV,$sessionID); - } else { - $q = "UPDATE session SET intezmeny='%s' WHERE sessionID='%s'"; - $v = array($rovidnev,$sessionID); - } - $r = db_query($q, array('fv' => 'updateNaploSession', 'modul' => 'naplo_base', 'values' => $v)); - } - - function intezmenyBejegyzese($OMKod, $nev, $rovidnev) { - - $lr = db_connect('naplo_base', array('fv' => 'intezmenyBejegyzese')); - - $q = "SELECT COUNT(*) FROM intezmeny WHERE alapertelmezett=1"; - $num = db_query($q, array('fv' => 'intezmenyBejegyzese', 'modul' => 'naplo_base', 'result' => 'value'), $lr); - - if ($num > 0) $alapertelmezett = 0; - else $alapertelmezett = 1; - - $q = "INSERT INTO intezmeny (OMKod, nev, rovidnev, alapertelmezett) - VALUES ('%s', '%s', '%s', %u)"; - $v = array($OMKod, $nev, $rovidnev, $alapertelmezett); - $r = db_query($q, array('fv' => 'intezmenyBejegyzese', 'modul' => 'naplo_base', 'values' => $v), $lr); - - db_close($lr); - } - - function intezmenyModositas($ADAT) { - - $q = "UPDATE intezmeny SET nev='%s', OMKod='%s', alapertelmezett=%u, fenntarto='%s' WHERE rovidNev='".__INTEZMENY."' "; - $v = array($ADAT['nev'], $ADAT['OMKod'], $ADAT['alapertelmezett'], $ADAT['fenntarto']); - return db_query($q, array('fv' => 'intezmenyModositas', 'modul' => 'naplo_base', 'values' => $v)); - - } - - function intezmenyTorles($intezmeny) { - - $q = "DELETE FROM intezmeny WHERE rovidNev='%s'"; - return db_query($q, array('fv' => 'intezmenyTorles', 'modul' => 'naplo_base', 'values' => array($intezmeny))); - - } - - function getIntezmeny($intezmeny) { - - $q = "SELECT * FROM `intezmeny` WHERE `rovidNev`='%s'"; - $ret = db_query($q, array('fv' => 'getIntezmeny', 'modul' => 'naplo_base', 'result' => 'record', 'values' => array($intezmeny))); - - $q = "SELECT * FROM `%s`.`telephely`"; - $ret['telephely'] = db_query($q, array('fv' => 'getIntezmeny', 'modul' => 'naplo_base', 'result' => 'indexed', 'values' => array(intezmenyDbNev($intezmeny)))); - - return $ret; - - } - - function telephelyModositas($ADAT) { - - $v = array( - __INTEZMENYDBNEV, - // Telephely adatai - readVariable($ADAT['telephelyNev'], 'sql', null), - readVariable($ADAT['telephelyRovidNev'], 'sql', null), - readVariable($ADAT['alapertelmezett'], 'numeric unsigned', 0, array(0,1)), - readVariable($ADAT['cimHelyseg'], 'sql', null), - readVariable($ADAT['cimIrsz'], 'numeric', 'NULL'), - readVariable($ADAT['cimKozteruletNev'], 'sql', null), - readVariable($ADAT['cimKozteruletJelleg'], 'sql', null), - readVariable($ADAT['cimHazszam'], 'sql', null), - readVariable($_POST['telefon'], 'string'), - readVariable($_POST['fax'], 'string'), - readVariable($_POST['email'], 'string'), - readVariable($_POST['honlap'], 'string'), - readVariable($_POST['telephelyId'], 'id') - ); - - $q = "UPDATE `%s`.`telephely` - SET `telephelyNev`='%s', `telephelyRovidNev`='%s', `alapertelmezett`=%u, - `cimHelyseg`='%s', `cimIrsz`=%u, `cimKozteruletNev`='%s',`cimKozteruletJelleg`='%s', `cimHazszam`='%s', - `telefon`='%s',`fax`='%s',`email`='%s',`honlap`='%s' - WHERE `telephelyId`='%s' "; - - return db_query($q, array('fv' => 'telephelyModositas', 'modul' => 'naplo_base', 'values' => $v)); - - } - - function ujTelephely($ADAT) { - - $v = array( - __INTEZMENYDBNEV, - // Telephely adatai - readVariable($ADAT['telephelyNev'], 'sql', null), - readVariable($ADAT['telephelyRovidNev'], 'sql', null), - readVariable($ADAT['alapertelmezett'], 'numeric unsigned', 0, array(0,1)), - readVariable($ADAT['cimHelyseg'], 'sql', null), - readVariable($ADAT['cimIrsz'], 'numeric', 'NULL'), - readVariable($ADAT['cimKozteruletNev'], 'sql', null), - readVariable($ADAT['cimKozteruletJelleg'], 'sql', null), - readVariable($ADAT['cimHazszam'], 'sql', null), - readVariable($_POST['telefon'], 'string'), - readVariable($_POST['fax'], 'string'), - readVariable($_POST['email'], 'string'), - readVariable($_POST['honlap'], 'string'), - ); - - $q = "INSERT INTO `%s`.`telephely` - (`telephelyNev`,`telephelyRovidNev`,`alapertelmezett`,`cimHelyseg`,`cimIrsz`,`cimKozteruletNev`,`cimKozteruletJelleg`,`cimHazszam`, - `telefon`,`fax`,`email`,`honlap`) - VALUES ('%s', '%s', %u,'%s', %u, '%s','%s', '%s','%s','%s','%s','%s')"; - - return db_query($q, array('fv' => 'ujTelephely', 'modul' => 'naplo_base', 'values' => $v)); - - } - -?> diff --git a/mayor-orig/www/include/modules/naplo/admin/szemeszterek.php b/mayor-orig/www/include/modules/naplo/admin/szemeszterek.php deleted file mode 100644 index 6e4c2149..00000000 --- a/mayor-orig/www/include/modules/naplo/admin/szemeszterek.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php - - function idoszakTorles($idoszakId) { - $q = "DELETE FROM idoszak WHERE idoszakId=%u"; - return db_query($q, array('fv' => 'idoszakTorles', 'modul' => 'naplo_intezmeny', 'values' => array($idoszakId))); - } - - function idoszakModositas($idoszakId, $tolDt, $igDt) { - $q = "UPDATE idoszak SET tolDt='%s', igDt='%s' WHERE idoszakId=%u"; - $v = array($tolDt, $igDt, $idoszakId); - return db_query($q, array('fv' => 'idoszakModositas', 'modul' => 'naplo_intezmeny', 'values' => $v)); - } - - function ujIdoszak($tolDt, $igDt, $tipus, $tanev = '', $szemeszter = '', $idoszakTipusok = '') { - // dátum ellenőrzés - if (strtotime($tolDt) > strtotime($igDt)) { - $_SESSION['alert'][] = 'message:wrong_data:dt:'.str_replace(':', '.', $tolDt.' - '.$igDt); - return false; - } - // típus ellenőrzés - if (!is_array($idoszakTipusok)) $idoszakTipusok = getIdoszakTipusok(); - if (!in_array($tipus, $idoszakTipusok)) { - $_SESSION['alert'][] = 'message:wrong_data:idoszak.tipus:'.$tipus; - return false; - } - // tanev/szemeszter beállítás - if ($tanev == '' || $szemeszter == '') { - $q = "SELECT tanev, szemeszter FROM szemeszter WHERE kezdesDt <= '%s' AND '%s' <= zarasDt"; - $v = array($igDt, $tolDt); - $ret = db_query($q, array('fv' => 'ujIdoszak', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v)); - if (is_array($ret) && count($ret) == 1) { - $tanev = $ret[0]['tanev']; - $szemeszter = $ret[0]['szemeszter']; - } else { - return false; - } - } - // idoszak felvétele - $q = "INSERT INTO idoszak (tolDt, igDt, tipus, tanev, szemeszter) VALUES ('%s', '%s', '%s', %u, %u)"; - $v = array($tolDt, $igDt, $tipus, $tanev, $szemeszter); - return db_query($q, array('fv' => 'ujIdoszak', 'modul' => 'naplo_intezmeny', 'values' => $v)); - } - - function getIdoszakTipusok() { - return getEnumField('naplo_intezmeny', 'idoszak', 'tipus'); - } - -?> diff --git a/mayor-orig/www/include/modules/naplo/admin/szuloiAzonositok.php b/mayor-orig/www/include/modules/naplo/admin/szuloiAzonositok.php deleted file mode 100644 index 585292bf..00000000 --- a/mayor-orig/www/include/modules/naplo/admin/szuloiAzonositok.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - require_once('include/modules/naplo/share/szulo.php'); - function getOsztalyNevsorEsSzulo($osztalyId) { - - $q = "SELECT diakId, TRIM(CONCAT_WS(' ',viseltNevElotag, ViseltCsaladiNev, viseltUtoNev)) AS diakNev, viseltCsaladinev, viseltUtonev, oId, anyaId, apaId - FROM diak LEFT JOIN osztalyDiak USING (diakId) - WHERE osztalyId=%u - AND beDt<=CURDATE() AND (kiDt >= CURDATE() OR kiDt IS NULL) - AND (statusz != 'jogviszonya lezárva' OR jogviszonyVege < CURDATE()) ORDER BY diakNev, oId"; - return db_query($q, array('fv' => 'getOsztalyAzonositok', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => array($osztalyId))); - - } - -?> diff --git a/mayor-orig/www/include/modules/naplo/admin/tanevek.php b/mayor-orig/www/include/modules/naplo/admin/tanevek.php deleted file mode 100644 index cf2b32db..00000000 --- a/mayor-orig/www/include/modules/naplo/admin/tanevek.php +++ /dev/null @@ -1,390 +0,0 @@ -<?php - - function updateNaploSession($sessionID,$rovidnev='',$tanev=__TANEV) { - if ($tanev) { - $q = "UPDATE session SET intezmeny='%s',tanev=%u WHERE sessionID='%s'"; - $v = array($rovidnev,$tanev,$sessionID); - } else { - $q = "UPDATE session SET intezmeny='%s' WHERE sessionID='%s'"; - $v = array($rovidnev,$sessionID); - } - $r = db_query($q, array('fv' => 'updateNaploSession', 'modul' => 'naplo_base', 'values' => $v)); - } - - function szemeszterBejegyzes($szemeszterObj) { - - global $mayorCache; - $mayorCache->delType('szemeszter'); - - $tanev = $szemeszterObj['tanev']; - $szemeszter = $szemeszterObj['szemeszter']; - $statusz = $szemeszterObj['statusz']; - $kDt = $szemeszterObj['kezdesDt']; - $zDt = $szemeszterObj['zarasDt']; - - if ($tanev != '' && $szemeszter != '') { - $lr = db_connect('naplo_intezmeny', array('fv' => 'szemeszterBejegyzes')); - - $q = "SELECT COUNT(*) FROM szemeszter WHERE szemeszter=%u AND tanev=%u"; - $v = array($szemeszter, $tanev); - $num = db_query($q, array('fv' => 'szemeszterBejegyzes', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => $v), $lr); - if ($num == 0) { - - $q = "INSERT INTO szemeszter (tanev,szemeszter, statusz, kezdesDt, zarasDt) - VALUES (%u, %u, '%s', '%s', '%s')"; - $v = array($tanev, $szemeszter, $statusz, $kDt, $zDt); - $r = db_query($q, array('fv' => 'szemeszterBejegyzes', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr); - - } else { - $_SESSION['alert'][] = 'message:letezo_szemeszter:'."$tanev:$szemeszter"; - } - db_close($lr); - } - } - - function szemeszterTorles($szemeszterId) { - - global $mayorCache; - $mayorCache->delType('szemeszter'); - - $lr = db_connect('naplo_intezmeny', array('fv' => 'szemeszterTorles')); - if (!$lr) return false; - - $q = 'DELETE FROM szemeszter WHERE szemeszterId IN ('.implode(',', array_fill(0, count($szemeszterId), '%u')).')'; - $r = db_query($q, array('fv' => 'szemeszterTorles', 'modul' => 'naplo_intezmeny', 'values' => $szemeszterId), $lr); - - db_close($lr); - return $r; - - } - - - function activateTanev($tanev) { - setTanevStatus($tanev,'aktív'); - } - - function closeTanev($ADAT) { - - global $ZaradekIndex; - global $mayorCache; - $mayorCache->delType('szemeszter'); - - $tanev = $ADAT['tanev']; - - if (strtotime($ADAT['tanevAdat']['zarasDt']) >= time()) { - $_SESSION['alert'][] = "message:wrong_data:A tanév még nem ért véget!:$tanev tanév vége ".$ADAT['tanevAdat']['zarasDt']; - return false; - } - if (strtotime($ADAT['tanevAdat']['zarasDt']) >= strtotime($ADAT['dt'])) { - $_SESSION['alert'][] = "message:wrong_data:A tanév csak az utolsó tanítási nap utáni hatállyal zárható le!:$tanev tanév vége ".$ADAT['tanevAdat']['zarasDt'].': zárás dátuma '.$ADAT['dt']; - return false; - } - $Szemeszter = $ADAT['tanevAdat']['szemeszter']; - $vDiakok = getVegzoDiakok(array('tanev' => $tanev)); - // A függvénynek nincs statusz paramétere // $vDiakok = getVegzoDiakok(array('tanev' => $tanev, 'statusz' => array('jogviszonyban van','magántanuló','jogviszonya felfüggesztve'))); - //vegzoOsztalyok, vjlOsztalyok, vatOsztalyok - - if (in_array('vegzosJogviszonyLezaras', $ADAT['step'])) { - - // Azoknak a jogviszonyát kell csak lezárni, akik csak végzős osztálynak tagjai - és az osztályaik meg vannak jelölve (diak tábla) - $oDiakok = getDiakokByOsztalyId($ADAT['vjlOsztaly'], array('tanev' => $tanev, 'result' => '', 'statusz' => array('jogviszonyban van','magántanuló','jogviszonya felfüggesztve'))); - $vjlDiakIds = array(); - for ($i = 0; $i < count($oDiakok); $i++) { - $diakId = $oDiakok[$i]['diakId']; - if (!in_array($diakId, $vjlDiakIds)) { // Ha még nem választottuk ki (jöhet többször, mert lehet egy diák több osztályban) - if (in_array($diakId, $vDiakok)) { - $vjlDiakIds[] = $diakId; - // A jogviszony lezárás egyúttal: - // - tankörökből való kiléptetés - // - osztályokból való kiléptetés - $D = array( - 'diakId' => $diakId, 'jogviszonyValtasDt' => $ADAT['dt'], 'ujStatusz' => 'jogviszonya lezárva', 'tanev' => $tanev, - 'lezarasZaradekIndex' => $ZaradekIndex['jogviszony']['lezárás']['tanulmányait befejezte'] - ); - diakJogviszonyValtas($D); - } else { - $_SESSION['alert'][] = "info:wrong_data:Nem végzős:$diakId (jogviszonyát nem zárjuk le)"; - } - } - } -// if (count($vjlDiakIds) > 0) diakJogviszonyLezaras($vjlDiakIds, $ADAT['dt'], $olr = ''); - - } - - if (in_array('vegzosOsztalyokLezarasa', $ADAT['step'])) { - // A megjelölt végzős osztályokból kiléptetjük a diákokat (osztaly-Diak tábla) - $osztalyIds = array(); - for ($i = 0; $i < count($ADAT['vegzoOsztalyok']); $i++) $osztalyIds[] = $ADAT['vegzoOsztalyok'][$i]['osztalyId']; - osztalyLezaras($osztalyIds, $ADAT['dt']); - } - if (in_array('vegzosAzonositokTorlese', $ADAT['step'])) { - - require_once('include/modules/session/search/searchAccount.php'); - // Végzősök azonosítóinak törlése (mayor_private.accounts - lezárt jogviszonyúak) - - $q = "SELECT oId FROM diak WHERE statusz='jogviszonya lezárva' AND oId IS NOT NULL"; - $oIds = db_query($q, array('fv' => 'closeTanev/azonosítók lekérdezése', 'modul' => 'naplo_intezmeny', 'result' => 'idonly')); - foreach ($oIds as $index => $oId) { - $ret = searchAccount('studyId', $oId, array('userAccount'), 'private'); - if ($ret['count'] == 1) deleteAccount($ret[0]['userAccount'][0], 'private'); - else $_SESSION['alert'][] = "info:wrong_data:nincs diák account:oId=$oId"; - } - } - - if (in_array('vegzosSzuloAzonositokTorlese', $ADAT['step'])) { - - require_once('include/modules/session/search/searchAccount.php'); - // Végzősök szülői azonosítóinak törlése (mayor_parent.accounts - pontosabban: lezárt jogviszonyúak userAccount=NULL) - $q = "SELECT szulo.userAccount - FROM diak LEFT JOIN szulo ON szuloId IN (apaId,anyaId,gondviseloId) - WHERE szulo.userAccount IS NOT NULL GROUP BY szulo.userAccount - HAVING SUM(IF(diak.statusz IN ('jogviszonyban van','magántanuló','vendégtanuló','jogviszonya felfüggesztve'), 1, 0)) = 0 - AND SUM(IF(diak.statusz IN ('jogviszonya lezárva','felvételt nyert'),1,0)) > 0"; - - $userAccounts = db_query($q, array('fv' => 'closeTanev/azonosítók lekérdezése', 'modul' => 'naplo_intezmeny', 'result' => 'idonly')); - foreach ($userAccounts as $index => $userAccount) { - $ret = searchAccount('userAccount', $userAccount, array('userAccount'), 'parent'); - if ($ret['count'] == 1) - deleteAccount($ret[0]['userAccount'][0], 'parent'); - else - $_SESSION['alert'][] = "message:wrong_data:nincs szülő account:userAccount=$userAccount"; - - $q = "UPDATE szulo SET userAccount=NULL WHERE userAccount IN ('".implode("','", array_fill(0, count($userAccounts), '%s'))."')"; - - db_query($q, array('fv' => 'closeTanev', 'modul' => 'naplo_intezmeny', 'values' => $userAccounts)); - } - - } - - if (in_array('tanevLezaras', $ADAT['step'])) { - - // A tanév lezárása - setTanevStatus($tanev,'lezárt'); - - $Wnemszamit = defWnemszamit(); - // A tanévhez tartozó hiányzási adatok lekérdezése és rögzítése - $tanevDb = tanevDbNev(__INTEZMENY, $tanev); - foreach ($Szemeszter as $i => $szAdat) { - if ($szAdat['statusz'] == 'aktív') { // tervezett és lezárt szemeszter nem zárható le... - // replace - ha megnyitunk és újra lezárunk egy tanévet... - $q = "REPLACE INTO ".__INTEZMENYDBNEV.".hianyzasOsszesites - SELECT diakId, %u AS tanev, %u AS szemeszter, - COUNT(IF(tipus='hianyzas' AND statusz='igazolt',1,NULL)) AS igazolt, - COUNT(IF(tipus='hianyzas' AND statusz='igazolatlan',1,NULL)) AS igazolatlan, - SUM(IF(tipus='késés' AND statusz='igazolatlan',perc,NULL)) AS kesesPercOsszeg, - - COUNT(IF(tipus='hianyzas' AND statusz='igazolt' AND tankorTipus.jelleg='gyakorlat',1,NULL)) AS gyakorlatIgazolt, - COUNT(IF(tipus='hianyzas' AND statusz='igazolatlan' AND tankorTipus.jelleg='gyakorlat',1,NULL)) AS gyakorlatIgazolatlan, - SUM(IF(tipus='késés' AND statusz='igazolatlan' AND tankorTipus.jelleg='gyakorlat',perc,NULL)) AS gyakorlatKesesPercOsszeg, - - COUNT(IF(tipus='hianyzas' AND statusz='igazolt' AND tankorTipus.jelleg='elmélet',1,NULL)) AS elmeletIgazolt, - COUNT(IF(tipus='hianyzas' AND statusz='igazolatlan' AND tankorTipus.jelleg='elmélet',1,NULL)) AS elmeletIgazolatlan, - SUM(IF(tipus='késés' AND statusz='igazolatlan' AND tankorTipus.jelleg='elmélet',perc,NULL)) AS elmeletKesesPercOsszeg - - FROM `%s`.hianyzas ".$Wnemszamit['join']." - WHERE ( - tipus = 'hiányzás' - OR (tipus='késés' AND statusz='igazolatlan' AND perc IS NOT NULL) - ) AND dt<='%s' - ".$Wnemszamit['nemszamit']." - GROUP BY diakId"; - $v = array($tanev, $szAdat['szemeszter'], $tanevDb, $szAdat['zarasDt']); - $r = db_query($q, array('fv' => 'closeTanev/hianyzasOsszesites', 'modul' => 'naplo_intezmeny', 'values' => $v)); - // A hozott hiányzások hozzáadása - $q = "UPDATE ".__INTEZMENYDBNEV.".hianyzasOsszesites SET - igazolt = igazolt + ( - SELECT IFNULL(SUM(dbHianyzas),0) FROM `%s`.hianyzasHozott AS `hh` - WHERE hh.diakId = hianyzasOsszesites.diakId AND hh.statusz='igazolt' AND hh.dt<='%s' - ), - igazolatlan = igazolatlan + ( - SELECT IFNULL(SUM(dbHianyzas),0) FROM `%s`.hianyzasHozott AS `hh` - WHERE hh.diakId = hianyzasOsszesites.diakId AND hh.statusz='igazolatlan' AND hh.dt<='%s' - ) - WHERE tanev=%u AND szemeszter=%u"; - $v = array($tanevDb, $szAdat['zarasDt'], $tanevDb, $szAdat['zarasDt'], $tanev, $szAdat['szemeszter']); - $r = db_query($q, array('fv' => 'closeTanev/hianyzasOsszesites/hozott', 'modul' => 'naplo_intezmeny', 'values' => $v)); - } - } - } - - return true; - - } - - function setTanevStatus($tanev,$statusz) { - global $mayorCache; - $mayorCache->delType('szemeszter'); - - $q = "UPDATE szemeszter SET statusz='%s' WHERE tanev=%u"; - $v = array($statusz, $tanev); - return db_query($q, array('fv' => 'setTanevStatus', 'modul' => 'naplo_intezmeny', 'values' => $v)); - } - - - function refreshOsztalyNaplo($dbNev, $tanev) { - - global $mayorCache; - $mayorCache->flushdb(); - - $lr = db_connect('naplo_intezmeny', array('priv' => 'Write', 'fv' => 'refreshOsztalyNaplo')); - if (!$lr) return false; - - $q = "SELECT `osztalyId`,"._osztalyJel($tanev)." AS `osztalyJel`,"._evfolyam($tanev)." AS evfolyam,"._evfolyamJel($tanev)." AS evfolyamJel - FROM `osztaly` LEFT JOIN mayor_naplo.osztalyJelleg USING (osztalyJellegId) - WHERE kezdoTanev<=%u AND vegzoTanev>=%u - ORDER BY evfolyam, evfolyamJel, kezdoTanev, jel"; - - $v = array($tanev, $tanev); - $ret = db_query($q, array('fv' => 'refreshOsztalyNaplo', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v), $lr); - if (!is_array($ret)) return false; - foreach ($ret as $key => $sor) { - $q = "REPLACE INTO `%s`.osztalyNaplo (osztalyId,osztalyJel,evfolyam,evfolyamJel) VALUES (%u,'%s',%u,'%s')"; - $v = array($dbNev, $sor['osztalyId'], $sor['osztalyJel'], $sor['evfolyam'], $sor['evfolyamJel']); - db_query($q, array('fv' => 'refreshOsztalyNaplo', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr); - } - - db_close($lr); - return true; - - - } - - function szemeszterModositasOrig($ADAT) { - - - for ($i = 0; $i < count($ADAT); $i++) { - - $kezdesDt = $ADAT[$i]['kezdesDt']; $zarasDt = $ADAT[$i]['zarasDt']; - $tanev = $ADAT[$i]['tanev']; $szemeszter = $ADAT[$i]['szemeszter']; - - $q = "SELECT zarasDt FROM szemeszter WHERE tanev=%u AND szemeszter=%u"; - $v = array($tanev, $szemeszter); - $zDt = db_query($q, array('fv' => 'szemeszterModositas', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result'=>'value')); - - $q = "SELECT count(*) FROM zaroJegy WHERE hivatalosDt='%s'"; - $v = array($zDt); - $db = db_query($q, array('fv' => 'szemeszterModositas', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result'=>'value')); - - if ($db==0) { - - $q = "UPDATE szemeszter SET kezdesDt='%s',zarasDt='%s' WHERE tanev=%u AND szemeszter=%u"; - $v = array($kezdesDt, $zarasDt, $tanev, $szemeszter); - db_query($q, array('fv' => 'szemeszterModositas', 'modul' => 'naplo_intezmeny', 'values' => $v)); - - } else { - $_SESSION['alert'][] = 'error:wrong_data:van már a '.$zDt.'-hez rögzített zárójegy!'; - return false; - } - } - - } - - /* - * A szemeszter dátumhatárainak módosítása több dolgot is érint. - * 1. A zárójegyek hivatalos dátuma a szemszter záró dátuma - kivéve a vizsgajegyket. - * - megoldás: módosítsuk a zárójegy dátumát - * 2. A tanév nap táblája a tanév kezdetétől a végéig tartalmaz napokat. - * - vegyük fel, illetve töröljük a hiányzó napokat (??) - * 3. Elképzelhető, hogy a már beírt órákat, és ezen keresztül hiányzásokat és jegyeket is érinti a módosítás (ora tábla) - * - Ha órák törlésével járna, akkor egyszerűbb nem megengedni a módosítást. Ha kell, akkor előre törölje az órákat külön! - */ - function szemeszterModositas($ADAT) { - - global $mayorCache; - $mayorCache->flushdb(); - - $success = true; - for ($i = 0; $i < count($ADAT); $i++) { - - unset($tolDt); unset($igDt); - $kezdesDt = $ADAT[$i]['kezdesDt']; $zarasDt = $ADAT[$i]['zarasDt']; - $tanev = $ADAT[$i]['tanev']; $szemeszter = $ADAT[$i]['szemeszter']; - $tanevDb = tanevDbNev(__INTEZMENY, $tanev); - - $lr = db_connect('naplo_intezmeny', array('fv' => 'szemeszterModositas')); - db_start_trans($lr); - - // a korábbi szemeszter zárás dátumának és státuszának lekérdezése - $q = "SELECT statusz, kezdesDt, zarasDt FROM szemeszter WHERE tanev=%u AND szemeszter=%u"; - $v = array($tanev, $szemeszter); - $ret = db_query($q, array('fv' => 'szemeszterModositas/select', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result'=>'record')); - $kDt = $ret['kezdesDt']; $zDt = $ret['zarasDt']; - if ($ret['statusz'] == 'lezárt') { - // lezárt szemeszter adatait ne változtassuk - $_SESSION['alert'][] = 'message:wrong_data:lezárt szemeszter! (szemeszter='.$tanev.'/'.$szemeszter.')'; - db_rollback($lr); db_close($lr); $success = false; continue; - } - if (($szemeszter == 1 && $kezdesDt != $kDt) || ($szemeszter == 2 && $zarasDt != $zDt)) { - // tanév kezdő vagy záró dátumának módosítása - if ($ret['statusz'] == 'aktív') { - // A tanév adatbázisát is érintik a változások - if ($szemeszter == 1 && $kezdesDt > $kDt) { - // Ha az év elejéből el kellene venni napokat, akkor ellenőrizzük, hogy vannak-e órák ezekre a napokra már beírva - $q = "SELECT COUNT(*) FROM `$tanevDb`.`ora` WHERE `dt` < '%s'"; - $v = array($kezdesDt); - $db = db_query($q, array('fv' => 'szemeszterModositas/ora - kezdés', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result' => 'value'), $lr); - if ($db === "0") { - // Ha nincs betöltött óra, akkor módosíthatók a nap tábla megfelelő rekordjai; munkanapok --> szorgalmi időszakon kívüli munkanap - $q = "UPDATE `$tanevDb`.`nap` SET tipus='szorgalmi időszakon kívüli munkanap', orarendiHet=0 - WHERE `dt` < '%s' AND tipus IN ('tanítási nap','speciális tanítási nap','tanítás nélküli munkanap')"; - $v = array($kezdesDt); - $db = db_query($q, array('fv' => 'szemeszterModositas/delete nap', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result' => 'value'), $lr); - } else { - // Ha van, akkor hibát üzenünk és nem hajtjuk végre a módosítást - $_SESSION['alert'][] = 'message:insufficient_access:szemeszterMododitas/tanév később kezdés:A dátumváltoztatás már betöltött órákat érintene!'; - db_rollback($lr, 'szemeszterModositas/van betöltött óra!'); db_close($lr); $success = false; continue; - } - } elseif ($szemeszter == 2 && $zarasDt < $zDt) { - // Ha az év végéből kell elvenni napokat, akkor ellenőrizzük, hogy vannak-e _lekötött_ órák ezekre a napokra már beírva - $q = "SELECT COUNT(*) FROM `$tanevDb`.`ora` WHERE `dt` > '%s' AND munkaido='lekötött'"; - $v = array($zarasDt); - $db = db_query($q, array('fv' => 'szemeszterModositas/ora - zárás', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result' => 'value'), $lr); - if ($db === "0") { - // Ha nincs betöltött óra, akkor módosíthatók a nap tábla megfelelő rekordjai; munkanapok --> szorgalmi időszakon kívüli munkanap - $q = "UPDATE `$tanevDb`.`nap` SET tipus='szorgalmi időszakon kívüli munkanap', orarendiHet=0 - WHERE `dt` > '%s' AND tipus IN ('tanítási nap','speciális tanítási nap','tanítás nélküli munkanap')"; - $v = array($zarasDt); - $db = db_query($q, array('fv' => 'szemeszterModositas/delete nap', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result' => 'value'), $lr); - } else { - // Ha van, akkor hibát üzenünk és nem hajtjuk végre a módosítást - $_SESSION['alert'][] = 'message:insufficient_access:szemeszterMododitas/tanév rövidítés:A dátumváltoztatás már betöltött órákat érintene!'; - db_rollback($lr, 'szemeszterModositas/van betöltött óra!'); db_close($lr); $success = false; continue; - } - } elseif ($szemeszter == 1 && $kezdesDt < $kDt) { - // éves munkaterv (nap tábla) bővítése - $tolDt = $kezdesDt; $igDt = date('Y-m-d', strtotime('-1 day', strtotime($kDt))); - } elseif ($szemeszter == 2 && $zarasDt > $zDt) { - // éves munkaterv (nap tábla) bővítése - $tolDt = date('Y-m-d', strtotime('+1 day', strtotime($zDt))); $igDt = $zarasDt; - } - if (isset($tolDt) && isset($igDt)) { - $Hetek = array(1); - $r = napokHozzaadasa($tanev, $tolDt, $igDt, $ADAT[$i], $lr); - unset($tolDt); unset($igDt); - if (!$r) { db_rollback($lr, 'szemeszterModositas/nap felvétel'); db_close($lr); $success = false; continue; } - /*orarendiHetekHozzarendelese($tolDt, $igDt, $Hetek, $lr);*/ - } - } // aktív tanév - } // tanév hossza változik - // Az érintett, vizsgához nem kapcsolódó zárójegyek hivatalos dátumának módosítása - $q = "UPDATE zaroJegy LEFT JOIN vizsga USING (zaroJegyId) SET hivatalosDt='%s' WHERE hivatalosDt='%s' AND vizsgaId IS NULL"; - $v = array($zarasDt, $zDt); - $r = db_query($q, array('fv' => 'szemeszterModositas', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result'=>'value')); - if ($r === false) { db_rollback($lr, 'szemeszterModositas/zarójegyek'); db_close($lr); $success = false; continue; } - // A szemeszter kezdés és zárás dátumának módosítása - $q = "UPDATE szemeszter SET kezdesDt='%s',zarasDt='%s' WHERE tanev=%u AND szemeszter=%u"; - $v = array($kezdesDt, $zarasDt, $tanev, $szemeszter); - $r = db_query($q, array('fv' => 'szemeszterModositas', 'modul' => 'naplo_intezmeny', 'values' => $v)); - if ($r === false) { db_rollback($lr, 'szemeszterModositas/dátum módosítás'); db_close($lr); $success = false; continue; } - - db_commit($lr); - db_close($lr); - - $_SESSION['alert'][] = 'info:success:tanev='.$tanev.', szemeszter='.$szemeszter; - - } - return $success; - - } - -?>
\ No newline at end of file diff --git a/mayor-orig/www/include/modules/naplo/admin/tankorok.php b/mayor-orig/www/include/modules/naplo/admin/tankorok.php deleted file mode 100644 index 23887dbd..00000000 --- a/mayor-orig/www/include/modules/naplo/admin/tankorok.php +++ /dev/null @@ -1,133 +0,0 @@ -<?php - - function updateTankor($file, $MEZO_LISTA, $KULCS_MEZOK, $mezo_elvalaszto = ' ', $rovatfej = false) { - - - if (!file_exists($file)) { - $_SESSION['alert'][] = 'message:file_not_found:'.$file; - return false; - } - - if (!is_array($MEZO_LISTA)) { - $_SESSION['alert'][] = 'message:wrong_parameter:MEZO_LISTA'; - return false; - } - - if (!is_array($KULCS_MEZOK)) { - $_SESSION['alert'][] = 'message:wrong_parameter:KULCS_MEZOK'; - return false; - } - - // A frissítendő attribútumok listája - $attrList = array_values(array_filter($MEZO_LISTA)); - - $fp = fopen($file,'r'); - if (!$fp) { - $_SESSION['alert'][] = 'message:file_open_error:'.$file; - return false; - } - - $lr = db_connect('naplo_intezmeny', array('fv' => 'updateTankor')); - if (!$lr) { - fclose($fp); - return false; - } - - // Az első sor kihagyása - if ($rovatfej) $sor = fgets($fp,1024); - - // TárgyId-k átváltása - $keyNev = array_search('targyNev',$MEZO_LISTA); - if (!$keyNev && $keyNev !== 0) $keyNev = false; - if ($keyNev) { - $keyId = array_search('targyId',$MEZO_LISTA); - if (!$keyId && $keyId !== 0) { // Ha nincs targyId, akkor felvezzük a mező listába - $keyId = count($MEZO_LISTA); - $MEZO_LISTA[] = 'targyId'; - } - $MEZO_LISTA[$keyNev] = ''; // A targyNev nem játszik szerepet többet, csak a targyId - $targyak = array(); // $targyNev --> $targyId átalakítás tárolása - $attrList = array_values(array_filter($MEZO_LISTA)); // az attrList újragenerálása (targyNev helyett targyId) - if (in_array($keyNev,$KULCS_MEZOK)) { // Ha a targyNev kulcs lenne, akkor legyen helyette a tagyId a kulcs (ha már eleve benne volt a targyId, akkor most kétszer lesz benne - nem baj!) - $k = array_search($keyNev,$KULCS_MEZOK); - $KULCS_MEZOK[$k] = $keyId; - } - } - - while ($sor = fgets($fp,1024)) { - - $adatSor = explode($mezo_elvalaszto,chop($sor)); - $update = $hianyzoTargyId = false; - - // targyId megállapítása a targyNev alapján - if ( - $keyNev !== false // Ha van targyNev mező - && $adatSor[$keyNev] != '' // és nem üres - && $adatSor[$keyId] == '' // de nincs megadva targyId - - ) { - if (!isset($targyak[$adatSor[$keyNev]])) { // Ha még nem kérdeztük le a targyId-t - $q = "SELECT targyId FROM targy WHERE targyNev='%s'"; - $v = array($adatSor[$keyNev]); - $targyak[$adatSor[$keyNev]] = db_query($q, array( - 'fv' => 'updateTankor', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => $v - ), $lr); - if (!$targyak[$adatSor[$keyNev]]) { - $_SESSION['alert'][] = 'message:wrong_data:tárgyNév:'.$adatSor[$keyNev].':'.$num.':'.$sor; - $hianyzoTargyId = true; - } - } - $adatSor[$keyId] = $targyak[$adatSor[$keyNev]]; - } - // Innentől ha lehetett, akkor a targyNev le lett cserélve targyId-re - minden megy a sima frissítés szerint - - // keresési feltétel összerakása - $where = ''; - for ($i=0; $i<count($KULCS_MEZOK); $i++) { - if ($adatSor[$KULCS_MEZOK[$i]] != '') { - $where .= ' AND '.$MEZO_LISTA[$KULCS_MEZOK[$i]]."='".$adatSor[$KULCS_MEZOK[$i]]."' "; - } - } - if ($where != '') { - $where = substr($where,5); - $q = 'SELECT COUNT(*) FROM tankor WHERE '.$where; - $num = db_query($q, array('fv' => 'updateTankor', 'modul' => 'naplo_intezmeny', 'result' => 'value'), $lr); - $update = ($num > 0); - } - if ($update) { - $UPDATE = array(); - for ($i = 0; $i < count($MEZO_LISTA); $i++) { - if ( - $MEZO_LISTA[$i] != '' - and $adatSor[$i] != '' - and !in_array($i,$KULCS_MEZOK) - ) { - $UPDATE[] = $MEZO_LISTA[$i]."='".$adatSor[$i]."'"; - } - } - if (count($UPDATE) > 0) { - $q = 'UPDATE tankor SET '.implode(',',$UPDATE).' WHERE '.$where; - $r = db_query($q, array('fv' => 'updateTankor', 'modul' => 'naplo_intezmeny'), $lr); - } - } elseif (!$hianyzoTargyId) { - $value = array(); - for ($i=0; $i<count($MEZO_LISTA); $i++) { - if ($MEZO_LISTA[$i] != '') $value[] .= $adatSor[$i]; - } - $VALUES[] = "('".implode("','",$value)."')"; - } - - } // while - if (count($VALUES) > 0) { - $q = 'INSERT INTO tankor ('.implode(",",$attrList).') VALUES '.implode(",\n",$VALUES); - $r = db_query($q, array('fv' => 'updateTankor', 'modul' => 'naplo_intezmeny'), $lr); - } - - db_close($lr); - - fclose($fp); - - } - - -?> |