diff options
author | M.Gergo | 2019-11-10 09:46:32 +0100 |
---|---|---|
committer | M.Gergo | 2019-11-10 09:46:32 +0100 |
commit | 4047b31240ac0927ee7cc575f272549f445a5b96 (patch) | |
tree | 9b71f3a0c75bb4cab7d1b38b720ed2021771fd6c /mayor-orig/mayor-naplo/www/include/modules | |
parent | abd8cfdf391410090842081422f711779978f473 (diff) | |
download | mayor-rev4569.tar.gz mayor-rev4569.zip |
Rev: 4569rev4569
Diffstat (limited to 'mayor-orig/mayor-naplo/www/include/modules')
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 |