aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/www/include/modules/naplo/haladasi
diff options
context:
space:
mode:
Diffstat (limited to 'mayor-orig/www/include/modules/naplo/haladasi')
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/elmaradas.php27
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/elszamolas.php44
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/haladasi.php155
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/helyettesites.php945
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/oralatogatas.php30
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/osszevonas.php38
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/pluszora.php55
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/specialis.php167
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/stat.php103
-rw-r--r--mayor-orig/www/include/modules/naplo/haladasi/teremModositas.php30
10 files changed, 0 insertions, 1594 deletions
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/elmaradas.php b/mayor-orig/www/include/modules/naplo/haladasi/elmaradas.php
deleted file mode 100644
index e6db4268..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/elmaradas.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
- function getHaladasiElmaradas() {
-
- $ret = array();
- $elozoTanitasiNapDt = getTanitasiNapVissza(1);
-
- // Még beírható, de már elmúlt órák száma
- $q = "SELECT ki, COUNT(*) AS db FROM ".__TANEVDBNEV.".ora WHERE tipus NOT LIKE 'elmarad%%'
- AND (leiras = '' OR leiras IS NULL)
- AND dt >= CAST('"._HALADASI_HATARIDO."' AS DATE)
- AND dt <= CAST('%s' AS DATE) GROUP BY ki";
- $ret['beirando'] = db_query($q, array(
- 'fv' => 'getHaladasiElmaradas/#1', 'modul' => 'naplo', 'result' => 'assoc', 'keyfield' => 'ki', 'values' => array($elozoTanitasiNapDt)
- ));
- // Lezárt hiányzások száma
- $q = "SELECT ki, COUNT(*) AS db FROM ".__TANEVDBNEV.".ora WHERE tipus NOT LIKE 'elmarad%'
- AND (leiras = '' OR leiras IS NULL)
- AND dt < CAST('"._HALADASI_HATARIDO."' AS DATE)
- GROUP BY ki
- ORDER BY db DESC";
- $ret['lezart'] = db_query($q, array('fv' => 'getHaladasiElmaradas/#2', 'modul' => 'naplo', 'result' => 'indexed'));
-
- return $ret;
- }
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/elszamolas.php b/mayor-orig/www/include/modules/naplo/haladasi/elszamolas.php
deleted file mode 100644
index 5490624a..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/elszamolas.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
- function getElszamolas($tolDt, $igDt, $tanarId = '') {
-
- if (isset($tanarId) && intval($tanarId)!='') {
- $w = " AND ki=%u";
- $v2 = $tanarId;
- } else $w='';
-
- $A = array();
- // Megtartott órák száma tanáronként, típusonként
- $q = "SELECT ki,tipus,eredet,munkaido,COUNT(*) AS db FROM
- ( SELECT DISTINCT ki,munkaido,tipus,dt,ora,eredet FROM
- ora WHERE leiras != '' AND tipus NOT LIKE 'elmarad%%' AND '%s'<=dt AND dt<='%s' $w ) AS x
- GROUP BY ki, munkaido, tipus,eredet";
- $v = mayor_array_join(array($tolDt, $igDt),$v2);
- $ret = db_query($q, array('fv' => 'getElszamolas', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v));
- for ($i = 0; $i < count($ret); $i++) {
- $A[ $ret[$i]['ki'] ][ $ret[$i]['tipus'] ] += intval($ret[$i]['db']);
- $A['detailed'][ $ret[$i]['ki'] ][ $ret[$i]['tipus'] ][ $ret[$i]['munkaido'] ] = intval($ret[$i]['db']);
- $A['detailed_ki_tipus_munkaido_eredet'][ $ret[$i]['ki'] ][ $ret[$i]['tipus'] ][ $ret[$i]['munkaido'] ][ $ret[$i]['eredet'] ] = intval($ret[$i]['db']);
- }
- // Tanárok heti óraszáma
- $q = "SELECT tanarId,
- COUNT(*)/(
- SELECT COUNT(DISTINCT het) AS db FROM orarendiOra WHERE tolDt<=CURDATE() AND CURDATE()<=igDt
- ) AS db
- FROM orarendiOra WHERE tolDt <= CURDATE() AND CURDATE() <= igDt
- GROUP BY tanarId";
- $ret = db_query($q, array('fv' => 'getElszamolas', 'modul' => 'naplo', 'result'=> 'indexed'));
- for ($i = 0; $i < count($ret); $i++) $A[ $ret[$i]['tanarId'] ]['oraszam'] = $ret[$i]['db'];
-
- // Napok száma az adott időszak alatt - típusonként
- $q = "SELECT munkatervId,tipus,COUNT(*) AS db FROM nap WHERE '%s'<=dt AND dt<='%s' GROUP BY munkatervId,tipus";
- $ret = db_query($q, array(
- 'fv' => 'getElszamolas', 'modul' => 'naplo', 'result' => 'indexed', 'keyfield' => 'tipus', 'values' => mayor_array_join(array($tolDt, $igDt),$v)
- ));
- foreach ($ret as $tmp) { $A['napok'][ $tmp['munkatervId'] ][ $tmp['tipus'] ] = $tmp['db']; }
- $A['munkaterv'] = getMunkatervek(array('result'=>'assoc', 'keyfield'=>'munkatervId'));
-
- return $A;
- }
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/haladasi.php b/mayor-orig/www/include/modules/naplo/haladasi/haladasi.php
deleted file mode 100644
index 391ef7c8..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/haladasi.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
- require_once ( 'include/modules/naplo/share/oraModifier.php' );
-
- function getOraszamByOraId($oraId, $olr='') {
- $lr = ($olr=='') ? db_connect('naplo', array('fv' => 'getOraszamByOraId')) : $olr;
-
- $q = "SELECT tankorId, dt, ora FROM ora WHERE oraId=%u";
- $r = db_query($q, array('fv' => 'getOraszamByOraId', 'modul' => 'naplo', 'result' => 'record', 'values' => array($oraId)), $lr);
-
- $tankorId = $r['tankorId'];
- $dt = $r['dt'];
- $ora = $r['ora'];
-
- if (defined('__ORASZAMOT_NOVELO_TIPUSOK')) {
- $oraszamNoveloTipus = explode(',', __ORASZAMOT_NOVELO_TIPUSOK);
- } else {
- if (!in_array('info:missing_constant:__ORASZAMOT_NOVELO_TIPUSOK',$_SESSION['alert'])) $_SESSION['alert'][] = 'info:missing_constant:__ORASZAMOT_NOVELO_TIPUSOK';
- $oraszamNoveloTipus = array('normál', 'normál máskor', 'helyettesítés', 'összevonás');
- }
- $q = "SELECT count(oraId) FROM ora
- WHERE tankorId=%u
- AND tipus IN ('".implode("','", array_fill(0, count($oraszamNoveloTipus), '%s'))."')
- AND (dt<'%s' OR (dt='%s' AND ora<=%u))";
- $v = mayor_array_join(array($tankorId), $oraszamNoveloTipus, array($dt, $dt, $ora));
- $oraszam = db_query($q, array('fv' => 'getOraszamByOraId', 'modul' => 'naplo', 'result' => 'value', 'values' => $v), $lr);
-
- if ($olr == '') db_close($lr);
- return $oraszam;
- }
-
- function getHaladasi($Tankorok, $munkatervIds, $orderBy, $tanarId = '', $csakUres=false, $teremId=false) {
-
- $ret = array();
-
- // Munkatervidk
- if (!is_array($munkatervIds) || count($munkatervIds)==0) $munkatervIds = array(1); // a default
-
- // Az érintett tankörök id-inek listája
- $tankorIds = $tankorAdat = array();
- if (is_array($Tankorok) && ($count = count($Tankorok)) > 0) {
- $tankorFeltetel = 'tankorId IN (' . $Tankorok[0]['tankorId'];
- $tankorIds[] = $Tankorok[0]['tankorId'];
- $Tankorok[0]['tanar'] = getTankorTanaraiByInterval($Tankorok[0]['tankorId'], array('tanev' => __TANEV, 'tolDt' => _SHOW_DAYS_FROM, 'igDt' => _SHOW_DAYS_TO, 'result' => 'nevsor'));
- $tankorAdat[$Tankorok[0]['tankorId']] = $Tankorok[0];
- for ($i = 1; $i < $count; $i++) {
- $tankorFeltetel .= ', '.$Tankorok[$i]['tankorId'];
- $tankorIds[] = $Tankorok[$i]['tankorId'];
- $Tankorok[$i]['tanar'] = getTankorTanaraiByInterval($Tankorok[$i]['tankorId'], array('tanev' => __TANEV, 'tolDt' => _SHOW_DAYS_FROM, 'igDt' => _SHOW_DAYS_TO, 'result' => 'nevsor'));
- $tankorAdat[$Tankorok[$i]['tankorId']] = $Tankorok[$i];
- }
- $tankorFeltetel .= ')';
- }
- elseif ($tanarId=='') return false;
- // else return false; // Ha egy kollégának nincs rendszeres órája, tanköre, de helyettesít, akkor meg kell jelenjenek ezek az órái... (Bug #53)
-
- if ($teremId!==false && is_numeric($teremId)) {
- $teremFeltetel = ' and teremId = '.$teremId;
- } else
- $teremFeltetel = '';
-
- // Ha tanarId is van, akkor az általa helyettesített órák is kellenek
- if ($tanarId != '') {
- if (isset($tankorFeltetel)) $kiFeltetel = 'OR ki = '.$tanarId;
- else $kiFeltetel = 'ki = '.$tanarId;
- }
- if (isset($tankorFeltetel) || isset($kiFeltetel)) $feltetel = "AND ($tankorFeltetel $kiFeltetel)";
- if (isset($csakUres) && $csakUres==true) $feltetel .= " AND (leiras='' OR leiras IS NULL) ";
-
- // Csatlakozás az adatbázishoz
- $lr = db_connect('naplo', array('fv' => 'getHaladasi'));
- $q = "SELECT oraId, dt, ora, ki, kit, tankorId, teremId, ora.leiras, tipus, eredet, csoportId, feladatTipusId,
- getOraTolTime(oraId) AS tolTime,
- getOraIgTime(oraId) AS igTime
- FROM ora
- LEFT JOIN tankorCsoport USING (tankorId)
- LEFT JOIN ".__INTEZMENYDBNEV.".feladatTipus USING (feladatTipusId)
- WHERE dt>='%s' AND dt<='%s' AND tipus NOT LIKE 'elmarad%%'
- $feltetel $teremFeltetel
- ORDER BY ".implode(',',$orderBy);
- $v = array(_SHOW_DAYS_FROM, _SHOW_DAYS_TO);
- $r = db_query($q, array('fv' => 'getHaladasi', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v), $lr);
-
- if ($r===false) {
- db_close($lr);
- return false;
- }
- foreach ($r as $i => $sor) {
- // ha nincs a tankorok kozott a tankorId, akkor le kell kérdezni az adatait
- if (!in_array($sor['tankorId'],$tankorIds)) {
- $T = getTankorById($sor['tankorId'], __TANEV);
- $tankorIds[] = $sor['tankorId'];
- $tankorAdat[$sor['tankorId']] = $T[0];
- $Tankorok[$i]['tanar'] = getTankorTanaraiByInterval($sor['tankorId'], array('tanev' => __TANEV, 'tolDt' => _SHOW_DAYS_FROM, 'igDt' => _SHOW_DAYS_TO, 'result' => 'nevsor'));
- }
- $sor['kiCn'] = getTanarNevById($sor['ki'], $lr);
- $sor['tankorNev'] = $tankorAdat[$sor['tankorId']]['tankorNev'];
- $sor['tankorTipusId'] = $tankorAdat[$sor['tankorId']]['tankorTipusId'];
- $sor['oraszam'] = getOraszamByOraId($sor['oraId'], $lr);
- $sor['tanar'] = $tankorAdat[$sor['tankorId']]['tanar'];
- // Az óracsoportokat is!!!
- if (isset($sor['csoportId']) && $tanarId != '') { // Csak tanár nézet esetén lehet váltani!!!
- if (!is_array($tankorAdat[$sor['tankorId']]['csoport'])) {
- // Csoport adatok lekérdezése
- // Ha minden oldalon le akarjuk kérdezi a csoportokat, akkor valahogy így...
- // if ($sor['kit'] == '') $tanarId = $sor['ki'];
- // else $tanarId = $sor['kit'];
- $q = "SELECT DISTINCT tankorCsoport.tankorId AS tankorId, tankorNev
- FROM tankorCsoport
- LEFT JOIN ".__INTEZMENYDBNEV.".tankorSzemeszter USING (tankorId)
- LEFT JOIN ".__INTEZMENYDBNEV.".tankorTanar USING (tankorId)
- WHERE tanarId=%u AND csoportId=%u
- AND beDt<='"._SHOW_DAYS_TO."' AND (kiDt IS NULL OR '"._SHOW_DAYS_FROM."'<=kiDt)
- AND tanev=" . __TANEV;
- $v = array($tanarId, $sor['csoportId']);
- $r_cs = db_query($q, array('fv' => 'getHaladasi/csoport', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v), $lr);
- if ($r_cs===false) { //!!!! nem jó simán a tagadás!
- db_close($lr);
- return false;
- }
- foreach ($r_cs as $key => $val) {
- $tankorAdat[$sor['tankorId']]['csoport'][] = $val;
- }
- }
- $sor['csoport'] = $tankorAdat[$sor['tankorId']]['csoport'];
- }
- $ret[$sor['dt']][] = $sor;
- }
- // Nap információk lekérdezése
- $q = "SELECT dt,tipus,megjegyzes,orarendiHet FROM nap
- WHERE dt>='%s' AND dt<='%s' AND munkatervId IN (".implode(',', $munkatervIds).")";
- $v = array(_SHOW_DAYS_FROM, _SHOW_DAYS_TO);
- $ret['napok'] = db_query($q, array('fv' => 'getHaladasi', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'dt', 'values' => $v), $lr);
- if (!$ret['napok']) {
- db_close($lr);
- return false;
- }
-
- // dolgozatok lekérdezése;
- $ret['dolgozatok'] = getTankorDolgozatok($tankorIds,true,_SHOW_DAYS_FROM,_SHOW_DAYS_TO, $lr);
- db_close($lr);
- return $ret;
- }
-
- function haladasiTeremModositas($oraId,$teremId,$lr) {
- if (!is_numeric($oraId) || !is_numeric($teremId)) return false;
- $lr = $olr=='' ? db_connect('naplo', array('fv' => 'haladasiTeremModositas')):$olr;
- $q = "UPDATE ora SET teremId=%u WHERE oraId=%u";
- $v = array($teremId,$oraId);
- $RESULT = db_query($q, array( 'fv' => 'haladasiTeremModositas','modul' => 'naplo', 'values' => $v), $lr);
- if ($olr == '') db_close($lr);
- return $RESULT;
- }
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/helyettesites.php b/mayor-orig/www/include/modules/naplo/haladasi/helyettesites.php
deleted file mode 100644
index 2fbbc4ac..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/helyettesites.php
+++ /dev/null
@@ -1,945 +0,0 @@
-<?php
-
- // Valójában nem feltétlen hiányzók, hanem azok akiknek módosult az órarendje...
- function getHianyzok($dt = '', $olr = null) {
-
- $dt = readVariable($dt, 'datetime', date('Y-m-d'));
- $hianyzok = array();
-
- $q = "SELECT kit, ki, eredet FROM ora
- WHERE dt='%s' AND ((kit IS NOT NULL AND kit != '') OR (eredet='plusz' AND feladatTipusId IS NULL))
- ORDER BY kit, ora";
- $result = db_query($q, array('fv' => 'getHianyzok', 'modul' => 'naplo', 'result' => 'indexed', 'values' => array($dt)), $olr);
-
- foreach ($result as $key => $sor) {
- // Ha a kit nem üres, akkor az az eredeti tanár, különben a ki (plusz óránál lehet)
- if ($sor['kit'] != '') {
- if (!in_array($sor['kit'], $hianyzok)) $hianyzok[] = $sor['kit'];
- } elseif ($sor['ki'] != '' && !in_array($sor['ki'], $hianyzok)) {
- $hianyzok[] = $sor['ki'];
- }
- }
-
- return $hianyzok;
-
- }
-
-
- function getHianyzoOrak($dt = '', $olr = '') {
-
-
- if($olr == '') $lr = db_connect('naplo');
- else $lr = $olr;
-
- // Kik érintettek az aktuális helyettesítésekben
- $ORAK['helyettesites']['tanarIds'] = getHianyzok($dt, $lr);
-
- // Az érintettek óráinak adatai, kivéve a kötött munkaidő plusz óráit, hiszen azok nem számítanak. Nem számítanak?
- if (count($ORAK['helyettesites']['tanarIds']) > 0) {
- $q = "SELECT DISTINCT
- oraId, dt, ora, ki, kit, tankorId, teremId, leiras, tipus, eredet, tankorNev, targyId,feladatTipusId,munkaido
- FROM ora
- LEFT JOIN ".__INTEZMENYDBNEV.".tankorSzemeszter USING (tankorId)
- LEFT JOIN ".__INTEZMENYDBNEV.".tankor USING (tankorId)
- LEFT JOIN ".__INTEZMENYDBNEV.".feladatTipus USING (feladatTipusId)
- WHERE (
- ki IN (".implode(',', array_fill(0, count($ORAK['helyettesites']['tanarIds']),'%u')).") OR
- kit IN (".implode(',', array_fill(0, count($ORAK['helyettesites']['tanarIds']), '%u')).")
- )
- AND dt='%s'
- AND (tanev=".__TANEV." OR feladatTipusId IS NOT NULL)
- ORDER BY ora";
- $v = mayor_array_join($ORAK['helyettesites']['tanarIds'], $ORAK['helyettesites']['tanarIds'], array($dt));
- $result = db_query($q, array('fv' => 'getHianyzoOrak', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v), $lr);
- if (!$result) {
- if($olr == '') $lr = db_close($lr);
- return false;
- }
- foreach ($result as $key => $sor) {
- if ($sor['kit'] != '') {
- $ORAK['helyettesites'][$sor['kit']]['orak'][] = $sor;
- }
- if (in_array($sor['ki'], $ORAK['helyettesites']['tanarIds'])) {
- $ORAK['helyettesites'][$sor['ki']]['orak'][] = $sor;
- }
- }
- }
-
- // Tanárnevek lekérése
- $TANAR_NEVSOR = getTanarok(array('tanev' => __TANEV,'beDt'=>$dt,'kiDt'=>$dt), $lr);
- for ($i = 0; $i < count($TANAR_NEVSOR); $i++) {
- $ORAK['tanarok']['tanarIds'][] = $TANAR_NEVSOR[$i]['tanarId'];
- $ORAK['tanarok'][$TANAR_NEVSOR[$i]['tanarId']] = array('tanarNev' => $TANAR_NEVSOR[$i]['tanarNev']);
- }
- // Az adott napon ki melyik órákban tanít, első, utolsó, db
- $q = "SELECT ki, ora FROM ora
- WHERE dt = '%s' AND ki != ''
- ORDER BY ki, ora";
- $r = db_query($q, array('fv' => 'getHianyzoOrak', 'modul' => 'naplo', 'result' => 'indexed', 'values' => array($dt)), $lr);
- foreach ($r as $key => $val) {
- $ki = $val['ki']; $ora = $val['ora'];
- if (!is_array($ORAK['tanarok']['foglaltak'][$ora]) // gyűjtjük, hogy kik tanítanak az adott órában
- || !in_array($ki, $ORAK['tanarok']['foglaltak'][$ora])
- ) $ORAK['tanarok']['foglaltak'][$ora][] = $ki;
- $ORAK['tanarok'][$ki]['orak'][$ora] = true;
- $ORAK['tanarok'][$ki]['db']++;
- if (
- !isset($ORAK['tanarok'][$ki]['elso ora']) or
- $ORAK['tanarok'][$ki]['elso ora'] > $ora
- ) $ORAK['tanarok'][$ki]['elso ora'] = $ora;
- if ($ORAK['tanarok'][$ki]['utolso ora'] < $ora) $ORAK['tanarok'][$ki]['utolso ora'] = $ora;
- }
-
- // Milyen tárgyat és mely osztályokban tanít az adott tanévben! (TANAR_NEVSOR tömbből válogassuk hozzá a tanáridket)
- $q = "SELECT tanarId,targyId FROM ".__INTEZMENYDBNEV.".mkTanar
- LEFT JOIN ".__INTEZMENYDBNEV.".targy USING (mkId)
- WHERE mkTanar.tanarId IN (".implode(',', array_fill(0, count($ORAK['tanarok']['tanarIds']), '%u')).")";
- $r = db_query($q, array('fv' => 'getHianyzoOrak', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $ORAK['tanarok']['tanarIds']), $lr);
- if (count($r)>0) foreach ($r as $key => $val) {
- $tanarId = $val['tanarId']; $targyId = $val['targyId'];
- $ORAK['tanarok'][$tanarId]['targyak'][$targyId] = true;
- }
- // Egészítsük ki a képesítése szerint is! (2011, 2015)
- $q = "SELECT tanarId,targyId FROM ".__INTEZMENYDBNEV.".tanarKepesites LEFT JOIN ".__INTEZMENYDBNEV.".kepesitesTargy USING (kepesitesId) ".
- "WHERE tanarId IN (".implode(',', array_fill(0, count($ORAK['tanarok']['tanarIds']), '%u')).")";
- $r = db_query($q, array('fv' => 'getHianyzoOrak', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $ORAK['tanarok']['tanarIds']), $lr);
- if (count($r)>0) foreach ($r as $key => $val) {
- $tanarId = $val['tanarId'];
- $targyId = $val['targyId'];
- $ORAK['tanarok'][$tanarId]['targyak'][$targyId] = true;
- }
-
- // Az összevonó/foglalt tanárok
- for ($i = 0; $i < count($ORAK['helyettesites']['tanarIds']);$i++) {
-
- $tanarId = $ORAK['helyettesites']['tanarIds'][$i];
- $tanarOrak = $ORAK['helyettesites'][$tanarId]['orak'];
-
- for ($j = 0; $j < count($tanarOrak); $j++) {
-
- $ora = $tanarOrak[$j]['ora'];
- $Foglaltak = $ORAK['tanarok']['foglaltak'][$ora];
- // Ha a tanár szakos, akkor összevonhat.
- // Itt most egyelőre annyit kérdezünk le, hogy ugyanabban az időben ki tanít
- for ($f = 0; $f < count($Foglaltak); $f++) {
- if ($Foglaltak[$f] != $tanarId) {
- if ($ORAK['tanarok'][$Foglaltak[$f]]['targyak'][$tanarOrak[$j]['targyId']])
- $ORAK['helyettesites'][$tanarId]['orak'][$j]['osszevono'][] = $Foglaltak[$f];
- else
- $ORAK['helyettesites'][$tanarId]['orak'][$j]['foglalt'][] = $Foglaltak[$f];
- }
- } // Adott óra öszzevonói/foglaltjai
- } // Adott tanár órái
- } // A helyettesítésben érintett tanárok
- $q = "SELECT ki, ora FROM ora
- WHERE dt = '%s' AND ki != '' AND feladatTipusId IS NOT NULL
- ORDER BY ki, ora";
- $r = db_query($q, array('fv' => 'getHianyzoOrak', 'modul' => 'naplo', 'result' => 'indexed', 'values' => array($dt)), $lr);
- for ($i=0; $i<count($r); $i++) {
- $ORAK['egyeb'][$r[$i]['ora']][]=$r[$i]['ki'];
- }
- $ORAK['termek'] = getTermek(array('result'=>'assoc'));
-
- if($olr=='') $lr = db_close($lr);
- return $ORAK;
- }
-
- function ujHianyzokFelvetele($ujHianyzok, $dt, $olr = '') {
-
-
- if (count($ujHianyzok) > 0) {
-
- if ($olr == '') $lr = db_connect('naplo');
- else $lr = $olr;
-
- $where = "ki IN (".implode(',', array_fill(0, count($ujHianyzok), '%u')).")";
- $v = $ujHianyzok;
-
- // Ha visszamenőleg állítunk elmaradtra egy órát, akkor kezelni kell a hozzá tartozó bejegyzéseket
- if (strtotime($dt) < time()) {
- // Az elmaradó órák id-inek lekérdezése
- $q = "SELECT oraId FROM ora
- WHERE dt='%s'
- AND ki IN (".implode(',', array_fill(0, count($ujHianyzok), '%u')).")
- AND (
- tipus='normál' OR
- tipus='helyettesítés' OR
- tipus='felügyelet' OR
- tipus='összevonás'
- )";
- $v = mayor_array_join(array($dt), $ujHianyzok);
- $oraIds = db_query($q, array('fv' => 'ujHianyzokFelvetele', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $v), $lr);
-
- if (is_array($oraIds) && count($oraIds) > 0) { // Ha van elmaradt óra
- $where_id = "oraId IN (".implode(',', array_fill(0, count($oraIds), '%u')).")";
-
- // Az elmaradt órákhoz tartozó hiányztások, késések, felszerelés hiányok, egyenruha hiányok törlése!
- $q = "SELECT hianyzasId FROM hianyzas WHERE oraId IN (".implode(',', array_fill(0, count($oraIds), '%u')).")";
- $hIds = db_query($q, array('fv' => 'ujHianyzokFelvetele', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $oraIds), $lr);
- if (count($hIds) > 0) {
- logAction(
- array(
- 'tabla' => 'hianyzas',
- 'szoveg'=> "hiányzó tanár - óraelmaradás: $where_id, hianyzasId IN (".implode(',', array_fill(0, count($hIds), '%u')).")",
- 'values' => mayor_array_join($oraIds, $hIds)
- ),
- $lr
- );
- $q = "DELETE FROM hianyzas WHERE oraId IN (".implode(',', array_fill(0, count($oraIds), '%u')).")";
- $r = db_query($q, array('fv' => 'ujHianyzokFelvetele', 'modul' => 'naplo', 'values' => $oraIds), $lr);
- }
- // Az elmaradt órákhoz rendelt jegyek hozzárendelésének törlése
- $q = "UPDATE jegy SET oraId=NULL WHERE oraId IN (".implode(',', array_fill(0, count($oraIds), '%u')).")";
- $r = db_query($q, array('fv' => 'ujHianyzokFelvetele', 'modul' => 'naplo', 'values' => $oraIds), $lr);
- }
- }
-
- $v = mayor_array_join(array($dt), $ujHianyzok);
- // Normál órái elmaradnak
- $q = "UPDATE ora
- SET kit=ki, ki=NULL, tipus='elmarad', modositasDt=NOW()
- WHERE dt='%s'
- AND tipus='normál'
- AND ki IN (".implode(',', array_fill(0, count($ujHianyzok), '%u')).")";
- $r = db_query($q, array('fv' => 'ujHianyzokFelvetele', 'modul' => 'naplo', 'values' => $v), $lr);
-
- // Helyettesített, felügyelt, összevont órái elmaradnak
- $q = "UPDATE ora SET ki=NULL,tipus='elmarad', modositasDt=NOW()
- WHERE dt='%s'
- AND (
- tipus='helyettesítés' OR
- tipus='felügyelet' OR
- tipus='összevonás'
- )
- AND ki IN (".implode(',', array_fill(0, count($ujHianyzok), '%u')).")";
- $r = db_query($q, array('fv' => 'ujHianyzokFelvetele', 'modul' => 'naplo', 'values' => $v), $lr);
-
- // Elmaradnak-e a rögzített feladatai? ??????????????
-
- if ($olr == '') db_close($lr);
- }
- }
-
- function toroltHianyzokVisszaallitasa($toroltHianyzok, $dt, $olr='') {
-
-
- if (count($toroltHianyzok) > 0) {
-
- if ($olr == '') $lr = db_connect('naplo');
- else $lr = $olr;
-
- // Cserék visszaállítása
- $q_cs = "SELECT oraId FROM ora WHERE tipus like '%%máskor'
- AND (
- ki IN (".implode(',', array_fill(0, count($toroltHianyzok), '%u')).")
- OR kit IN (".implode(',', array_fill(0, count($toroltHianyzok), '%u')).")
- ) AND dt = '%s'";
- $v_cs = mayor_array_join($toroltHianyzok, $toroltHianyzok, array($dt));
- $r_cs = db_query($q_cs, array('fv' => 'ujHianyzokFelvetele', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $v_cs), $lr);
- foreach ($r_cs as $key => $vissza_id) {
- csereVisszaallitas($vissza_id, $lr);
- }
-
- // A nem hiáynzók helyettesített, összevont, elmaradt, felügyelt óráinak visszaállítása
- // 2013. Itt vissza kell állítanunk munkaido-t 'lekötött'-re. Mi történik ugyanakkor, ha
- // a visszaállított óra már nem fér bele... Ugye... Sajnos
- $q_v = "UPDATE ora SET ki=kit, kit=NULL, tipus='normál', munkaido='lekötött', modositasDt=NOW()
- WHERE tipus IN ('helyettesítés','felügyelet','összevonás','elmarad')
- AND dt='%s' AND kit IN (".implode(',', array_fill(0, count($toroltHianyzok), '%u')).")";
- $v_v = mayor_array_join(array($dt), $toroltHianyzok);
- $r_v = db_query($q_v, array('fv' => 'toroltHianyzokVisszaallitasa', 'modul' => 'naplo', 'values' => $v_v), $lr);
-
- if ($olr == '') db_close($lr);
- }
- }
-
- function csereVisszaallitas($oraId, $olr = '') {
-
-
- if ($olr == '') $lr = db_connect('naplo');
- else $lr = $olr;
-
- // A csere csereId-jének lekérdezése
- $q = "SELECT DISTINCT csereId
- FROM csereAlapOra LEFT JOIN cserePluszOra USING (csereId)
- WHERE csereAlapOra.oraId=%u OR cserePluszOra.oraId=%u";
- $v = array($oraId, $oraId);
- $r = db_query($q, array('fv' => 'csereVisszaallitas', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $v), $lr);
- if (!$r) {
- if ($olr == '') db_close($lr);
- return false;
- }
- if (($num = count($r)) != 1) {
- $_SESSION['alert'][] = 'message:wrong_data:csereVisszaallitas:Nincs csere?:'.$num;
- if ($olr == '') db_close($lr);
- return false; // Lehet ilyen?
- }
- $csereId = $r[0];
-
- // A cserében résztvevő órák id-jének lekérdezése
- $q = "SELECT csereAlapOra.oraId AS alap, cserePluszOra.oraId AS plusz
- FROM cserePluszOra LEFT JOIN csereAlapOra USING (csereId)
- WHERE csereId=%u";
- $r = db_query($q, array('fv' => 'csereVisszaallitas', 'modul' => 'naplo', 'result' => 'indexed', 'values' => array($csereId)), $lr);
- if (!$r) {
- if ($olr == '') db_close($lr);
- return false;
- }
- $Alap = $Plusz = array();
- for ($i = 0; $i < count($r); $i++) {
- $alap = $r[$i]['alap']; $plusz = $r[$i]['plusz'];
- if (!in_array($alap, $Alap)) $Alap[] = $alap;
- if (!in_array($plusz, $Plusz)) $Plusz[] = $plusz;
- }
-
- // az eredeti órák 'elmarad máskor'-ról 'elmarad'-ra állítása
- $q = "UPDATE ora SET tipus='elmarad',modositasDt=NOW() WHERE oraId IN (".implode(',', array_fill(0, count($Alap), '%u')).")";
- $r = db_query($q, array('fv' => 'csereVisszaallitas', 'modul' => 'naplo', 'values' => $Alap), $lr);
- if (!$r) {
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // a csere-bejegyzés törlése
- $q = "DELETE FROM csere WHERE csereId=%u";
- $r = db_query($q, array('fv' => 'csereVisszaallitas', 'modul' => 'naplo', 'values' => array($csereId)), $lr);
- if (!$r) {
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // Az órákhoz rendelt hiányzások és jegyhozzárendelések törlése (csak plusz lehet érintett!)
- hianyzasEsJegyHozzarendelesTorles($Plusz, $lr);
-
- // a plusz órák törlése
- $q = "DELETE FROM ora WHERE oraId IN (".implode(',', array_fill(0, count($Plusz), '%u')).")";
- $r = db_query($q, array('fv' => 'csereVisszaallitas', 'modul' => 'naplo', 'values' => $Plusz), $lr);
- if (!$r) {
- if ($olr == '') db_close($lr);
- return false;
- }
-
- if ($olr == '') db_close($lr);
- return true;
-
- }
-
-
- function cmp($a,$b) {
- if ($a['súly'] == $b['súly']) return 0;
- return ($a['súly'] > $b['súly']) ? -1 : 1;
- }
-
-
- function ujOra($ORA, $olr = null) {
- // alapértelmezésben munkaido='lekötött'
- if ($ORA['ki'] == '') $ORA['ki'] = 'NULL';
- if ($ORA['kit'] == '') $ORA['kit'] = 'NULL';
- if ($ORA['teremId'] == '') $ORA['teremId'] = 'NULL';
- $q = "INSERT INTO ora (ki,kit,dt,ora,tankorId,teremId,leiras,tipus,eredet,modositasDt) VALUES (%s, %s, '%s', %u, %u, %s, '%s', '%s', '%s',NOW())";
- $v = array($ORA['ki'], $ORA['kit'], $ORA['dt'], $ORA['ora'], $ORA['tankorId'], $ORA['teremId'], $ORA['leiras'], $ORA['tipus'], $ORA['eredet']);
- return db_query($q, array('fv' => 'ujOra', 'modul' => 'naplo', 'result' => 'insert', 'values' => $v), $olr);
- }
-
- function oraMozgatas($oraId, $dt, $ora, $olr = '') {
-
-
- if ($olr == '') $lr = db_connect('naplo', array('fv' => 'oraMozgatas'));
- else $lr = $olr;
-
- $oraAdat = getOraAdatById($oraId, __TANEV, $lr);
-
- if ($oraAdat['tipus'] == 'elmarad máskor') {
- $_SESSION['alert'][] = 'message:wrong_data:oraMozgatas:már mozgatott óra:'.$oraId;
- if ($olr == '') db_close($lr);
- return false;
- }
-
- if (isset($oraAdat['kit']) && $oraAdat['kit'] != '') $tanarId = $oraAdat['kit'];
- else $tanarId = $oraAdat['ki'];
- $tankorId = $oraAdat['tankorId'];
- $teremId = $oraAdat['teremId'];
-
- checkNaplo($dt);
-
- // A tanár nem foglalt-e az adott időpontban
- if (!tanarLukasOrajaE($tanarId, $dt, $ora, $lr)) {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:'."mozgat/tanár ütközés/$dt:$ora";
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // diák ütközés
- if (!tankorTagokLukasOrajaE($tankorId, $dt, $ora)) {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:'."mozgat/diák ütközés/$dt:$ora";
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // terem ellenőrzés
- $Termek = getSzabadTermek(array('dt' => $dt, 'ora' => $ora), $lr);
- for ($i = 0;($i < count($Termek) && $Termek[$i]['teremId'] != $teremId); $i++);
- if ($i >= count($Termek)) {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:Foglalt terem:'.$teremId;
- $teremUtkozes = true;
- }
-
- // érintett hiányzások, késések, felszerelés hiányok, egyenruha hiányok, jegyHozzárendelések törlése!
- if (strtotime($dt) < time()) hianyzasEsJegyHozzarendelesTorles($oraId, $lr);
-
- if ($oraAdat['eredet'] == 'órarend') {
-
- // ha órarendi óra, akkor elmarad máskor - plusz óra felvétel
- if (isset($oraAdat['kit']) && $oraAdat['kit'] != '') {
- // kit nem üres, ki törölhető
- $q = "UPDATE ora SET tipus='elmarad máskor',ki=NULL,modositasDt=NOW() WHERE oraId=%u";
- $oraAdat['ki'] = $tanarId;
- $oraAdat['kit'] = '';
- } else {
- // normál óra, akkor a ki --> kit...
- $q = "UPDATE ora SET tipus='elmarad máskor',kit=ki,ki=NULL,modositasDt=NOW() WHERE oraId=%u";
- }
- $r = db_query($q, array('fv' => 'oraMozgatas', 'modul' => 'naplo', 'values' => array($oraAdat['oraId'])), $lr);
- if (!$r) {
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // A felveendő plusz óra
- $oraAdat['tipus']='normál máskor';
- $oraAdat['eredet']='plusz';
- $oraAdat['dt'] = $dt;
- $oraAdat['ora'] = $ora;
- if ($teremUtkozes) $oraAdat['teremId'] = 'NULL';
-
- if ($pluszId = ujOra($oraAdat, $lr)) {
-
- // órarendi óra mozgatásánál a csere táblába is fel kell venni...
- $error = '';
- db_start_trans($lr);
-
- $q = "INSERT INTO csere VALUES ('')";
- $csereId = db_query($q, array('fv' => 'oraMozgatas', 'modul' => 'naplo', 'result' => 'insert', 'rollback' => true), $lr);
- if (!$csereId) { if ($olr == '') db_close($lr); return false; }
-
- $q = "INSERT INTO csereAlapOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraMozgatas', 'modul' => 'naplo', 'values' => array($csereId, $oraId), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- $q = "INSERT INTO cserePluszOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraMozgatas', 'modul' => 'naplo', 'values' => array($csereId, $pluszId), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- db_commit($lr);
-
- }
- } else {
-
- // plusz óra egyszerűen módosítandó...
- if ($teremUtkozes) $q = "UPDATE ora SET tipus='normál máskor',ki=%u, kit=NULL, dt='%s', ora='%u', teremId=NULL, modositasDt=NOW() WHERE oraId=%u";
- else $q = "UPDATE ora SET tipus='normál máskor',ki=%u, kit=NULL, dt='%s', ora='%u', modositasDt=NOW() WHERE oraId=%u";
- $v = array($tanarId, $dt, $ora, $oraId);
- $r = db_query($q, array('fv' => 'oraMozgatas', 'modul' => 'naplo', 'values' => $v), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- } // órarendi vagy plusz óra
-
- if ($olr == '') db_close($lr);
- return true;
-
- }
-
- function getCsereOraiByOraId($oraId) {
-
-
- $lr = db_connect('naplo', array('fv' => 'getCsereOraiByOraId'));
-
- $q = "SELECT DISTINCT csereId FROM csereAlapOra LEFT JOIN cserePluszOra USING (csereId)
- WHERE csereAlapOra.oraId=%u OR cserePluszOra.oraId=%u";
- $v = array($oraId, $oraId);
- $arrayCsereId = db_query($q , array('fv' => 'getCsereOraiByOraId', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $v), $lr);
- if (!is_array($arrayCsereId) || ($num = count($arrayCsereId)) != 1) {
- $_SESSION['alert'][] = 'message:wrong_data:getCsereOraiByOraId:Nincs csere?:'.$num.'/'.$oraId;
- db_close($lr); return false;
- }
- $csereId = $arrayCsereId[0];
-
- $q = "SELECT DISTINCT oraId, dt, ora, ki, kit, tankorId, tipus, eredet, tankorNev
- FROM csereAlapOra LEFT JOIN ora USING (oraId)
- LEFT JOIN ".__INTEZMENYDBNEV.".tankorSzemeszter USING (tankorId)
- WHERE csereId=%u AND tanev=".__TANEV." ORDER BY dt, ora";
- $ret['alap'] = db_query($q, array(
- 'fv' => 'getCsereOraiByOraId', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'tankorId', 'values' => array($csereId)
- ), $lr);
-
- $q = "SELECT DISTINCT oraId, dt, ora, ki, kit, tankorId, tipus, eredet, tankorNev
- FROM cserePluszOra LEFT JOIN ora USING (oraId)
- LEFT JOIN ".__INTEZMENYDBNEV.".tankorSzemeszter USING (tankorId)
- WHERE csereId=%u AND tanev=".__TANEV." ORDER BY dt, ora";
- $ret['plusz'] = db_query($q, array(
- 'fv' => 'getCsereOraiByOraId', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'tankorId', 'values' => array($csereId)
- ), $lr);
-
- db_close($lr);
- return $ret;
-
- }
-
- function oraCsere($oraId1, $oraId2, $olr = '') {
-
-
- if ($olr == '') $lr = db_connect('naplo');
- else $lr = $olr;
-
- $csereOraAdat1 = $oraAdat1 = getOraAdatById($oraId1, __TANEV, $lr);
- $csereOraAdat2 = $oraAdat2 = getOraAdatById($oraId2, __TANEV, $lr);
-
- if ($oraAdat1['tipus'] == 'elmarad máskor' || $oraAdat2['tipus'] == 'elmarad máskor') {
- $_SESSION['alert'][] = 'message:wrong_data:oraCsere:már mozgatott óra:'.$oraId1.'/'.$oraId2;
- if ($olr == '') db_close($lr);
- return false;
- }
-
- if (isset($oraAdat1['kit']) && $oraAdat1['kit'] != '') $tanarId1 = $oraAdat1['kit'];
- else $tanarId1 = $oraAdat1['ki'];
-
- if (isset($oraAdat2['kit']) && $oraAdat2['kit'] != '') $tanarId2 = $oraAdat2['kit'];
- else $tanarId2 = $oraAdat2['ki'];
-
- if ($tanarId1 != $tanarId2) {
- // Ha nem saját magával cserél, akkor a tanár nem foglalt-e az adott időpontban
- if (!tanarLukasOrajaE($tanarId1, $oraAdat2['dt'], $oraAdat2['ora'], $lr)) {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:'."oraCsere/tanár ütközés #1 (".$oraId1.'):'.$oraAdat2['dt'].':'.$oraAdat2['ora'];
- if ($olr == '') db_close($lr);
- return false;
- }
- if (!tanarLukasOrajaE($tanarId2, $oraAdat1['dt'], $oraAdat1['ora'], $lr)) {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:'."oraCsere/tanár ütközés #2 (".$oraId2.'):'.$oraAdat1['dt'].':'.$oraAdat1['ora'];
- if ($olr == '') db_close($lr);
- return false;
- }
- }
-
- // diák ütközés
- if (!tankorTagokLukasOrajaE($oraAdat1['tankorId'], $oraAdat2['dt'], $oraAdat2['ora'], $oraAdat2['tankorId'])) {
- if ($olr == '') db_close($lr);
- return false;
- }
- if (!tankorTagokLukasOrajaE($oraAdat2['tankorId'], $oraAdat1['dt'], $oraAdat1['ora'], $oraAdat1['tankorId'])) {
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // terem ellenőrzés nincs: Termeket nem cserélünk!!
-
- // érintett hiányzások, késések, felszerelés hiányok, egyenruha hiányok, jegyHozzárendelések törlése!
- if (strtotime($oraAdat1['dt']) < time()) hianyzasEsJegyHozzarendelesTorles($oraId1, $lr);
- if (strtotime($oraAdat2['dt']) < time()) hianyzasEsJegyHozzarendelesTorles($oraId2, $lr);
-
- // 1. óra mozgatása
- if ($oraAdat1['eredet'] == 'órarend') {
-
- $q = "UPDATE ora SET tipus='elmarad máskor', kit=%u, ki=NULL, modositasDt=NOW() WHERE oraId=%u";
- if (!db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($tanarId1, $oraAdat1['oraId'])), $lr)) {
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // A felveendő plusz óra
- $csereOraAdat1['ki'] = $tanarId1;
- $csereOraAdat1['kit'] = 'NULL';
- $csereOraAdat1['tipus']='normál máskor';
- $csereOraAdat1['eredet']='plusz';
- $csereOraAdat1['dt'] = $oraAdat2['dt'];
- $csereOraAdat1['ora'] = $oraAdat2['ora'];
- $csereOraAdat1['teremId'] = $oraAdat2['teremId'];
-
- $pluszId1 = ujOra($csereOraAdat1, $lr);
-
- // A csere táblába bejegyezzük a mozgatást
- if ($pluszId1) {
-
- db_start_trans($lr);
-
- $q = "INSERT INTO csere VALUES ('')";
- $csereId1 = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'result' => 'insert', 'rollback' => true), $lr);
- if (!$csereId1) { if ($olr == '') db_close($lr); return false; }
-
- $q = "INSERT INTO csereAlapOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId1, $oraId1), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- $q = "INSERT INTO cserePluszOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId1, $pluszId1), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- db_commit($lr);
- }
-
- } else {
-
- // plusz óra egyszerűen módosítandó...
- $q = "UPDATE ora SET tipus='normál máskor', ki=%u, kit=NULL, dt='%s', ora=%u, teremId=%u, modositasDt=NOW() WHERE oraId=%u";
- $r = db_query($q, array(
- 'fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($tanarId1, $oraAdat2['dt'], $oraAdat2['ora'], $oraAdat2['teremId'], $oraId1)
- ), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- // A plusz óra beletartozik-e valamelyik cserébe (elvileg csak egybe tartozhat)
- $q = "SELECT csereId FROM cserePluszOra WHERE oraId=%u";
- $csereId1 = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'result' => 'value', 'values' => array($oraId1)), $lr);
-
- } // 1. óra: órarendi vagy plusz óra
-
- // 2. óra mozgatsa
- if ($oraAdat2['eredet'] == 'órarend') {
-
- // ha órarendi óra, akkor elmarad máskor - plusz óra felvétel
- $q = "UPDATE ora SET tipus='elmarad máskor', kit=%u, ki=NULL, modositasDt=NOW() WHERE oraId=%u";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($tanarId2, $oraAdat2['oraId'])), $lr);
- if (!r) { if ($olr == '') db_close($lr); return false; }
-
- // A felveendő plusz óra
- $csereOraAdat2['ki'] = $tanarId2;
- $csereOraAdat2['kit'] = 'NULL';
- $csereOraAdat2['tipus']='normál máskor';
- $csereOraAdat2['eredet']='plusz';
- $csereOraAdat2['dt'] = $oraAdat1['dt'];
- $csereOraAdat2['ora'] = $oraAdat1['ora'];
- $csereOraAdat2['teremId'] = $oraAdat1['teremId'];
-
- $pluszId2 = ujOra($csereOraAdat2, $lr);
- // A csere táblába bejegyezzük a mozgatást
- if ($pluszId2) {
-
- db_start_trans($lr);
-
- $q = "INSERT INTO csere VALUES ('')";
- $csereId2 = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'result' => 'insert', 'rollback' => true), $lr);
- if (!$csereId2) { if ($olr == '') db_close($lr); return false; }
-
- $q = "INSERT INTO csereAlapOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId2, $oraId2), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- $q = "INSERT INTO cserePluszOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId2, $pluszId2), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- db_commit($lr);
- }
-
- } else {
-
- // plusz óra egyszerűen módosítandó...
- $q = "UPDATE ora SET tipus='normál máskor', ki=%u , kit=NULL, dt='%s', ora=%u, teremId=%u, modositasDt=NOW() WHERE oraId=%u";
- $r = db_query($q, array(
- 'fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($tanarId2, $oraAdat1['dt'], $oraAdat1['ora'], $oraAdat1['teremId'], $oraId2)
- ), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- // A plusz óra beletartozik-e valamelyik cserébe
- $q = "SELECT csereId FROM cserePluszOra WHERE oraId=%u";
- $csereId2 = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'result' => 'value', 'values' => array($oraId2)), $lr);
-
- } // 2. óra: órarendi vagy plusz óra
-
- // Egy cserévé tesszük...
-
- if (isset($csereId1) && isset($csereId2) && $csereId1 != $csereId2) {
-
- db_start_trans($lr);
-
- // A cserélt órák két különböző cserébe tartoznak --> egyesítjük a két cserét
- $q = "UPDATE csereAlapOra SET csereId=%u WHERE csereId=%u";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId1, $csereId2), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- $q = "UPDATE cserePluszOra SET csereId=%u WHERE csereId=%u";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId1, $csereId2), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- $q = "DELETE FROM csere WHERE csereId=%u";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId2), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- db_commit($lr);
-
- } elseif (isset($csereId1) && !isset($csereId2)) {
-
- // Csak az első óra van cserében --> a másodikat is (ami plusz óra) bele kell rakni
- $q = "INSERT INTO cserePluszOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId1, $oraId2), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- } elseif (!isset($csereId1) && isset($csereId2)) {
- // Csak a második óra van cserében --> az elsőt is (ami plusz óra) bele kell rakni
- $q = "INSERT INTO cserePluszOra (csereId, oraId) VALUES (%u, %u)";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($csereId2, $oraId1), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- } elseif (!isset($csereId1) && !isset($csereId2)) {
- // Egyik sincs cserében --> Azaz két plusz óra --> nem vesszük fel őket cserének
- // Ezért ez nem is csere --> a típusok nem normál máskor, hanem normál
- $q = "UPDATE ora SET tipus='normál', modositasDt=NOW() WHERE oraId IN (%u, %u)";
- $r = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'values' => array($oraId1, $oraId2), 'rollback' => true), $lr);
- if (!$r) { if ($olr == '') db_close($lr); return false; }
-
- }
-
- if ($olr == '') db_close($lr);
- return true;
-
- }
-
- function tanarTankortTanithatE($tanarId, $tankorId, $olr = '') {
-
-
- if ($olr != '') $lr = $olr;
- else $lr = db_connect('naplo');
-
- // Beletartozik-e a megadott tanár a tankör munkaközösségébe?
- $q = "SELECT COUNT(tanarId)
- FROM ".__INTEZMENYDBNEV.".tankor
- LEFT JOIN ".__INTEZMENYDBNEV.".targy USING (targyId)
- LEFT JOIN ".__INTEZMENYDBNEV.".mkTanar USING (mkId)
- WHERE tankorId=%u AND tanarId=%u";
- $num = db_query($q, array(
- 'fv' => 'tanarTankortTanithatE', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => array($tankorId, $tanarId)
- ));
- if ($num != 1) $_SESSION['alert'][] = 'message:wrong_data:keziBeallitas/tanarTankortTanithatE:Nem szakos:(tanarId/tankorId) - '.$tanarId.'/'.$tankorId;
-
- if ($olr == '') db_close($lr);
- return ($num == 1);
-
- }
-
-
- function keziBeallitas($oraId, $ki, $tipus, $teremId) {
-
- global $dt;
-
- $lr = db_connect('naplo', array('fv' => 'keziBeallitas'));
-
- $oraAdat = getOraAdatById($oraId, __TANEV, $lr);
- $dt = $oraAdat['dt'];
- if ($ki != $oraAdat['ki'] || $tipus != $oraAdat['tipus'] || $teremId != $oraAdat['teremId']) {
- $ok = true;
- // új tanár, vagy típus - ütközés ellenőrzése
- if ($ki != $oraAdat['ki'] || $tipus != $oraAdat['tipus']) {
- $q = "SELECT COUNT(*) FROM ora
- WHERE dt='%s' AND ora=%u AND oraId!=%u AND ki=%u AND tipus NOT LIKE 'elmarad%%'";
- $_db = db_query($q, array(
- 'fv' => 'keziBeallitas', 'modul' => 'naplo', 'result' => 'value', 'values' => array($oraAdat['dt'], $oraAdat['ora'], $oraId, $ki)
- ), $lr);
- if ($_db == 0) {
- if ($tipus == 'összevonás') {
- $_SESSION['alert'][] = 'message:wrong_data:keziBeallitas:Egy órát nem lehet összevonni';
- $ok = false;
- } elseif ($tipus == 'helyettesítés') {
- // Beletartozik-e a megadott tanár a tankör munkaközösségébe?
- $ok = tanarTankortTanithatE($ki, $oraAdat['tankorId'], $lr);
- }
- } else {
- if ($tipus != 'összevonás') {
- $_SESSION['alert'][] = "message:haladasi_utkozes:keziBeallitas:Már van órája!:$ki";
- $ok = false;
- } else {
- // Beletartozik-e a megadott tanár a tankör munkaközösségébe?
- $ok = tanarTankortTanithatE($ki, $oraAdat['tankorId'], $lr);
- }
- }
- }
- // Terem változtatás - szabad-e a terem? vagy nincs megadva
- if ($teremId != $oraAdat['teremId'] && $teremId!='NULL') {
- // Szabad-e a terem? - a saját maga által használt terem nem foglalt! (összevonáshoz így kell)
- $Termek = getSzabadTermek(array('dt' => $OraAdat['dt'], 'ora' => $oraAdat['ora'], 'ki' => $ki), $lr);
- for ($i = 0;($i < count($Termek) && $Termek[$i]['teremId'] != $teremId); $i++);
- if ($i >= count($Termek)) {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:keziBeallitas:Foglalt terem:'.$teremId;
- $ok = false;
- }
- }
- // Módosítás
- if ($ok && $tipus != 'elmarad') {
- if (substr($oraAdat['tipus'], 0, 7) == 'normál') {
- if ($tipus == $oraAdat['tipus'] || $ki == $oraAdat['ki']) {
- // Vagy mindkettő változik, vagy egyik se
- $q = "UPDATE ora SET teremId=%u, modositasDt=NOW() WHERE oraId=%u";
- $v = array($teremId, $oraId);
- } else { // ki --> kit (csak helyettesítés, felügyelet, vagy összevonás lehet az új típus!!
- $q = "UPDATE ora SET kit=ki, ki=%u, tipus='%s', teremId=%u, modositasDt=NOW() WHERE oraId=%u";
- $v = array($ki, $tipus, $teremId, $oraId);
- }
- } else { // kit nem változik
- $q = "UPDATE ora SET ki=%u, tipus='%s', teremId=%u, modositasDt=NOW() WHERE oraId=%u";
- $v = array($ki, $tipus, $teremId, $oraId);
- }
- $r = db_query($q, array('fv' => 'keziBeallitas', 'modul' => 'naplo', 'values' => $v), $lr);
- if ($r) $_SESSION['alert'][] = 'info:change_success:keziBeallitas';
- } else {
- $_SESSION['alert'][] = 'info:do_nothing:keziBeallitas:Nem történt módosítás';
- }
- }
-
- db_close($lr);
-
- }
-
- function ujHelyettes2($oraAdat, $ki, $tipus, $olr = null) {
- $oraId = $oraAdat['oraId'];
- $dt = $oraAdat['dt'];
- if (is_null($ki) || $ki!=0) {
-
- // a helyettesített óra milyen munkaidőbe számolódik vajon?
- // 1. összevonás = ??? (ezt nem vesszük figyelembe, ezért tökmindegy)
- // 2. felügyelet = ez bizony egyértelműen a fennmaradó
- // 3. helyettesítés = lekötött HA (26-on belül van az elmúlt 5 napos lekötött VAGY még a 28-on belül van, de érvényesek a feltételek 2-6-30)
- // fennmaradó EGYÉBKÉNT.
-
- // ez már le van kérdezve, de a tranzakció miatt sajnos újra kell:
- $TERHELES = getOraTerhelesStatByTanarId(array('tanarId'=>array($ki),'dt'=>$dt), $olr);
-
- if ($tipus=='összevonás') $_munkaido = 'lekötött';
- elseif ($tipus=='felügyelet') $_munkaido = 'fennmaradó';
- elseif ($tipus=='helyettesítés') {
- if ($TERHELES[$ki]['munkaido']['lekotott']>$TERHELES[$ki]['lekotott']['heti']) {
- $_lekotheto = true;
- } elseif ($TERHELES[$ki]['over']['napi']<2 && $TERHELES[$ki]['over']['heti']<6) {
- $_lekotheto =false;
- } else {
- $_lekotheto=false;
- $_SESSION['alert'][] = 'info:OVERTIME'; // időközben túllépte valahogy
- }
- if ($_lekotheto===true) $_munkaido = 'lekötött'; else $_munkaido='fennmaradó';
- } else {
- $_munkaido='lekötött'; //tipus???
- }
-
- if ($_munkaido=='')
- $q = "UPDATE ora SET ki=%u,tipus='%s', modositasDt=NOW() WHERE oraId=%u";
- else
- $q = "UPDATE ora SET ki=%u,tipus='%s',munkaido='".$_munkaido."', modositasDt=NOW() WHERE oraId=%u";
-
- return db_query($q, array('fv' => 'ujHelyettes', 'modul' => 'naplo', 'values' => array($ki, $tipus, $oraId)), $olr);
- } else {
- $_SESSION['alert'][] = '::Nem sikerült beállítani az új helyettest!:oraId-'.$oraId.':ki-'.$ki.':tipus-'.$tipus;
- return false;
- }
-
- }
-
- function eredetiOraVissza($oraId, $eredet, $olr = null) {
-
-
- if ($olr == '') $lr = db_connect('naplo', array('fv' => 'eredetiOraVissza'));
- else $lr = $olr;
-
- if ($eredet == 'plusz') {
- $q_csere = "SELECT COUNT(csereId) FROM cserePluszOra WHERE oraId=%u";
- $num = db_query($q_csere, array('fv' => 'eredetiOraVissza', 'modul' => 'naplo', 'result' => 'value', 'values' => array($oraId)), $lr);
- }
- if (($eredet == 'órarend') || ($num == 0))
- $q = "UPDATE ora SET ki=kit,kit=NULL,tipus='normál',munkaido='lekötött',modositasDt=NOW() WHERE oraId=%u";
- else
- $q = "UPDATE ora SET ki=kit,kit=NULL,tipus='normál máskor',munkaido='lekötött',modositasDt=NOW() WHERE oraId=%u";
- $r = db_query($q, array('fv' => 'eredetiOraVissza', 'modul' => 'naplo', 'values' => array($oraId)), $lr);
-
- if ($olr == '') db_close($lr);
- }
-
- function helyettesitesRogzites($T) {
-
-
- $lr = db_connect('naplo');
-
- for ($i = 0; $i < count($T); $i++) {
-
- if ($T[$i] == '') continue; // ha eredeti maradt, ne módosítson!
- $teremUtkozes = false;
- list($ki, $oraId, $tipus) = explode('/',$T[$i]);
- $oraAdat = getOraAdatById($oraId);
- if ($tipus == 'normál') {
- if ($oraAdat['kit'] != '') $ki = $oraAdat['kit'];
- else $ki = $oraAdat['ki'];
- }
- $regi_tipus = $oraAdat['tipus'];
-
- // A csere miatt elmaradt óra változásakor, illetve
- // a csere miatt felvett óra visszaállításakor a cserét meg kell szüntetni
- if (($regi_tipus == 'normál máskor' && $tipus == '') || ($regi_tipus == 'elmarad máskor')) {
- csereVisszaallitas($oraId, $lr);
- if (
- $tipus == '' // csere/mozgatás visszaállítás
- || ($regi_tipus == 'elmarad máskor' && $tipus == 'elmarad') // mozgatott óra elmarad
- ) continue;
- }
-
- // Elmaradó óra esetén a hiányzások, késések, felszerelés hiányok, egyenruha hiányok, jegy hozzárendelések törlendők!
- // Ezek bekerült az oraElmarad függvénybe
- if ($tipus=='töröl' && $oraAdat['tipus']=='egyéb') { // az egyéb típusú óra gond nélkül törölhető, nincs hozzá semmi
- oraElmarad($oraId, $lr); // használjuk ugyanazt a függvényt
- } elseif (substr($tipus,0,7) == 'elmarad') {
- oraElmarad($oraId, $lr);
- } else {
- // Ha egy órát "mégis" megtartunk, akkor ellenőrizni kell, hogy nem ütközik-e valamivel!! (esetleg felvett plusz órával, mozgatott órával)
- // Tanár ellenőrzése
- if (tanarLukasOrajaE($ki, $oraAdat['dt'], $oraAdat['ora'], $lr)) {
- if ($tipus == 'összevonás') {
- $_SESSION['alert'][] = 'message:wrong_data:helyettesitesRogzites:nincs mivel összevonni:'.$oraId;
- continue;
- }
- } else {
- if ($tipus != 'összevonás') {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:helyettesitesRogzites:'.$oraId;
- continue;
- }
- }
- if (substr($regi_tipus,0,7) == 'elmarad') {
- // Tankör tagok ellenőrzése
- if (getTankorJelenletKotelezoE($oraAdat['tankorId']) && !tankorTagokLukasOrajaE($oraAdat['tankorId'], $oraAdat['dt'], $oraAdat['ora'])) {
- $_SESSION['alert'][] = 'message:wrong_data:A mégis megtartott óra ütközne!:oraId='.$oraId.', dt='.$oraAdat['dt'].', ora='.$oraAdat['ora'];
- continue;
- }
- }
-
- // A helyettesítés rögzítése
- if (mb_substr($tipus,0,6,'UTF-8') == 'normál') {
- if (mb_substr($regi_tipus,0,6,'UTF-8') != 'normál') eredetiOraVissza($oraId, $oraAdat['eredet'], $lr);
- } else {
- if (mb_substr($regi_tipus,0,6,'UTF-8') == 'normál') {
- // óraelmaradás itt már nem lehet!
- masTartja($oraId, $ki, $tipus, $lr);
- } else {
- // Ebbe NEM értjük bele a helyettesítés --> elmarad váltást
- // de beleértjük az elmarad --> helyettesítés váltást
- //ujHelyettes($oraId, $ki, $tipus, $lr);
- ujHelyettes2($oraAdat, $ki, $tipus, $lr);
- }
- }
-
- } // elmarad / nem marad el
-
-
- // Ha összevonásról nem összevonásra állítunk, akkor kialakulhatott terem ütközés!
- if (
- $oraAdat['teremId'] != ''
- && substr($tipus,0,7) != 'elmarad'
- && ($regi_tipus == 'összevonás' || substr($regi_tipus,0,7) == 'elmarad')
- ) {
- $Termek = getSzabadTermek(array('dt' => $oraAdat['dt'], 'ora' => $oraAdat['ora'], 'ki' => $ki), $lr);
- for ($j = 0; ($j < count($Termek) && $Termek[$j]['teremId'] != $oraAdat['teremId']); $j++);
- if ($j >= count($Termek)) {
- $_SESSION['alert'][] = 'message:haladasi_utkozes:hianyzasRogzites:a terem foglalt:'.$oraAdat['teremId'];
- $q = "UPDATE ".__TANEVDBNEV.".ora SET teremId=NULL WHERE oraId=%u";
- db_query($q, array('fv' => 'hianyzasRogzites', 'modul' => 'naplo', 'values' => array($oraId)), $lr);
- }
- }
- } // for
-
- db_close($lr);
-
- }
-
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/oralatogatas.php b/mayor-orig/www/include/modules/naplo/haladasi/oralatogatas.php
deleted file mode 100644
index 4364fc36..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/oralatogatas.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
- function oralatogatasBeiras($ADAT) {
-
- // óralátogatás felvétele/cseréje
- $q = "REPLACE INTO oraLatogatas (oraId, megjegyzes) VALUES (%u, '%s')";
- $v = array($ADAT['oraId'], $ADAT['megjegyzes']);
- $oralatogatasId = db_query($q, array('fv' => 'oralatogatasBeiras', 'modul' => 'naplo', 'result' => 'insert', 'values' => $v));
-
- if ($oralatogatasId === false) return false;
-
- // régi tanárhozzárendelések törlése
- $q = "DELETE FROM oraLatogatasTanar WHERE oraLatogatasId=%u";
- db_query($q, array('fv' => 'oralatogatasBeiras', 'modul' => 'naplo', 'values' => array($oralatogatasId)));
-
- // új tanárhozzárendelések felvétele - ha van tanárhozzárendelés
- if (is_array($ADAT['tanarIds']) && count($ADAT['tanarIds']) > 0) {
- $q = "INSERT INTO oraLatogatasTanar (oraLatogatasId,tanarId) VALUES ".implode(',', array_fill(0, count($ADAT['tanarIds']), "($oralatogatasId, %u)"));
- return db_query($q, array('fv' => 'oralatogatasBeiras', 'modul' => 'naplo', 'values' => $ADAT['tanarIds']));
- }
- return true;
- }
-
- function oralatogatasTorles($oraId) {
- $q = "DELETE FROM oraLatogatas WHERE oraId=%u";
- $v = array($oraId);
- return db_query($q, array('fv' => 'oralatogatasTorles', 'modul' => 'naplo', 'result' => '', 'values' => $v));
- }
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/osszevonas.php b/mayor-orig/www/include/modules/naplo/haladasi/osszevonas.php
deleted file mode 100644
index af80ce98..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/osszevonas.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
- function getOrakByDiakIdk($DIAKIDK, $SET = array('dt' => null, 'ora' => null)) {
-
- if (!is_array($DIAKIDK) || count($DIAKIDK) == 0) return false;
-
- $dt = readVariable($SET['dt'], 'datetime', date('Y-m-d'));
- $ora = readVariable($SET['ora'], 'numeric unsigned', 1);
-
- $q = "SELECT DISTINCT a.tankorId, a.oraId FROM ora AS a LEFT JOIN ".__INTEZMENYDBNEV.".tankorDiak AS b
- ON (a.tankorId = b.tankorId AND b.beDt<='%s' AND ('%s'<=b.kiDt OR b.kiDt IS NULL))
- WHERE b.diakId IN (".implode(',', array_fill(0, count($DIAKIDK), '%u')).") AND a.dt='%s' AND a.ora=%u
- GROUP BY b.diakId HAVING COUNT(a.oraId)>0";
- $v = mayor_array_join(array($dt, $dt), $DIAKIDK, array($dt, $ora));
- return db_query($q, array('fv' => 'getOrakByDiakIdk', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v));
-
- }
-
- function oraFelvetele($dt, $ora, $tanarId, $tankorId, $teremId = 'NULL', $tipus = 'normál', $eredet = 'plusz') {
-
- // ------------------------------------
- // ITT NEM ellenőrizzük a tanár terhelését!
- // ------------------------------------
-
- if (!isset($teremId) || $teremId == '' || intval($teremId) == 0) {
- $q = "INSERT INTO ora (dt,ora,ki,tankorId,teremId,tipus,eredet)
- VALUES ('%s', %u, %u, %u, NULL, '%s', '%s')";
- $v = array($dt, $ora, $tanarId, $tankorId, $tipus, $eredet);
- } else {
- $q = "INSERT INTO ora (dt,ora,ki,tankorId,teremId,tipus,eredet)
- VALUES ('%s', %u, %u, %u, %u, '%s', '%s')";
- $v = array($dt, $ora, $tanarId, $tankorId, $teremId, $tipus, $eredet);
- }
- return db_query($q, array('fv' => 'oraFelvetele', 'modul' => 'naplo', 'values' => $v));
-
- }
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/pluszora.php b/mayor-orig/www/include/modules/naplo/haladasi/pluszora.php
deleted file mode 100644
index 0112181a..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/pluszora.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
- function oraFelvetele($dt, $ora, $tanarId, $tankorId, $teremId = 'NULL', $tipus = 'normál', $eredet = 'plusz', $kit = 'NULL') {
-
- if (!isset($teremId) || $teremId == '') { $teremId = 'NULL'; $tStr = '%s'; }
- else { $tStr = '%u'; }
- if (!isset($kit) || $kit == '') { $kit = 'NULL'; $kStr = '%s'; }
- else { $kStr = '%u'; }
-
- // ------------------------------------
- // ITT NEM ellenőrizzük a tanár terhelését!
- // ------------------------------------
- $q = "INSERT INTO ora (dt,ora,ki,kit,tankorId,teremId,tipus,eredet,modositasDt)
- VALUES ('%s', %u, %u, $kStr, %u, $tStr, '%s', '%s', NOW())";
- $v = array($dt, $ora, $tanarId, $kit, $tankorId, $teremId, $tipus, $eredet);
- return db_query($q, array('fv' => 'oraFelvetele', 'modul' => 'naplo', 'values' => $v), $lr);
-
- }
-
- function getSzabadTankorok($dt, $ora) {
-
- // Összes tankör
- $ret = $osszesTankorIds = getTankorByTanev($tanev = __TANEV, array('result' => 'idonly'));
- // Az adott időpontban foglalt tankörök
- $q = "SELECT tankorId FROM ora WHERE dt='%s' AND ora=%u AND tipus IN ('normál','normál máskor','helyettesítés','felügyelet','összevonás')";
- $v = array($dt, $ora);
- $tankorIds = db_query($q, array('fv' => 'getSzabadTankorok', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $v));
- if (is_array($tankorIds) && count($tankorIds) > 0) {
- // A tankörök tagjai
- $q = "SELECT DISTINCT diakId FROM ".__INTEZMENYDBNEV.".tankorDiak
- WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
- AND (kiDt>='%s' OR kiDt is null) AND beDt<='%s' ORDER BY diakId";
- $v = mayor_array_join($tankorIds, array($dt, $dt));
- $diakIds = db_query($q, array('fv' => 'getSzabadTankorok', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $v));
- // A foglalt diákok tankörei
- $foglaltTankorIds = getTankorIdsByDiakIds($diakIds, array('tanev'=>__TANEV,'tolDt'=>$dt,'igDt'=>$dt, 'felmentettekkel'=>false));
- if (!is_array($foglaltTankorIds)) $foglaltTankorIds = $tankorIds;
- $ret = array_diff($osszesTankorIds, $foglaltTankorIds);
- }
-
- /* és vegyük hozzá a szabadon felvehető tanköröket, hm? */
- $pluszNemKotelezoTankorok = getTankorByTanev($tanev, array('result'=>'idonly','jelenlet'=>'nem kötelező' ));
- $ret = mayor_array_join($ret,$pluszNemKotelezoTankorok);
- if (is_array($ret) && count($ret)>0) {
- $q = "SELECT DISTINCT tankor.tankorId,tankorNev
- FROM ".__INTEZMENYDBNEV.".tankor LEFT JOIN ".__INTEZMENYDBNEV.".tankorSzemeszter USING (tankorId)
- WHERE tanev=".__TANEV." AND tankorId IN (".implode(',', array_fill(0, count($ret), '%u')).") ORDER BY tankorNev";
- return db_query($q, array('fv' => 'getSzabadTankorok', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $ret));
- } else {
- return $ret;
- }
-
- }
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/specialis.php b/mayor-orig/www/include/modules/naplo/haladasi/specialis.php
deleted file mode 100644
index 8c78d49d..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/specialis.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-/*
- module: naplo
-*/
-
- function napiOrakTorlese($dt, $tipus) {
-
-
- $lr = db_connect('naplo', array('fv' => 'napiOrakTorlese'));
-
- $q = "DELETE FROM ora WHERE dt='%s'";
- $r = db_query($q, array('fv' => 'napiOrakTorlese', 'modul' => 'naplo', 'values' => array($dt)), $lr);
- if (!$r) {
- db_close($lr);
- return false;
- }
-
- if ($tipus !== '') {
- $q = "UPDATE nap SET tipus='%s' WHERE dt='%s'";
- $r = db_query($q, array('fv' => 'napiOrakTorlese', 'modul' => 'naplo', 'values' => array($tipus, $dt)), $lr);
- // ?? Mi van, ha szünetről tanítási nap-ra állítjuk? Marad a 0. órarendi hét? ??
- }
- db_close($lr);
- return $r;
-
- }
-
- function orakBetoltese($dt, $orarendiHet) {
-
-
- $lr = db_connect('naplo', array('fv' => 'orakBetoltese'));
-
- // Ellenőrizzük, hogy van-e már betöltve óra az adott napra
- $q = "SELECT COUNT(oraId) FROM ora WHERE dt='%s'";
- $num = db_query($q, array('fv' => 'orakBetoltese', 'modul' => 'naplo', 'values' => array($dt), 'result'=>'value'), $lr);
- if ($num === false) {
- db_close($lr);
- return false;
- }
- if ($num > 0) {
- $_SESSION['alert'][] = 'message:wrong_data:orakBetoltese:van már betöltve óra az adott napon:'.$dt;
- db_close($lr);
- return false;
- }
-
- // Ha az órarendi órákat töltjük be, akkor a nap csak tanítási nap típusú lehet
- $q = "UPDATE nap SET tipus='tanítási nap',orarendiHet=%u WHERE dt='%s'";
- $r = db_query($q, array('fv' => 'orakBetoltese', 'modul' => 'naplo', 'values' => array($orarendiHet, $dt)), $lr);
- if (!$r) {
- db_close($lr);
- return false;
- }
-
- // Órák betöltése
- checkNaplo($dt, $lr);
- db_close($lr);
- return true;
-
- }
-
- function specialisNap($dt, $celOra, $het, $nap, $ora, $olr = null) {
-
- if ($olr == '') $lr = db_connect('naplo', array('fv' => 'specialisNap'));
- else $lr = $olr;
- db_start_trans($lr);
-
- // A (speciális) tanítási napokhoz rendelt osztályok
- $q = "SELECT osztalyId FROM nap LEFT JOIN munkatervOsztaly USING (munkatervId) WHERE dt='%s'
- AND tipus IN ('tanítási nap','speciális tanítási nap') AND osztalyId IS NOT NULL"; // null akkor lehet, ha nincs hozzárendelve egyetlen osztály sem egy munkatervhez...
- $v = array($dt);
- $osztalyIds = db_query($q, array('fv' => 'specialisNap/osztalyIds', 'modul' => 'naplo', 'result' => 'idonly', 'values' => $v), $lr);
- if (!is_array($osztalyIds) || count($osztalyIds) == 0) {
- db_rollback($lr, 'specialisNap/#1');
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // Érintett tankörök
- $q = "SELECT DISTINCT tankorId FROM ".__INTEZMENYDBNEV.".tankorOsztaly WHERE osztalyId IN (".implode(',',$osztalyIds).")";
- $tankorIds = db_query($q, array('fv'=>'specialisNap/tankorIds', 'modul'=>'naplo', 'result'=>'idonly'), $lr);
- if (!is_array($tankorIds) || count($tankorIds) == 0) {
- db_rollback($lr, 'specialisNap/#2');
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // Órák betöltése sávonként
- $ok = true;
- for ($i = 0; $i < count($celOra); $i++) {
- if ($het[$i] != '' and $nap[$i] != '' and $ora[$i] != '') {
-
- $napszam = date('w',strtotime($nap[$i]));
- if ($napszam == 0) $napszam = 7;
-
- $q = "INSERT INTO ora (dt,ora,ki,tankorId,teremId,tipus,eredet)
- SELECT '%s', %u, orarendiOra.tanarId,orarendiOraTankor.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 ora=%u
- AND tolDt<='%s'
- AND (igDt IS NULL OR igDt>='%s')";
- $v = array($dt, $celOra[$i], $het[$i], $nap[$i], $ora[$i], $dt, $dt);
- $r = db_query($q, array('fv' => 'specialisNap', 'modul' => 'naplo', 'values' => $v), $lr);
- if (!$r) $ok = false;
-
- } // minden adat megvan
- } // end for
- if (!$ok) {
- db_rollback($lr, 'specialisNap/#3');
- if ($olr == '') db_close($lr);
- return false;
- }
-
- // speciális tanítási nap-ra állítjuk a tanítási napokat
- $q = "UPDATE nap SET tipus='speciális tanítási nap',orarendiHet=0 WHERE dt='%s' AND tipus='tanítási nap'";
- $r = db_query($q, array('fv' => 'specialisNap', 'modul' => 'naplo', 'values' => array($dt)), $lr);
- if (!$r) {
- db_rollback($lr, 'specialisNap/#4');
- if ($olr == '') db_close($lr);
- return false;
- }
-
- db_commit($lr);
- if ($olr == '') db_close($lr);
- return true;
- }
-
- function getSzabadOrak($dt) {
-
- $q = "SELECT DISTINCT ora FROM ora
- WHERE dt='%s' AND tipus NOT LIKE 'elmarad%%'";
- $foglaltOrak = db_query($q, array('fv' => 'getSzabadOrak', 'modul' => 'naplo', 'result' => 'idonly', 'values' => array($dt)));
- if (is_array($foglaltOrak)) {
- $szabadOrak = array();
- for ($i = getMinOra(); $i <= getMaxOra(); $i++) {
- if (!in_array($i, $foglaltOrak)) $szabadOrak[] = $i;
- }
- }
-
- return $szabadOrak;
-
- }
-
- function orakTorlese($dt, $Orak) {
-
-
- $lr = db_connect('naplo', array('fv' => 'orakTorlese'));
-
- $q = "DELETE FROM ora WHERE dt='%s' AND ora IN (".implode(',', array_fill(0, count($Orak), '%u')).")";
- array_unshift($Orak, $dt);
- $r = db_query($q, array('fv' => 'orakTorlese', 'modul' => 'naplo', 'values' => $Orak), $lr);
- if (!$r) {
- db_close($lr);
- return false;
- }
-
- $q = "UPDATE nap SET tipus='speciális tanítási nap', orarendiHet=0 WHERE dt='%s'";
- $r = db_query($q, array('fv' => 'orakTorlese', 'modul' => 'naplo', 'values' => array($dt)), $lr);
- db_close($lr);
- return $r;
- }
-
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/stat.php b/mayor-orig/www/include/modules/naplo/haladasi/stat.php
deleted file mode 100644
index 45d1d9de..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/stat.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- function munkatervTankor($tankorIds) {
-
- $q = "SELECT DISTINCT munkatervId, tankorId FROM munkatervOsztaly LEFT JOIN ".__INTEZMENYDBNEV.".tankorOsztaly USING (osztalyId)
- WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")";
- return db_query($q, array('fv' => 'munkatervTankor', 'modul'=>'naplo', 'result'=>'keyvalues','values'=>$tankorIds));
- }
-
- function tankorMunkaterv($tankorIds) {
-
- $q = "SELECT DISTINCT tankorId, munkatervId FROM munkatervOsztaly LEFT JOIN ".__INTEZMENYDBNEV.".tankorOsztaly USING (osztalyId)
- WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).") ORDER BY tankorId, munkatervId";
- return db_query($q, array('fv' => 'tankorMunkaterv', 'modul'=>'naplo', 'result'=>'keyvalues','values'=>$tankorIds));
- }
-*/
- function getTankorStat($tankorIds, $dt = '') {
-
- global $_TANEV;
-
- if ($dt == '') $dt = date('Y-m-d');
- $szDb = count($_TANEV['szemeszter']);
- $ret = array();
-
- // Van-e nem végzős tanuló az adott tankörökben --> a tankör végzős-e
- $ret['vegzos'] = tankorokVegzosekE($tankorIds, __TANEV, array('tagokAlapjan' => true, 'tolDt' => null, 'igDt' => null));
-
- // tervezett óraszámok lekérdezése
- $q = "SELECT szemeszter, tankorId, tankorNev, oraszam FROM ".__INTEZMENYDBNEV.".tankorSzemeszter
- WHERE tanev=".__TANEV." AND tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
- ORDER BY tankorId, szemeszter";
- $ret['tervezett'] = db_query($q, array(
- 'fv' => 'getTankorStat', 'modul' => 'naplo_intezmeny', 'result' => 'multiassoc', 'keyfield' => 'tankorId', 'values' => $tankorIds
- ));
- foreach ($ret['tervezett'] as $tankorId => $tankorAdat) {
- $ret['tanitasiHetekSzama'][$tankorId] = getTanitasiHetekSzama(array('tankorId'=>$tankorId,'vegzos'=>$ret['vegzos'][$tankorId]));
- $oraszam = 0;
- for ($i = 0; $i < count($tankorAdat); $i++) {
- $oraszam += $tankorAdat[$i]['oraszam'];
- }
- $ret['tervezett'][$tankorId]['hetiOraszam'] = $oraszam / $szDb;
- $ret['tervezett'][$tankorId]['evesOraszam'] = $oraszam / $szDb * $ret['tanitasiHetekSzama'][$tankorId];
- }
-
- // megtartott órák száma
- if (defined('__ORASZAMOT_NOVELO_TIPUSOK')) {
- $oraszamNoveloTipus = explode(',', __ORASZAMOT_NOVELO_TIPUSOK);
- } else {
- $_SESSION['alert'][] = 'info:missing_constant:__ORASZAMOT_NOVELO_TIPUSOK';
- $oraszamNoveloTipus = array('normál', 'normál máskor', 'helyettesítés', 'összevonás');
- }
- $q = "SELECT tankorId, COUNT(oraId) AS oraSzam FROM ora
- WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
- AND tipus IN ('".implode("','", array_fill(0, count($oraszamNoveloTipus), '%s'))."')
- AND dt <= '%s' GROUP BY tankorId";
- $v = mayor_array_join($tankorIds, $oraszamNoveloTipus, array($dt));
- $ret['megtartott'] = db_query($q, array(
- 'fv' => 'getTankorStat', 'modul' => 'naplo', 'result' => 'assoc', 'keyfield' => 'tankorId', 'values' => $v
- ));
-
- if (is_array($tankorIds) && count($tankorIds)>0) {
-
- $q = "SELECT tankorId,COUNT(DISTINCT dt, ora) AS oraSzam
- FROM (nap LEFT JOIN munkatervOsztaly USING (munkatervId))
- LEFT JOIN (
- orarendiOra
- LEFT JOIN orarendiOraTankor USING (tanarId,osztalyJel,targyJel)
- LEFT JOIN ".__INTEZMENYDBNEV.".tankorOsztaly USING (tankorId)
- )
- ON (((DAYOFWEEK(dt)+5) MOD 7)+1 = orarendiOra.nap)
- AND orarendiOra.het=nap.orarendiHet
- AND orarendiOra.tolDt<=dt AND orarendiOra.igDt>=dt
- AND munkatervOsztaly.osztalyId = tankorOsztaly.osztalyId
- WHERE tanarId IS NOT NULL
- AND tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
- AND dt > '%s'
- GROUP BY tankorId";
- $v = mayor_array_join($tankorIds, array($dt));
- $ret['becsult'] = db_query($q, array(
- 'fv' => 'getTankorStat/becsült', 'modul' => 'naplo', 'result' => 'assoc', 'keyfield' => 'tankorId', 'values' => $v
- ));
-
- // beírt érdemjegyek száma
- $q = "SELECT tankorId, COUNT(jegy) AS jegyDb FROM jegy WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
- AND dt <= '%s' GROUP BY tankorId";
- $v = $tankorIds; array_push($v, $dt);
- $ret['jegyekSzama'] = db_query($q, array(
- 'fv' => 'getTankorStat/jegyekSzama', 'modul' => 'naplo', 'result' => 'keyvaluepair', 'values' => $v
- ));
- // tankörlétszámok...
- array_push($v, $dt);
- $q = "SELECT tankorId, COUNT(*) AS db FROM tankorDiak WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
- AND beDt <= '%s' AND (kiDt IS NULL OR '%s' <= kiDt) GROUP BY tankorId";
- $ret['letszam'] = db_query($q, array(
- 'fv' => 'getTankorStat/letszam', 'modul' => 'naplo_intezmeny', 'result' => 'keyvaluepair', 'values' => $v
- ));
- }
-
- return $ret;
- }
-
-?>
diff --git a/mayor-orig/www/include/modules/naplo/haladasi/teremModositas.php b/mayor-orig/www/include/modules/naplo/haladasi/teremModositas.php
deleted file mode 100644
index 1f104649..00000000
--- a/mayor-orig/www/include/modules/naplo/haladasi/teremModositas.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
- /* 2010 GPL */
- function getOraIdByPattern($P) {
-
- $v = array($P['dt'], $P['ora'], $P['ki'], $P['kit'], $P['tankorId'], $P['teremId']);
- $q = "SELECT oraId FROM ora WHERE dt='%s' AND ora=%u and (ki=%u or kit=%u or tankorId=%u or teremId=%u) AND tipus!='elmarad' AND tipus!='elmarad máskor'";
- $r = db_query($q, array( 'fv' => 'getOraIdByPattern', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v, 'debug'=>false ));
- if (count($r)!==1)
- return false;
- else
- return $r[0]['oraId'];
- return false;
- }
-
- function checkHaladasiSzabadTerem($dt,$ora,$teremId,$lr) {
- $v = array($dt,$ora,$teremId);
- $q = "SELECT count(*) as db FROM `ora` WHERE `dt`='%s' AND `ora`=%u AND `teremId`=%u AND tipus!='elmarad' AND tipus!='elmarad máskor'";
- return (db_query($q, array( 'fv' => 'checkHaladasiSzabadTerem', 'modul' => 'naplo', 'result'=>'value','values' => $v), $lr) === "0");
- }
-
- function haladasiTeremModositas($oraId,$teremId,$lr) {
- if (!is_numeric($oraId) || !is_numeric($teremId)) return false;
- $v = array($teremId,$oraId);
- $q = "UPDATE ora SET teremId=%u WHERE oraId=%u";
- return db_query($q, array( 'fv' => 'haladasiTeremModositas',
- 'modul' => 'naplo', 'values' => $v), $lr);
- }
-
-?>