aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/mayor-naplo/www/include/modules
diff options
context:
space:
mode:
Diffstat (limited to 'mayor-orig/mayor-naplo/www/include/modules')
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php24
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorSzemeszter.php2
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php45
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php24
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorModifier.php61
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php12
6 files changed, 139 insertions, 29 deletions
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php
index 737b8d35..ec36ad73 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php
@@ -4,24 +4,30 @@
function ujTankor($ADAT) {
-
$return = false;
$lr = db_connect('naplo_intezmeny', array('fv' => 'ujTankor'));
if (!$lr) return false;
/* pre-check variables */
- //...
+ if ($ADAT['tipus']!='') {
+ $ADAT['tankorNevExtra'] = $ADAT['tipus'];
+ } elseif (isset($ADAT['tankorId']) && $ADAT['tankorId']>0) {
+ $q = "SELECT IF(tankorJel IS NOT NULL AND INSTR(tankorNev,tankorJel)!=0, trim(substring(trim(substring_index(tankorNev,targyNev,-1)),length(tankorJel)+1)),
+trim(substring_index(tankorNev,targyNev,-1))) AS tankorNevExtra FROM tankorSzemeszter LEFT JOIN tankor USING (tankorId) LEFT JOIN targy USING (targyId)
+LEFT JOIN tankorTipus USING (tankorTipusId) WHERE tankorId=%u AND tanev=%u ORDER BY tanev,szemeszter DESC LIMIT 1";
+ $ADAT['tankorNevExtra'] = db_query($q, array('fv' => 'genTankorNev(ujTankor)', 'modul' => 'naplo_intezmeny', 'result'=>'value', 'values' => array($ADAT['tankorId'],__TANEV), 'debug'=>false), $lr);
+ }
/* pre-check */
if (isset($ADAT['tankorId']) && $ADAT['tankorId']!='') {
$return = $tankorId = $ADAT['tankorId'];
$_tankorCn = $ADAT['tankorCn'];
- $q = "UPDATE tankor SET felveheto=%u, min=%u, max=%u, kovetelmeny='%s', tankorCn='%s' WHERE tankorId=%u";
- $v = array($ADAT['felveheto'], $ADAT['min'], $ADAT['max'], $ADAT['kovetelmeny'],$_tankorCn,$tankorId);
+ $q = "UPDATE tankor SET felveheto=%u, min=%u, max=%u, kovetelmeny='%s', tankorCn='%s', tankorNevExtra='%s' WHERE tankorId=%u";
+ $v = array($ADAT['felveheto'], $ADAT['min'], $ADAT['max'], $ADAT['kovetelmeny'],$_tankorCn, $ADAT['tankorNevExtra'], $tankorId);
db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'values' => $v));
$tanarFelvesz = false;
} else {
- $q = "INSERT INTO tankor (targyId,felveheto,min,max,kovetelmeny) VALUES (%u, '%s', %u, %u,'%s')";
- $v = array($ADAT['targyId'], $ADAT['felveheto'], $ADAT['min'], $ADAT['max'], $ADAT['kovetelmeny']);
+ $q = "INSERT INTO tankor (targyId,felveheto,min,max,kovetelmeny,tankorNevExtra) VALUES (%u, '%s', %u, %u,'%s','%s')";
+ $v = array($ADAT['targyId'], $ADAT['felveheto'], $ADAT['min'], $ADAT['max'], $ADAT['kovetelmeny'], $ADAT['tankorNevExtra']);
$return = $tankorId = db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v), $lr);
$tanarFelvesz = true;
}
@@ -120,7 +126,7 @@
$nev = $K[0].'-'.$K[count($K)-1].'.';
} else { // ekkorra már elballagott minden osztaly...
$nev = false;
- $_SESSION['alert'][] = '::Minden osztály elballagott';
+ $_SESSION['alert'][] = '::Minden osztály elballagott:'.serialize($OSZTALYOK).serialize($TMP);
}
} else {
$nev = false; // adott szemeszterbe nem jár osztály
@@ -133,8 +139,8 @@
$q = "SELECT tankorJel FROM tankor LEFT JOIN tankorTipus USING (tankorTipusId) WHERE tankorId=%u";
$tankorJel = db_query($q, array('fv' => 'genTankorNev', 'modul' => 'naplo_intezmeny', 'result'=>'value', 'values' => array($tankorId), 'debug'=>false), $lr);
- if ($tankorJel!='') $nev .= $tankorJel.' '.$ADAT['tipus'];
- else $nev .= $ADAT['tipus'];
+ if ($tankorJel!='') $nev .= $tankorJel.' '.$ADAT['tankorNevExtra'];
+ else $nev .= $ADAT['tankorNevExtra']; //tankorNevExtra = tipus
$q = "REPLACE INTO tankorSzemeszter (tankorId,tanev,szemeszter,oraszam,tankorNev) VALUES (%u, %u, %u, %f, '%s')";
if ($ADAT['tanev'] < __TANEV || $ADAT['tankorNevMegorzes']===true) { // a neve már ne változzon, és az óraszáma?
$q1 = "SELECT tankorNev FROM tankorSzemeszter WHERE tankorId=%u AND tanev=%u AND szemeszter=%u";
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorSzemeszter.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorSzemeszter.php
index fcd411c4..982d905b 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorSzemeszter.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorSzemeszter.php
@@ -92,7 +92,7 @@
}
} else {
// insert
- $tankorNev = _createName($M, array($M['tanev'].'/'.$M['szemeszter']), $tankorNevek[$M['tankorId']]);
+ $tankorNev = _createName($M, array($M['tanev'].'/'.$M['szemeszter']), $tankorNevek[$M['tankorId']]); // todo setTankorNev() függvénnyel inkább, tankor.tankorNevExtra
if ($tankorNev != '') {
array_push($v, $M['tankorId'], $M['tanev'], $M['szemeszter'], $M['oraszam'], $tankorNev);
$Values[] = "(%u, %u, %u, %f, '%s')";
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php
index 16b1bbbc..49e24161 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php
@@ -37,7 +37,7 @@
function getTankorAdatByIds($tankorIds, $SET = array('tanev' => __TANEV, 'dt' => '')) {
- if (!is_array($tankorIds)) return false;
+ if (!is_array($tankorIds)|| count($tankorIds)==0) return false;
if (in_array('',$tankorIds)==true) {
// ez előállhat akkor is, ha valamiért az órarendben NULL tankorId van (speckó óra!)
// $_SESSION['alert'][] = 'message:invalid_array_value_exception:(getTankorAdatByIds:tankorIds:contains empty string)';
@@ -56,8 +56,7 @@
$tanev = __TANEV;
$felev = 1;
}
- $q = "SELECT * FROM tankor
- LEFT JOIN tankorSzemeszter ON (tankor.tankorId=tankorSzemeszter.tankorId)
+ $q = "SELECT * FROM tankor LEFT JOIN tankorSzemeszter ON (tankor.tankorId=tankorSzemeszter.tankorId)
WHERE tankor.tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).") AND tanev=%u AND szemeszter=%u";
array_push($tankorIds, $tanev, $felev);
@@ -985,9 +984,10 @@
// is_resource mysqli esetén nem jó (object)
if (!$olr) $lr = db_connect('naplo_intezmeny'); else $lr = $olr;
- // A tankör csoportjának lekérdezése
- $q = "SELECT tankorId FROM ".__TANEVDBNEV.".tankorCsoport
- WHERE csoportId=(SELECT csoportId FROM ".__TANEVDBNEV.".tankorCsoport
+ // A tankör csoportjának lekérdezése (egy tankor több csoportban is benne lehet)
+ // Kérdés: akkor nem ugyanaz a két csoport? :)
+ $q = "SELECT DISTINCT tankorId FROM ".__TANEVDBNEV.".tankorCsoport
+ WHERE csoportId IN (SELECT csoportId FROM ".__TANEVDBNEV.".tankorCsoport
WHERE tankorId=%u)";
$ret = db_query($q, array(
'fv' => 'getTankorCsoportTankoreiByTankorId', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => array($tankorId)
@@ -1001,6 +1001,39 @@
}
+ function getTankorCsoportTankoreiByCsoportId($csoportId, $olr='') {
+
+ if (!$olr) $lr = db_connect('naplo'); else $lr = $olr;
+
+ $q = "SELECT tankorId FROM ".__TANEVDBNEV.".tankorCsoport WHERE csoportId =%u";
+ $ret = db_query($q, array(
+ 'fv' => 'getTankorCsoportTankoreiByCsoportId', 'modul' => 'naplo', 'result' => 'idonly', 'values' => array($csoportId)
+ ), $lr);
+
+ for ($i=0; $i<count($ret); $i++) {
+ $ret[$i] = array('tankorAdat'=>getTankorAdat($ret[$i]), 'tankorId' => $ret[$i]);
+ }
+ if (!$olr) db_close($lr);
+
+ return $ret;
+
+ }
+
+ function getTankorCsoportByTankorId($tankorId) {
+
+ if (!$olr) $lr = db_connect('naplo'); else $lr = $olr;
+
+ $q = "SELECT csoportId,csoportNev FROM ".__TANEVDBNEV.".tankorCsoport LEFT JOIN ".__TANEVDBNEV.".csoport USING (csoportId) WHERE tankorId =%u";
+ $ret = db_query($q, array(
+ 'fv' => 'getTankorCsoportTankoreiByCsoportId', 'modul' => 'naplo', 'result' => 'indexed', 'values' => array($tankorId)
+ ), $lr);
+ if (!$olr) db_close($lr);
+
+ return $ret;
+
+ }
+
+
function getTankorLetszam($tankorId,$ADAT=array('refDt'=>'', 'tolDt'=>'', 'igDt'=>''),$olr='') {
if ($olr!='') $lr = $olr; else $lr = db_connect('naplo_intezmeny');
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php
index cb0ad2f5..39e03969 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php
@@ -8,8 +8,9 @@
/* Általános függvények a tankörbe be és kivételhez */
- function tankorDiakFelvesz($ADAT) {
+ function tankorDiakFelvesz($ADAT, $olr='') {
+ $lr = ($olr != '') ? $olr : db_connect('naplo_intezmeny');
$tankorId = $ADAT['tankorId'];
$diakId = $ADAT['diakId'];
@@ -39,7 +40,7 @@
$q = "SELECT tankorId FROM tankorDiakFelmentes WHERE tankorId IN (".implode(',',$UTKOZO_TANKORIDS).") AND diakId=%u AND felmentesTipus='óralátogatás alól' AND nap is null AND ora is null AND
beDt<='%s' AND (kiDt IS NULL or kiDt >='%s')";
$values = array($diakId, $tolDt, $tolDt);
- $FELMENTETTTANKORIDS = db_query($q, array('fv' => 'tankorDiakFelvesz', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $values));
+ $FELMENTETTTANKORIDS = db_query($q, array('fv' => 'tankorDiakFelvesz', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $values), $lr);
for ($j=0; $j<count($FELMENTETTTANKORIDS); $j++) {
$_tankorId = $FELMENTETTTANKORIDS[$j];
}
@@ -58,18 +59,22 @@
//---
// Ellenőrizzük a tankörlétszámot és maximumot (csak ref dátumra...)
- if (_checkTankorMinMax($tankorId,array('diff'=>1,'refDt'=>$ADAT['tolDt'])) == 'tankor_max_reached')
- {
- $_SESSION['alert'][] = 'info:tankor_max_reached';
- return false;
+ if ($ADAT['NO_MIN_CONTROL'] !== true) {
+ if (_checkTankorMinMax($tankorId,array('diff'=>1,'refDt'=>$ADAT['tolDt'])) == 'tankor_max_reached')
+ {
+ $_SESSION['alert'][] = 'info:tankor_max_reached';
+ return false;
+ }
}
//--
// Main()
{
- tankorDiakTorol( array('tankorIds'=>$TankorIds, 'diakId'=> $diakId, 'tolDt'=> $tolDt,'igDt'=> $igDt, 'utkozes'=>'nemEllenoriz', 'MIN_CONTROL'=>false) );
+
+ tankorDiakTorol( array('tankorIds'=>$TankorIds, 'diakId'=> $diakId, 'tolDt'=> $tolDt,'igDt'=> $igDt, 'utkozes'=>'nemEllenoriz', 'MIN_CONTROL'=>false), $lr );
$v = array();
+
for ($i = 0; $i < count($TankorIds); $i++) {
$_tankorId = $TankorIds[$i];
//$_kovetelmeny = $TankorAdat[$_tankorId]['kovetelmeny']; // vagy nem ez. diák statusatol is függ...
@@ -81,9 +86,11 @@
$V[] = "(%u, %u, '%s', NULLIF('%s',''))";
}
$q = "INSERT INTO tankorDiak (tankorId,diakId,beDt,kiDt) VALUES ". implode(',',$V);
- db_query($q, array('fv' => 'tankorDiakFelvesz', 'modul' => 'naplo_intezmeny', 'values' => $v) );
+ db_query($q, array('fv' => 'tankorDiakFelvesz', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr );
}
+ if ($olr=='') db_close($lr);
+
}
function diakTankorMagantanulo($diakId, $tolDt, $igDt = NULL, $utkozes = 'ellenorzes', $tanev = __TANEV) {
@@ -193,7 +200,6 @@
tolDt, igDt
*/
-
// esetleges külső tranzakciókhoz!
$lr = ($olr != '') ? $olr : db_connect('naplo_intezmeny');
// A törlendő időszakra beírt hiányzás, vagy jegy okozhat ütközést. Ekkor vagy automatikusan töröljük a hibás bejegyzéseket,
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorModifier.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorModifier.php
index a344ab7b..7ab319fc 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorModifier.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorModifier.php
@@ -1,6 +1,7 @@
<?php
require_once('include/modules/naplo/share/tankorBlokk.php');
+ require_once('include/modules/naplo/share/tankorDiakModifier.php');
function setTankorNevByDiakok($tankorId, $tankorNevExtra = null, $olr = null) { // módosítja a tankorOsztaly hozzárendelést
if (!$olr) $lr = db_connect('naplo_intezmeny', array('fv' => 'ujTankor'));
@@ -38,6 +39,11 @@
$q = "SELECT IF(tankorJel IS NOT NULL AND INSTR(tankorNev,tankorJel)!=0, trim(substring(trim(substring_index(tankorNev,targyNev,-1)),length(tankorJel)+1)), trim(substring_index(tankorNev,targyNev,-1))) AS tankorNevExtra FROM tankorSzemeszter LEFT JOIN tankor USING (tankorId) LEFT JOIN targy USING (targyId) LEFT JOIN tankorTipus USING (tankorTipusId) WHERE tankorId=%u AND tanev=%u ORDER BY tanev,szemeszter DESC LIMIT 1";
$tankorNevExtra = db_query($q, array('fv' => 'genTankorNev', 'modul' => 'naplo_intezmeny', 'result'=>'value', 'values' => array($tankorId,__TANEV), 'debug'=>false), $lr);
}
+ if ($tankorNevExtra!='') {
+ $q = "UPDATE tankor SET tankorNevExtra = '%s' WHERE tankorId=%u";
+ $v = array($tankorNevExtra,$tankorId);
+ db_query($q, array('fv' => 'setTankorNev', 'modul' => 'naplo_intezmeny', 'values' => $v, 'debug'=>false), $lr);
+ }
$q = "SELECT tankorJel FROM tankor LEFT JOIN tankorTipus USING (tankorTipusId) WHERE tankorId=%u";
$tankorJel = db_query($q, array('fv' => 'genTankorNev', 'modul' => 'naplo_intezmeny', 'result'=>'value', 'values' => array($tankorId), 'debug'=>false), $lr);
@@ -100,9 +106,12 @@
if ($tankorJel!='') $nev .= $tankorJel.' '.$tankorNevExtra;
else $nev .= $tankorNevExtra;
if ($_tanev >= __TANEV) {
- $q = "UPDATE tankorSzemeszter SET tankorNev = '%s' WHERE tankorId=%u AND tanev=%u AND szemeszter=%u";
- $v = array($nev,$tankorId,$_tanev,$_szemeszter);
- if ($nev!='') db_query($q, array('fv' => 'setTankorNev', 'modul' => 'naplo_intezmeny', 'values' => $v, 'debug'=>false), $lr);
+ if ($nev!='') {
+ $q = "UPDATE tankorSzemeszter SET tankorNev = '%s' WHERE tankorId=%u AND tanev=%u AND szemeszter=%u";
+ $v = array($nev,$tankorId,$_tanev,$_szemeszter);
+ db_query($q, array('fv' => 'setTankorNev', 'modul' => 'naplo_intezmeny', 'values' => $v, 'debug'=>false), $lr);
+
+ }
} else {
// a neve már ne változzon, és az óraszáma?
/* $q1 = "SELECT tankorNev FROM tankorSzemeszter WHERE tankorId=%u AND tanev=%u AND szemeszter=%u";
@@ -495,4 +504,50 @@
return $ok;
}
+ function addTankorToTankorCsoport($tankorId,$csoportId) {
+
+ global $_TANEV;
+ $now = time();
+ if ($now >= strtotime($_TANEV['kezdesDt']) && $now <= strtotime($_TANEV['zarasDt'])) {
+ $refDt = date('Y-m-d');
+ } else {
+ $refDt = $_TANEV['kezdesDt'];
+ }
+
+ // tankörnévsorok egyeztetése:
+ $DIAK = getTankorDiakjaiByInterval($tankorId, __TANEV, $refDt, $refDt);
+ $R = getTankorCsoportTankoreiByCsoportId($csoportId);
+ for ($i=0; $i<count($R); $i++) {
+ if ($tankorId != $R[$i]['tankorId']) $TANKOROK[] = $R[$i]['tankorId'];
+ }
+
+ if(count($DIAK['idk'])==0 && $TANKOROK[0]>0) {
+ $_DIAK = getTankorDiakjaiByInterval($TANKOROK[0], __TANEV, $refDt, $refDt);
+ for ($i=0; $i<count($_DIAK['idk']); $i++) {
+ $_diakId = $_DIAK['idk'][$i];
+ $D = $_DIAK['adatok'][$_diakId][0];
+ tankorDiakFelvesz(
+ array('tankorId'=>$tankorId,
+ 'diakId'=>$_diakId,
+ 'tolDt'=>$D['beDt'],
+ 'igDt'=>$D['igDt'],
+ 'jovahagyva' => 1
+ )
+ );
+ }
+ } else {
+ for ($i=0; $i<count($TANKOROK); $i++) {
+ $_DIAK = getTankorDiakjaiByInterval($TANKOROK[$i], __TANEV, $refDt, $refDt);
+ if ($DIAK['idk'] != $_DIAK['idk']) {
+ $_SESSION['alert'][] = 'alert:diaknévsorok nem egyeznek a következő tankörökben:'.$TANKOROK[$i].' '.$tankorId;
+ return false;
+ }
+ }
+ }
+
+ $q = "INSERT IGNORE INTO tankorCsoport (tankorId,csoportId) VALUES (%u,%u)";
+ $v = array($tankorId,$csoportId);
+ db_query($q, array('fv'=>'addTankorToTankorCsoport','modul'=>'naplo','values'=>$v,'result'=>'insert'));
+
+ }
?>
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php
index f7fe6357..12be86bf 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php
@@ -6,7 +6,7 @@
$q = "SELECT csoportId,csoportNev,tankorId,getNev(tankorId,'tankor') AS tankorNev FROM csoport LEFT JOIN tankorCsoport USING (csoportId) WHERE csoportId=%u";
$v = array($csoportId);
$r = db_query($q, array(
- 'fv' => 'tankorCsoport', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'csoportId', 'values' => $v
+ 'fv' => 'tankorCsoport', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v
));
} else {
$q = "SELECT csoportId,csoportNev,tankorId,getNev(tankorId,'tankor') AS tankorNev FROM csoport LEFT JOIN tankorCsoport USING (csoportId)";
@@ -19,11 +19,14 @@
function getTankorCsoportByTankorIds($tankorIds) {
+ if (is_array($tankorIds) && count($tankorIds)>0) {
+
$q = "SELECT csoportId,csoportNev,tankorId FROM csoport LEFT JOIN tankorCsoport USING (csoportId)
WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")";
return db_query($q, array(
'fv' => 'tankorCsoport', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'csoportId', 'values' => $tankorIds
));
+ }
}
@@ -165,6 +168,13 @@
db_query($q, array('fv' => 'tankorCsoportTorles', 'modul' => 'naplo', 'values' => $v));
}
+ function tankorCsoportHozzarendelesTorles($csoportId, $tankorId, $tanev = __TANEV) {
+ $tanevDb = tanevDbNev(__INTEZMENY, $tanev);
+ $q = "DELETE FROM `%s`.tankorCsoport WHERE csoportId=%u AND tankorId=%u";
+ $v = array($tanevDb, $csoportId, $tankorId);
+ db_query($q, array('fv' => 'tankorCsoportHozzarendelesTorles', 'modul' => 'naplo', 'values' => $v));
+ }
+
function _setMinMax($csoportId,$lr) {
// Tankörcsoport minimum, maximum beállítás - legbővebb halmaz