aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/www/include/modules/naplo/intezmeny
diff options
context:
space:
mode:
authorM.Gergo2018-07-06 11:14:41 +0200
committerM.Gergo2018-07-06 11:14:41 +0200
commit43de9af71f7f4ca5731b94a06d688ae8412ba427 (patch)
tree54835de1dfcda504c02da261f0dc26885aed2e89 /mayor-orig/www/include/modules/naplo/intezmeny
parent50310b0e4513ee3fcce67351ae61e8fff851130e (diff)
downloadmayor-43de9af71f7f4ca5731b94a06d688ae8412ba427.tar.gz
mayor-43de9af71f7f4ca5731b94a06d688ae8412ba427.zip
2018/Feb/28 -i állapot hozzáadva, mint a módosítások kiindulási állapota
Diffstat (limited to 'mayor-orig/www/include/modules/naplo/intezmeny')
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/diakExport.php137
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/diakFelmentes.php6
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/diakStatusz.php12
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/diakSzulo.php98
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/diakTankorJelentkezes.php97
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/kepzes.php64
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/kepzesOraterv.php92
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/munkakozosseg.php288
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/osztaly.php474
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/tanar.php54
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/tankor.php201
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/tankorSzemeszter.php200
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/tankorTanar.php292
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php224
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/terem.php25
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/tovabbkepzes.php159
-rw-r--r--mayor-orig/www/include/modules/naplo/intezmeny/valtas.php9
17 files changed, 2432 insertions, 0 deletions
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/diakExport.php b/mayor-orig/www/include/modules/naplo/intezmeny/diakExport.php
new file mode 100644
index 00000000..7752c577
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/diakExport.php
@@ -0,0 +1,137 @@
+<?php
+
+ define('__DIAK_EXPORT_FILE',_DOWNLOADDIR.'/private/export/diakExport');
+
+ $exportFormatum = array(
+ 'alapértelmezett' => array('oId','viseltNevElotag','viseltCsaladinev','viseltUtonev','diakNaploSorszam'),
+ 'egyszerű' => array('diakigazolvanySzam','viseltNevElotag','viseltCsaladinev','viseltUtonev','diakNaploSorszam'),
+ 'osztályfőnöki' => array('diakigazolvanySzam','viseltNevElotag','viseltCsaladinev','viseltUtonev','oId','diakNaploSorszam'),
+ 'taninformTanuló' => array('oId','diakigazolvanySzam','viseltNevElotag','viseltCsaladinev','viseltUtonev','szuleteskoriNevElotag',
+ 'szuleteskoriCsaladinev','szuleteskoriUtonev','szuletesiHely','szuletesiIdo','anyaSzuleteskoriNevElotag','anyaSzuleteskoriCsaladinev',
+ 'anyaSzuleteskoriUtonev','allampolgarsag','lakhelyOrszag','lakhelyHelyseg',
+ 'lakhelyIrsz','lakhelyKozteruletNev','lakhelyKozteruletJelleg','lakhelyHazszam','lakhelyEmelet','lakhelyAjto','tartOrszag','tartHelyseg',
+ 'tartIrsz','tartKozteruletNev','tartKozteruletJelleg','tartHazszam','tartEmelet','tartAjto','jogviszonyKezdete','diakNaploSorszam'
+ ),
+ );
+
+ function diakExport($ADAT) {
+
+ $tanevDbNev = tanevDbNev(__INTEZMENY, $ADAT['tanev']);
+ $W = array();
+ $q = "SELECT diak.*, osztalyId, osztalyJel, diakNaploSorszam(osztalyDiak.diakId,".$ADAT['tanev'].",osztalyDiak.osztalyId) AS diakNaploSorszam FROM diak LEFT JOIN osztalyDiak USING (diakId)
+ LEFT JOIN `%s`.osztalyNaplo USING (osztalyId)";
+ $v = array($tanevDbNev);
+ if (isset($ADAT['osztalyId'])) { $W[] = "osztalyId=%u"; $v[] = $ADAT['osztalyId']; }
+ if (isset($ADAT['dt'])) { $W[] = "beDt<='%s' AND ('%s'<=kiDt OR kiDt IS NULL)"; array_push($v, $ADAT['dt'], $ADAT['dt']); }
+
+ $q .= " WHERE ".implode(' AND ', $W);
+
+ $ret = db_query($q, array('fv' => 'diakExport', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v));
+
+ if (!$ret) return false;
+
+ $osztalyAdat = getOsztalyok($ADAT['tanev'], array('result' => 'assoc'));
+
+ $Szulok = getSzulok();
+ for ($i = 0; $i < count($ret); $i++) {
+ $ret[$i]['telephelyId'] = $osztalyAdat[ $ret[$i]['osztalyId'] ]['telephelyId'];
+ foreach (array('anya','apa','gondviselo') as $tipus) {
+ $szuloId = $ret[$i][ $tipus.'Id' ];
+ if (is_array($Szulok[$szuloId])) foreach ($Szulok[$szuloId] as $attr => $value) {
+ $ret[$i][ $tipus . ucfirst($attr) ] = $value;
+ } elseif ($i == 0 && is_array($Szulok[1])) foreach ($Szulok[1] as $attr => $value) {
+ $ret[$i][ $tipus . ucfirst($attr) ] = '';
+ }
+ }
+ }
+
+ return $ret;
+
+ }
+
+ function createFile($ADAT) {
+ if ($ADAT['formatum'] == 'xls' || $ADAT['formatum'] == 'xml') return generateXLSExport($ADAT['export'], $ADAT['mezok']);
+ elseif ($ADAT['formatum'] == 'pdf') return generatePDFExport($ADAT['export'], $ADAT['mezok']);
+ else return generateCSVExport($ADAT['export'], $ADAT['mezok']);
+ }
+
+ function generateCSVExport($ret, $Mezok = array()) {
+
+ $fp = fopen(__DIAK_EXPORT_FILE . '.csv', 'w');
+ if (!$fp) return false;
+
+ fputs($fp, implode(' ',$Mezok)."\n");
+ for ($i = 0; $i < count($ret); $i++) {
+ $A = array();
+ foreach ($Mezok as $attr => $attrNev) $A[] = $ret[$i][$attr];
+ $sor = implode(' ', $A)."\n";
+ fputs($fp, $sor);
+ }
+
+ fclose($fp);
+ return true;
+
+ }
+
+ function generateXLSExport($ret, $Mezok = array()) {
+
+ $fp = fopen(__DIAK_EXPORT_FILE . '.xml', 'w');
+ if (!$fp) return false;
+
+ fputs($fp, '<?xml version="1.0"?>'."\r\n");
+ fputs($fp, '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"'."\r\n"
+ .' xmlns:o="urn:schemas-microsoft-com:office:office"'."\r\n"
+ .' xmlns:x="urn:schemas-microsoft-com:office:excel"'."\r\n"
+ .' xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"'."\r\n"
+ .' xmlns:html="http://www.w3.org/TR/REC-html40">'."\r\n");
+
+ fputs($fp, ' <Styles>'."\r\n"
+ .' <Style ss:ID="s21">'."\r\n".' <NumberFormat ss:Format="Short Date" />'."\r\n".' </Style>'."\r\n"
+ .' <Style ss:ID="s22">'."\r\n".' <NumberFormat ss:Format="yyyy\.m\.d\.\ h:mm" />'."\r\n".' </Style>'."\r\n"
+ ."\r\n".' </Styles>'."\r\n");
+
+ fputs($fp, '<Worksheet ss:Name="Diák adatok">'."\r\n");
+ fputs($fp, '<Table>'."\r\n");
+
+ // fejléc
+ fputs($fp, '<Row>'."\r\n");
+ foreach ($Mezok as $index => $attr) {
+ fputs($fp, " <Cell><Data ss:Type=\"String\">".$attr."</Data></Cell>\r\n");
+ }
+ fputs($fp, '</Row>'."\r\n");
+
+
+ for ($i = 0; $i < count($ret); $i++) {
+ fputs($fp, '<Row>'."\r\n");
+ foreach ($Mezok as $attr => $attrNev) {
+ $value = $ret[$i][$attr];
+ $time = strtotime($value);
+ if (is_numeric($value))
+ fputs($fp, " <Cell><Data ss:Type=\"Number\">".$value."</Data></Cell>\r\n");
+ elseif (is_numeric($time) && $value == date('Y-m-d H:i:s', $time))
+ fputs($fp, " <Cell ss:StyleID=\"s22\"><Data ss:Type=\"DateTime\">".str_replace(' ','T',$value).'.000'."</Data></Cell>\r\n");
+ elseif (is_numeric($time) && $value == date('Y-m-d', $time))
+ fputs($fp, " <Cell ss:StyleID=\"s21\"><Data ss:Type=\"DateTime\">".$value.'T08:40:00.000'."</Data></Cell>\r\n");
+ else
+ fputs($fp, " <Cell><Data ss:Type=\"String\">".$value."</Data></Cell>\r\n");
+ }
+ fputs($fp, '</Row>'."\r\n");
+ }
+
+ fputs($fp, '</Table>'."\r\n");
+ fputs($fp, '</Worksheet>'."\r\n");
+ fputs($fp, '</Workbook>'."\r\n");
+
+ fclose($fp);
+ return true;
+
+ }
+
+ function generatePDFExport($ret, $mezok = array()) {
+
+
+ $_SESSION['alert'][] = 'message:not implemented';
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/diakFelmentes.php b/mayor-orig/www/include/modules/naplo/intezmeny/diakFelmentes.php
new file mode 100644
index 00000000..383281de
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/diakFelmentes.php
@@ -0,0 +1,6 @@
+<?php
+
+
+
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/diakStatusz.php b/mayor-orig/www/include/modules/naplo/intezmeny/diakStatusz.php
new file mode 100644
index 00000000..94944ba1
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/diakStatusz.php
@@ -0,0 +1,12 @@
+<?php
+
+ function getHibasJogviszony() {
+
+ $q = "select distinct diakId from diakJogviszony as d1 where d1.statusz=(select statusz from diakJogviszony as d2
+ where diakId=d1.diakId and d2.dt<d1.dt order by dt desc limit 1) order by diakId, dt";
+ $ret['tobbszoros'] = db_query($q, array('fv' => 'getHibasJogviszony', 'modul' => 'naplo_intezmeny', 'result' => 'idonly'));
+
+ return $ret;
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/diakSzulo.php b/mayor-orig/www/include/modules/naplo/intezmeny/diakSzulo.php
new file mode 100644
index 00000000..a6f1bd2b
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/diakSzulo.php
@@ -0,0 +1,98 @@
+<?php
+
+ function szuloAdatModositas($ADAT, $FIELDS) {
+
+ $v = array();
+ foreach($ADAT as $attr => $value) {
+ if (array_key_exists(($attr), $FIELDS) && !in_array($attr, array('szuloId'))) {
+ if ($value == '') {
+ $T[] = "`%s`=NULL";
+ array_push($v, $attr);
+ } else {
+ array_push($v, $attr, $value);
+ $T[] = "`%s`='%s'";
+ }
+ }
+ }
+ $q = "UPDATE szulo SET ".implode(',',$T)." WHERE szuloId=%u";
+ array_push($v, $ADAT['szuloId']);
+
+ return db_query($q, array('fv' => 'szuloAdatModositas', 'modul' => 'naplo_intezmeny', 'values' => $v));
+
+ }
+
+ function szuloHozzarendeles($diakId, $tipus, $ujSzuloId) {
+
+
+ if ($tipus == 'anya' || $tipus == 'apa') {
+ // Nem ellenőrzés
+ if ($tipus == 'anya') $tiltott = 'fiú';
+ else $tiltott = 'lány';
+ $q = "SELECT nem FROM szulo WHERE szuloId=%u";
+ $nem = db_query($q, array('fv' => 'szuloHozzarendeles', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => array($ujSzuloId)));
+ if ($nem == $tiltott) {
+ $_SESSION['alert'][] = 'message:tiltott_nem_'.$tiltott;
+ return false;
+ }
+ }
+
+ $q = "UPDATE diak SET `%sId` = %u WHERE diakId = %u";
+ $v = array($tipus, $ujSzuloId, $diakId);
+ $ret = db_query($q, array('fv' => 'szuloHozzarendeles', 'modul' => 'naplo_intezmeny', 'values' => $v));
+ if ($ret) return $ujSzuloId;
+ else return false;
+
+ }
+
+ function szuloHozzarendelesTorlese($diakId, $tipus) {
+
+ $q = "UPDATE diak SET `%sId` = NULL WHERE diakId = %u";
+ $v = array($tipus, $diakId);
+ return db_query($q, array('fv' => 'szuloHozzarendelesTorles', 'modul' => 'naplo_intezmeny', 'values' => $v));
+
+ }
+
+ function ujSzulo($ADAT, $FIELDS) {
+
+
+ $diakId = $ADAT['diakId'];
+ $tipus = $ADAT['tipus'];
+
+ // Kötelező paraméterek ellenőrzése
+ if ($ADAT['csaladinev'] == ''
+ || $ADAT['utonev'] == ''
+ || !in_array($tipus, array('anya','apa','gondviselo','nevelo'))
+ ) {
+ $_SESSION['alert'][] = 'message:wrong_data:ujSzulo:csaladinev - '.$_POST['csaladinev'].', utonev - '.$_POST['utonev'].', tipus - '.$tipus;
+ return false;
+ }
+
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'ujSzulo'));
+
+ foreach($ADAT as $attr => $value) {
+ if (array_key_exists(($attr), $FIELDS)) {
+ if ($value != '') {
+ $V[] = $value;
+ $A[] = $attr;
+ }
+ }
+ }
+
+ $q = "INSERT INTO szulo (`".implode('`,`', array_fill(0, count($A), '%s'))."`) VALUES ('".implode("', '", array_fill(0, count($V), '%s'))."')";
+ $v = mayor_array_join($A, $V);
+ $szuloId = db_query($q, array('fv' => 'ujSzulo', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v), $lr);
+ if ($szuloId) {
+ $q = "UPDATE diak SET `%sId` = %u WHERE diakId = %u";
+ $v = array($tipus, $szuloId, $diakId);
+ $r = db_query($q, array('fv' => 'ujSzulo', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ db_close($lr);
+ if ($r) return $szuloId;
+ else return false;
+ } else {
+ db_close($lr);
+ return false;
+ }
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/diakTankorJelentkezes.php b/mayor-orig/www/include/modules/naplo/intezmeny/diakTankorJelentkezes.php
new file mode 100644
index 00000000..e7ab1aad
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/diakTankorJelentkezes.php
@@ -0,0 +1,97 @@
+<?php
+
+
+ function getValaszthatoTankorok($tanev, $szemeszter, $OSZTALYIDK) {
+
+ if ($tanev=='') {
+ $tanevAdat = $_TANEV;
+ } else {
+ $tanevAdat = getTanevAdat($tanev);
+ }
+
+ $tanevDbNev = tanevDbNev(__INTEZMENY, $tanev);
+
+ $DT['tolDt'] = $tanevAdat['kezdesDt'];
+ $DT['igDt'] = $tanevAdat['zarasDt'] ;
+
+ $tankorBlokkok = getTankorBlokkok($tanev);
+ if (is_array($tankorBlokkok) && is_array($tankorBlokkok['idk']))
+ foreach ($tankorBlokkok['idk'] as $blokkId => $TB) {
+ for ($j=0; $j<count($TB); $j++) {
+ $TID2B[$TB[$j]][] = $blokkId;
+ }
+ }
+
+ if (is_array($OSZTALYIDK) && count($OSZTALYIDK)>0) {
+ $W = " AND osztalyId IN (".implode(',', array_fill(0, count($OSZTALYIDK), '%u')).")";
+ $v = mayor_array_join(array($tanev, $szemeszter), $OSZTALYIDK, $OSZTALYIDK, array($tanev,$tanev,$szemeszter));
+ } else {
+ $v = array($tanev, $szemeszter, $tanev, $tanev, $szemeszter);
+ }
+ $q = "SELECT DISTINCT tankorId, targyId, kovetelmeny, min, max, tanev, szemeszter, oraszam, tankorNev
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId) JOIN tankorOsztaly USING (tankorId)
+ WHERE tanev=%u and szemeszter=%u and tankor.felveheto =1".$W."
+ AND tankorId NOT IN (
+ SELECT distinct tankorId FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId) JOIN tankorOsztaly USING (tankorId)
+ WHERE tankor.felveheto =1".$W." AND (tanev<%u OR (tanev=%u AND szemeszter<%u))
+ )
+ ORDER BY tankorNev,tankor.tankorId";
+ $felvehetoTankorok = db_query($q, array('fv' => 'getValaszthatoTankorok', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v));
+
+ for ($i=0; $i<count($felvehetoTankorok); $i++) {
+ $felvehetoTankorok[$i]['blokkIdk'] = $TID2B[$felvehetoTankorok[$i]['tankorId']];
+ $felvehetoTankorok[$i]['letszam'] = getTankorLetszam($felvehetoTankorok[$i]['tankorId'],$DT);
+ $felvehetoTankorok[$i]['tanarok'] = getTankorTanaraiByInterval($felvehetoTankorok[$i]['tankorId'], array('tolDt' => $DT['tolDt'], 'igDt' => $DT['igDt'], 'result' => 'nevsor'));
+ }
+ return $felvehetoTankorok;
+ }
+
+
+
+ function getValaszthatoTankorokOrig($tanev, $szemeszter, $OSZTALYIDK) {
+
+ if ($tanev=='') {
+ $tanevAdat = $_TANEV;
+ } else {
+ $tanevAdat = getTanevAdat($tanev);
+ }
+
+ $tanevDbNev = tanevDbNev(__INTEZMENY, $tanev);
+
+ $DT['tolDt'] = $tanevAdat['kezdesDt'];
+ $DT['igDt'] = $tanevAdat['zarasDt'] ;
+
+ $tankorBlokkok = getTankorBlokkok($tanev);
+ if (is_array($tankorBlokkok) && is_array($tankorBlokkok['idk']))
+ foreach ($tankorBlokkok['idk'] as $blokkId => $TB) {
+ for ($j=0; $j<count($TB); $j++) {
+ $TID2B[$TB[$j]][] = $blokkId;
+ }
+ }
+
+ if (is_array($OSZTALYIDK) && count($OSZTALYIDK)>0) {
+ $W = " AND osztalyId IN (".implode(',', array_fill(0, count($OSZTALYIDK), '%u')).")";
+ $v = mayor_array_join(array($tanev, $szemeszter), $OSZTALYIDK, $OSZTALYIDK, array($tanev));
+ } else {
+ $v = array($tanev, $szemeszter, $tanev);
+ }
+ $q = "SELECT DISTINCT tankorId, targyId, kovetelmeny, min, max, tanev, szemeszter, oraszam, tankorNev
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId) JOIN tankorOsztaly USING (tankorId)
+ WHERE tanev=%u and szemeszter=%u and tankor.felveheto =1".$W."
+ AND tankorId NOT IN (
+ SELECT distinct tankorId FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId) JOIN tankorOsztaly USING (tankorId)
+ WHERE tankor.felveheto =1".$W." AND tanev<%u
+ )
+ ORDER BY tankorNev,tankor.tankorId";
+ $felvehetoTankorok = db_query($q, array('fv' => 'getValaszthatoTankorok', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v));
+
+ for ($i=0; $i<count($felvehetoTankorok); $i++) {
+ $felvehetoTankorok[$i]['blokkIdk'] = $TID2B[$felvehetoTankorok[$i]['tankorId']];
+ $felvehetoTankorok[$i]['letszam'] = getTankorLetszam($felvehetoTankorok[$i]['tankorId'],$DT);
+ $felvehetoTankorok[$i]['tanarok'] = getTankorTanaraiByInterval($felvehetoTankorok[$i]['tankorId'], array('tolDt' => $DT['tolDt'], 'igDt' => $DT['igDt'], 'result' => 'nevsor'));
+ }
+ return $felvehetoTankorok;
+ }
+
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/kepzes.php b/mayor-orig/www/include/modules/naplo/intezmeny/kepzes.php
new file mode 100644
index 00000000..e08e6856
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/kepzes.php
@@ -0,0 +1,64 @@
+<?php
+
+ function ujKepzes($kepzesNev, $tanev, $osztalyJellegId) {
+
+ $q = "INSERT INTO kepzes (kepzesNev,tanev, osztalyJellegId) VALUES ('%s', %u, %u)";
+ $v = array($kepzesNev, $tanev, $osztalyJellegId);
+ return db_query($q, array('fv' => 'ujKepzes', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v));
+
+ }
+
+ function kepzesEles($kepzesId, $kepzesEles) {
+
+ $q = "UPDATE kepzes SET kepzesEles=%u WHERE kepzesId =%u";
+ $v = array($kepzesEles,$kepzesId);
+ return db_query($q, array('fv' => 'kepzesEles', 'modul' => 'naplo_intezmeny', 'result' => 'update', 'values' => $v));
+
+ }
+
+ function kepzesModositas($ADAT) {
+
+ //$ADAT eredeti paraméterezése: $kepzesId, $kepzesNev, $tanev, $osztalyJellegId, $osztalyIds, $delOsztalyIds
+ extract($ADAT);
+
+ // Van-e ilyen képzés
+ $q = "SELECT COUNT(*) AS db FROM kepzes WHERE kepzesId = %u";
+ $v = array($kepzesId);
+ $db = db_query($q, array('modul'=> 'naplo_intezmeny','fv'=>'kepzesModositas','values'=>$v, 'result'=>'value'));
+
+ if ($db != 1) {
+ $_SESSION['alert'][] = 'message:wrong_data:hibás képzés azonosító:'.$kepzesId;
+ return false;
+ }
+
+ if (isset($osztalyJellegId) && $osztalyJellegId>0) {
+ $q = "UPDATE kepzes SET kepzesNev='%s',tanev=%u,osztalyJellegId=%u WHERE kepzesId=%u";
+ $v = array($kepzesNev,$tolTanev,$osztalyJellegId,$kepzesId);
+ }
+ db_query($q, array('modul'=> 'naplo_intezmeny','fv'=>'kepzesModositas','values'=>$v));
+
+ // TOROLNI NEM LEHET csak, ha egyetlen osztály-tag sincs hozzárendelve az adott képzéshez AZ ADOTT TANÉVBEN...
+ if (count($delOsztalyIds) > 0) {
+ foreach ($delOsztalyIds as $osztalyId) {
+ $q = "SELECT COUNT(*) FROM kepzesDiak LEFT JOIN osztalyDiak USING (diakId) WHERE kepzesId=%u AND osztalyId=%u
+ AND tolDt<='".$_TANEV['zarasDt']."' AND (igDt IS NULL OR igDt>='".$_TANEV['kezdesDt']."')
+ AND beDt<='".$_TANEV['zarasDt']."' AND (kiDt IS NULL OR kiDt>='".$_TANEV['kezdesDt']."')";
+ $db = db_query($q, array('fv'=>'kepzesModositas/del-osztaly#1','modul'=>'naplo_intezmeny','result'=>'value','values'=>array($kepzesId, $osztalyId)));
+ if ($db == 0) {
+ $q = "DELETE FROM kepzesOsztaly WHERE kepzesId=%u AND osztalyId=%u";
+ db_query($q, array('fv' => 'kepzesModositas/osztályhozzárendelés törlése', 'modul' => 'naplo_intezmeny', 'values' => array($kepzesId,$osztalyId)));
+ } else {
+ $_SESSION['alert'][] = 'message:wrong_data:Az osztály hozzárendelés nem törölhető! '.$db.' db tanuló az osztályból hozzá van rendelve ehhez a képzéshez.';
+ }
+ }
+ }
+ if (count($osztalyIds)>0) {
+ $q = "REPLACE INTO kepzesOsztaly (kepzesId,osztalyId) VALUES (".implode("),(", array_fill(0, count($osztalyIds), '%u, %u')).")";
+ $v = array();
+ for ($i = 0; $i < count($osztalyIds); $i++) array_push($v, $kepzesId, $osztalyIds[$i]);
+ db_query($q, array('fv' => 'kepzesModositas/osztályhozzárendelés', 'modul' => 'naplo_intezmeny', 'values' => $v));
+ }
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/kepzesOraterv.php b/mayor-orig/www/include/modules/naplo/intezmeny/kepzesOraterv.php
new file mode 100644
index 00000000..d689aa40
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/kepzesOraterv.php
@@ -0,0 +1,92 @@
+<?php
+
+ require_once('include/modules/naplo/share/kepzes.php');
+
+ function modifyKepzesOraterv($ADAT,$kepzesId) {
+
+ $lr = db_connect('naplo_intezmeny');
+
+ if (is_array($ADAT['oraszamok'])) foreach($ADAT['oraszamok'] as $evfolyamJel => $D) {
+ $q = "REPLACE INTO kepzesOraszam (kepzesId,evfolyamJel,kotelezoOraszam,maximalisOraszam) VALUES (%u,'%s',%f,%f)";
+ $v = array($kepzesId,$evfolyamJel,$D['kotelezo'],$D['max']);
+ db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'modifyKepzesOraterv', 'values'=>$v), $lr);
+ }
+
+ //blabla if
+ if (is_array($ADAT['adatok'])) {
+ foreach ($ADAT['adatok'] as $targyTipus => $X) {
+ foreach ($X as $targyId => $EGYTARGY) {
+ // [$evfolyamJel][$szemeszter]['oraszam'|'kovetelmeny']
+ if (is_array($EGYTARGY))
+ foreach ($EGYTARGY as $evfolyamJel => $DS) {
+ if (is_array($DS)) foreach($DS as $szemeszter => $D) {
+ if ($D['kovetelmeny']!='' && isset($D['oraszam'])) {
+ if ($targyTipus!='mintatantervi') {
+ $q = "SELECT kepzesOratervId FROM kepzesOraterv WHERE kepzesId=%u AND evfolyamJel='%s' AND szemeszter=%u AND tipus='%s'";
+ $v = array($kepzesId,$evfolyamJel,$szemeszter,$targyTipus);
+ $_oratervId = db_query($q, array('modul'=>'naplo_intezmeny','result'=>'value','fv'=>'modifyKepzesOraterv', 'debug'=>false, 'values'=>$v), $lr);
+ if ($_oratervId>0) {
+ $q = "UPDATE kepzesOraterv SET hetiOraszam=%f,kovetelmeny='%s' WHERE kepzesOratervId=%u";
+ $v = array($D['oraszam'],$D['kovetelmeny'],$_oratervId);
+ } else {
+ $q = "INSERT INTO kepzesOraterv (kepzesId,targyId,evfolyamJel,szemeszter,hetiOraszam,kovetelmeny,tipus)
+ VALUES (%u,null,'%s',%u,%f,'%s','%s')";
+ $v = array($kepzesId,$evfolyamJel,$szemeszter,$D['oraszam'],$D['kovetelmeny'],$targyTipus);
+ }
+ } else {
+ $q = "SELECT kepzesOratervId FROM kepzesOraterv WHERE kepzesId=%u AND evfolyamJel='%s' AND szemeszter=%u AND tipus='%s' AND targyId=%u";
+ $v = array($kepzesId,$evfolyamJel,$szemeszter,$targyTipus,$targyId);
+ $_oratervId = db_query($q, array('modul'=>'naplo_intezmeny','result'=>'value','fv'=>'modifyKepzesOraterv', 'debug'=>false, 'values'=>$v), $lr);
+ if ($_oratervId>0) {
+ $q = "UPDATE kepzesOraterv SET hetiOraszam=%f,kovetelmeny='%s' WHERE kepzesOratervId=%u";
+ $v = array($D['oraszam'],$D['kovetelmeny'],$_oratervId);
+ } else {
+ $q = "INSERT INTO kepzesOraterv (kepzesId,targyId,evfolyamJel,szemeszter,hetiOraszam,kovetelmeny,tipus) VALUES (%u,%u,'%s',%u,%f,'%s','%s')";
+ $v = array($kepzesId,$targyId,$evfolyamJel,$szemeszter,$D['oraszam'],$D['kovetelmeny'],$targyTipus);
+ }
+ }
+ } else { // ha nincs megadva követelmény, akkor töröljük
+ if ($targyTipus!='mintatantervi') {
+ $q = "DELETE FROM kepzesOraterv WHERE kepzesId=%u AND evfolyamJel='%s' AND szemeszter=%u AND tipus='%s'";
+ $v = array($kepzesId,$evfolyamJel,$szemeszter,$targyTipus);
+ } else {
+ $q = "DELETE FROM kepzesOraterv WHERE kepzesId=%u AND targyId=%u AND evfolyamJel='%s' AND szemeszter=%u";
+ $v = array($kepzesId,$targyId,$evfolyamJel,$szemeszter);
+ }
+ }
+ db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'modifyKepzesOraterv', 'debug'=>false, 'values'=>$v), $lr);
+ } /* if */
+ } /* if-foreach */
+ } /* foreach */
+ } /* foreach */
+ } /* if */
+ db_close($lr);
+ }
+
+ function dropKepzesOratervRekord($kepzesId,$tipus,$targyId) {
+ if ($tipus=='mintatantervi') {
+ $q = "DELETE FROM kepzesOraterv WHERE kepzesId=%u AND targyId=%u";
+ $v = array($kepzesId,$targyId);
+ } else {
+ $q = "DELETE FROM kepzesOraterv WHERE kepzesId=%u AND tipus='%s'";
+ $v = array($kepzesId,$tipus);
+ }
+ db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dropKepzesOratervRekord', 'debug'=>false, 'values'=>$v));
+ }
+
+ function getKepzesOraszam($kepzesId) {
+ $q = "SELECT * FROM kepzesOraszam WHERE kepzesId=$kepzesId ORDER BY evfolyamJel ASC"; // order error!
+ return db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'getKepzesOraszam', 'result'=>'assoc', 'keyfield'=>'evfolyamJel'));
+ }
+
+ function kepzesOratervMasolas($masolandoKepzesId, $kepzesId) {
+
+ $q ="INSERT INTO kepzesOraterv (kepzesId, targyId, evfolyamJel, szemeszter, hetiOraszam, kovetelmeny, tipus)
+ SELECT %u AS kepzesId, targyId, evfolyamJel, szemeszter, hetiOraszam, kovetelmeny, tipus
+ FROM kepzesOraterv WHERE kepzesId=%u";
+ return db_query($q, array('debug'=>false,'fv'=>'kepzesOratervMasolas','modul'=>'naplo_intezmeny','values'=>array($kepzesId, $masolandoKepzesId)));
+
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/munkakozosseg.php b/mayor-orig/www/include/modules/naplo/intezmeny/munkakozosseg.php
new file mode 100644
index 00000000..d9c01d61
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/munkakozosseg.php
@@ -0,0 +1,288 @@
+<?php
+
+ // Az általános getter függvények a share-ben vannak (munkakozosseg, targy)
+
+ function ujMunkakozosseg($leiras, $mkVezId='') {
+
+
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'ujMunkakozosseg'));
+ if (!$lr) return false;
+
+ $result = false; // sikerült-e?
+
+ // Van-e már ilyen munkaközösség?
+ $q = "SELECT COUNT(mkId) FROM munkakozosseg WHERE leiras='%s'";
+ $num = db_query($q, array('fv' => 'ujMunkakozosseg', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => array($leiras)), $lr);
+
+ if ($num == 0) {
+ $v = array($leiras);
+ if ($mkVezId == '') {
+ $MKVEZID = 'NULL';
+ } else {
+ $MKVEZID = '%u';
+ $v[] = $mkVezId;
+ }
+ $q = "INSERT INTO munkakozosseg (leiras,mkVezId) VALUES ('%s',$MKVEZID)";
+ $result = db_query($q, array('fv' => 'ujMunkakozosseg', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v), $lr);
+
+ } else {
+ // már van ilyen munkaközösség...
+ $_SESSION['alert'][] = 'massege:wrong_data:duplikált munkaközösség leírás (név)';
+ }
+ db_close($lr);
+
+ return $result;
+
+ }
+
+ function modMunkakozosseg($mkId,$leiras,$mkVezId,$MKUJTAGOK,$MKTORLENDOTAGOK) {
+
+
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'modMunkakozosseg'));
+
+ if (!$lr) return false;
+ if ($mkId=='') { $_SESSION['alert'][] = 'message::no mkId'; return false; }
+
+ $result = false; // sikerült-e?
+
+ // Van-e már ilyen munkaközösség?
+ $q = "SELECT COUNT(mkId) FROM munkakozosseg WHERE mkId=%u";
+ $num = db_query($q, array('fv' => 'modMunkakozosseg', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => array($mkId)), $lr);
+
+ if ($num != 0) {
+ if ($mkVezId == '') {
+ $q = "UPDATE munkakozosseg SET leiras='%s',mkVezId=NULL WHERE mkId=%u";
+ $v = array($leiras, $mkId);
+ } else {
+ $q = "UPDATE munkakozosseg SET leiras='%s',mkVezId=%u WHERE mkId=%u";
+ $v = array($leiras, $mkVezId, $mkId);
+ }
+ $result = db_query($q, array('fv' => 'modMunkakozosseg', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ } else {
+ // már van ilyen munkaközösség...
+ $_SESSION['alert'][] = 'massege:wrong_data:mkId='.$mkId;
+ }
+
+ if ($result) {
+ if (is_array($MKUJTAGOK) && count($MKUJTAGOK)>0) {
+ //mkTanar[mkId,tanarId]
+ for($i=0; $i<count($MKUJTAGOK); $i++) {
+ $_tanarId = $MKUJTAGOK[$i];
+ $q = "REPLACE INTO mkTanar (mkId,tanarId) VALUES (%u, %u)";
+ db_query($q, array('fv' => 'modMunkakozosseg', 'modul' => 'naplo_intezmeny', 'values' => array($mkId,$_tanarId)), $lr);
+ }
+ }
+ if (is_array($MKTORLENDOTAGOK) && count($MKTORLENDOTAGOK)>0) {
+ $q = "DELETE FROM mkTanar WHERE mkId=%u AND tanarId IN (".implode(',', array_fill(0, count($MKTORLENDOTAGOK), '%u')).")";
+ db_query($q, array('fv' => 'modMunkakozosseg', 'modul' => 'naplo_intezmeny', 'values' => mayor_array_join(array($mkId),$MKTORLENDOTAGOK)), $lr);
+ }
+ }
+
+
+ db_close($lr);
+
+ return $result;
+
+ }
+
+
+
+
+ function ujTargy($ADAT) {
+
+
+ $leiras=$ADAT['leiras'];
+ $mkId=$ADAT['mkId'];
+ $targyJelleg=$ADAT['targyJelleg'];
+ $kirTargyId=$ADAT['kirTargyId'];
+
+ if ($leiras=='') {
+ $_SESSION['alert'][] = 'message:UI:empty field';
+ return false;
+ }
+
+ if (is_numeric($kirTargyId)) {
+ $q = "INSERT INTO targy (targyNev,mkId,targyJelleg,kirTargyId) VALUES ('%s',%u,'%s',%u)";
+ $v = array($leiras,$mkId,$targyJelleg,$kirTargyId);
+ } else {
+ $q = "INSERT INTO targy (targyNev,mkId,targyJelleg) VALUES ('%s',%u,'%s')";
+ $v = array($leiras,$mkId,$targyJelleg);
+ }
+ $result = db_query($q,array('modul'=>'naplo_intezmeny', 'fv'=>'ujTargy','result'=>'insert', 'detailed'=>false, 'debug'=>false, 'values'=>$v));
+
+ return $result;
+
+ }
+
+ function targyModosit($ADAT) {
+ if (is_numeric($ADAT['kirTargyId'])) {
+ $q = "UPDATE targy SET targyJelleg='%s',zaroKovetelmeny='%s',evkoziKovetelmeny='%s',targyRovidNev='%s',kirTargyId=%u WHERE targyId=%u";
+ $v = array($ADAT['targyJelleg'],$ADAT['zaroKovetelmeny'],$ADAT['evkoziKovetelmeny'],$ADAT['targyRovidNev'], $ADAT['kirTargyId'], $ADAT['targyId']);
+ } else {
+ $q = "UPDATE targy SET targyJelleg='%s',zaroKovetelmeny='%s',evkoziKovetelmeny='%s',targyRovidNev='%s' WHERE targyId=%u";
+ $v = array($ADAT['targyJelleg'],$ADAT['zaroKovetelmeny'],$ADAT['evkoziKovetelmeny'],$ADAT['targyRovidNev'],$ADAT['targyId']);
+ }
+ return db_query($q,array('modul'=>'naplo_intezmeny', 'fv'=>'targyModosit', 'detailed'=>false, 'debug'=>false, 'values'=>$v));
+ }
+
+ function targyTorol($targyId,$mkId) {
+
+ $q = "DELETE FROM targy WHERE targyId=%u AND mkId=%u";
+ return db_query($q, array('fv' => 'targyTorol', 'modul' => 'naplo_intezmeny', 'values' => array($targyId, $mkId)), $lr);
+
+ }
+
+
+ function munkakozossegTorol($mkId) {
+
+ $q = "DELETE FROM munkakozosseg WHERE mkId=%u";
+ return db_query($q, array('fv' => 'munkakozossegTorol', 'modul' => 'naplo_intezmeny', 'values' => array($mkId)), $lr);
+
+ }
+
+ function targyBeolvasztas($ADAT) {
+ /**
+ * Elvárt paraméterek: $ADAt['targyId'], $ADAT['befogadoTargyId'], $ADAT['tankorJeloles'] (lehet üres)
+ **/
+
+ $lr = db_connect('naplo_intezmeny');
+ db_start_trans($lr);
+
+ // A befogadó tárgy adatai
+ $befogadoTargy = getTargyById($ADAT['befogadoTargyId']);
+ $targyAdat = getTargyById($ADAT['targyId']);
+ // A tárgyhoz tartozó tankörök lekérdezése
+ $q = "SELECT tankorId FROM tankor WHERE targyId=%u";
+ $tankorIds = db_query($q, array('fv'=>'targyBeolvasztas/tankorok','result'=>'idonly','values'=>array($ADAT['targyId'])), $lr);
+ if (is_array($tankorIds) && count($tankorIds)>0) /*foreach ($tankorIds as $tankorId)*/ {
+ /* tárgyhoz tartozó tankörök átnevezése */
+ if (isset($ADAT['tankorJeloles'])) {
+ $q = "UPDATE tankorSzemeszter SET tankorNev=CONCAT(LEFT(tankorNev,LOCATE('%s',tankorNev)-1),'%s',' ','%s')
+ WHERE tankorId IN (".implode(',', array_fill(0,count($tankorIds),'%u')).")";
+ $v = mayor_array_join(array($targyAdat['targyNev'], $befogadoTargy['targyNev'], $ADAT['tankorJeloles']), $tankorIds);
+ } else {
+ $q = "UPDATE tankorSzemeszter SET tankorNev=REPLACE(tankorNev,'%s','%s')
+ WHERE tankorId IN (".implode(',', array_fill(0,count($tankorIds),'%u')).")";
+ $v = mayor_array_join(array($targyAdat['targyNev'], $befogadoTargy['targyNev']), $tankorIds);
+ }
+ $r = db_query($q, array('fv'=>'targyBeolvasztas/tankör-átnevezés','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ /* tárgyhoz tartozó tannkörök áthelyezése */
+ $q = "UPDATE tankor SET targyId=%u WHERE targyId=%u";
+ $r = db_query($q, array('fv'=>'targyBeolvasztas/tankör-tárgy','values'=>array($ADAT['befogadoTargyId'], $ADAT['targyId'])), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ }
+
+ /* tanév adatbázisok lekérdezése */
+ $q = "SHOW DATABASES LIKE 'naplo_".__INTEZMENY."%'";
+ $dbs = db_query($q, array('fv'=>'targyBeolvasztas/dbs','result'=>'idonly'), $lr);
+ if (!$dbs) { db_rollback($lr); db_close($lr); return false; }
+ if (is_array($dbs) && count($dbs) > 0) foreach ($dbs as $db) {
+ /* tanév adatbázis tábláinak lekérdezése */
+ $q = "SHOW TABLES FROM $db";
+ $tables = db_query($q, array('fv'=>'targyBeolvasztas/tables','result'=>'idonly'), $lr);
+ if (is_array($tables) && count($tables)>0) foreach ($tables as $table) {
+ if ($table == 'targySorszam') {
+ /* törlendő: targySorszam, */
+ $q = "DELETE FROM `$db`.`targySorszam` WHERE targyId=%u";
+ $r = db_query($q, array('fv'=>'targyBeolvasztas/targySorszam','values'=>array($ADAT['targyId'])), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ } else {
+ /* Tábla tartalmaz-e targyId mezőt... */
+ $q = "SHOW FIELDS FROM `$db`.`$table` LIKE 'targyId'";
+ $ret = db_query($q, array('fv'=>'targyBeolvasztas/table-targyId','result'=>'idonly'), $lr);
+ if (is_array($ret) && count($ret)>0) {
+ /* ... ha igen: targyId módosítás */
+ $q = "UPDATE `$db`.`$table` SET targyId=%u WHERE targyId=%u";
+ $v = array($ADAT['befogadoTargyId'], $ADAT['targyId']);
+ $r = db_query($q, array('fv'=>'targyBeolvasztas/table','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ }
+ }
+ }
+ }
+ /* intézményi adattáblák lekérdezése */
+ $q = "SHOW TABLES";
+ $tables = db_query($q, array('fv'=>'targyBeolvasztas/i-tables','result'=>'idonly'), $lr);
+ if (is_array($tables) && count($tables)>0) foreach ($tables as $table) {
+ if ($table != 'targy') {
+ /* Tábla tartalmaz-e targyId mezőt... */
+ $q = "SHOW FIELDS FROM `$table` LIKE 'targyId'";
+ $ret = db_query($q, array('fv'=>'targyBeolvasztas/i-table-targyId','result'=>'idonly'), $lr);
+ if (is_array($ret) && count($ret)>0) {
+ /* ... ha igen: targyId módosítás */
+ $q = "UPDATE IGNORE `$table` SET targyId=%u WHERE targyId=%u";
+ $v = array($ADAT['befogadoTargyId'], $ADAT['targyId']);
+ $r = db_query($q, array('fv'=>'targyBeolvasztas/i-table','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ }
+ } // != tárgy
+ }
+
+ /* targy törlése */
+ $q = "DELETE FROM targy WHERE targyId=%u";
+ $r = db_query($q, array('fv'=>'targyBeolvasztas/delete','values'=>array($ADAT['targyId'])), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+
+ db_commit($lr);
+ db_close($lr);
+ return true;
+
+ }
+
+ function targyMkValtas($ADAT) {
+ /**
+ * Elvárt paraméterek: $ADAt['targyId'], $ADAT['befogadoMkId']
+ **/
+ $lr = db_connect('naplo_intezmeny');
+ db_start_trans($lr);
+ // Az adott tárgy tanköreinek jelenlegi tanárai között van-e az új munkaközösségben nem szereplő
+ $q = "SELECT DISTINCT tanarId FROM tankor LEFT JOIN tankorTanar USING (tankorId)
+ WHERE targyId=%u AND beDt<=CURDATE() AND (kiDt IS NULL OR kiDt>=CURDATE())
+ AND tanarId NOT IN (SELECT tanarId FROM mkTanar WHERE mkId=%u)";
+ $tanarIds = db_query($q, array('fv'=>'targyMkValtas/tanarIds','result'=>'idonly','values'=>array($ADAT['targyId'], $ADAT['befogadoMkId'])), $lr);
+ if (is_array($tanarIds) && count($tanarIds)>0) {
+ db_rollback($lr);
+ db_close($lr);
+ $_SESSION['alert'][] = 'message:wrong_data:targyMkValtas:Van az új munkaközösségbe nem tartozó érintett tanár!:'.implode(',',$tanarIds);
+ return false;
+ }
+ // munkaközösség váltás
+ $q = "UPDATE targy SET mkId=%u WHERE targyId=%u";
+ $r = db_query($q, array('fv'=>'targyMkValtas/mkId','values'=>array($ADAT['befogadoMkId'], $ADAT['targyId'])), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+
+ db_commit($lr);
+ db_close($lr);
+ return true;
+
+ }
+
+ function targyAtnevezes($ADAT) {
+ /**
+ * Elvárt paraméterek: $ADAt['targyId'], $ADAT['ujTargyNev']
+ **/
+
+ $lr = db_connect('naplo_intezmeny');
+ db_start_trans($lr);
+
+ $targyAdat = getTargyById($ADAT['targyId']);
+ // tankörnév módosítás
+ $q = "UPDATE tankorSzemeszter SET tankorNev=REPLACE(tankorNev,'%s','%s')
+ WHERE tankorId IN (SELECT tankorId FROM tankor WHERE targyId=%u)";
+ $v = array($targyAdat['targyNev'], $ADAT['ujTargyNev'], $ADAT['targyId']);
+ $r = db_query($q, array('fv'=>'targyAtnevezes/tankor','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ // tárgy átnevezés
+ $q = "UPDATE targy SET targyNev='%s' WHERE targyId=%u";
+ $v = array($ADAT['ujTargyNev'], $ADAT['targyId']);
+ $r = db_query($q, array('fv'=>'targyAtnevezes/targy','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+
+ db_commit($lr);
+ db_close($lr);
+ return true;
+
+ }
+
+?> \ No newline at end of file
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/osztaly.php b/mayor-orig/www/include/modules/naplo/intezmeny/osztaly.php
new file mode 100644
index 00000000..a23daa2e
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/osztaly.php
@@ -0,0 +1,474 @@
+<?php
+
+
+function ujOsztaly($ADAT) {
+/*
+ TODO: átnézendő az új évfolyam rendszer esetén:
+ kTanev, vTanev - az osztály tényleges indulási és befejező tanéve (ami != a végzés tanéve) -- ok
+ osztalyJel generálás (évfolyam lekérdezés) -- ok
+*/
+
+ global $mayorCache;
+ $mayorCache->delType('osztaly');
+
+ $leiras = $ADAT['leiras']; $kTanev = $ADAT['kezdoTanev']; $vTanev = $ADAT['vegzoTanev'];
+ $kEvfolyamSorszam = $ADAT['kezdoEvfolyamSorszam']; $jel = $ADAT['jel'];
+ $telephelyId = $ADAT['telephelyId'];
+ // Felhasználva, hogy le vannak kérdzve a definiált tanévek
+ // Ellenőrizzük, hogy a megadott tanév helyes-e...
+ if (!in_array($kTanev,$ADAT['tanevek']) || !in_array($vTanev,$ADAT['tanevek'])) {
+ $_SESSION['alert'][] = 'message:wrong_data:ujOsztaly:'."$kTanev/$vTanev";
+ return false;
+ }
+
+ // Csatlakozás az adatbázishoz
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'ujOsztaly'));
+ if (!$lr) return false;
+
+ // Osztály felvétele
+ if (isset($telephelyId)) {
+ $q = "INSERT INTO osztaly (leiras, kezdoTanev, vegzoTanev, kezdoEvfolyamSorszam, jel, telephelyId, osztalyJellegId)
+ VALUES ('%s', %u, %u, %u, '%s', %u, %u)";
+ $v = array($leiras, $kTanev, $vTanev, $kEvfolyamSorszam, $jel, $telephelyId, $ADAT['osztalyJellegId']);
+ } else {
+ $q = "INSERT INTO osztaly (leiras, kezdoTanev, vegzoTanev, kezdoEvfolyamSorszam, jel, osztalyJellegId)
+ VALUES ('%s', %u, %u, %u, '%s', %u)";
+ $v = array($leiras, $kTanev, $vTanev, $kEvfolyamSorszam, $jel, $ADAT['osztalyJellegId']);
+ }
+ $osztalyId = db_query($q, array('fv' => 'ujOsztaly', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v), $lr);
+ if (!$osztalyId) { db_close($lr); return false; }
+
+ // Az aktív tanévek osztalyNaplo táblájába vegyük fel az osztályt! És ha inicializálva van a munkaterv, akkor a default-hoz rendeljük is hozzá!
+ // Aktív tanévek lekérdezése
+ $ok = updateOsztalyNev($osztalyId, $lr);
+
+ db_close($lr);
+ return $osztalyId;
+}
+
+function updateOsztalyNev($osztalyId, $lr = null) {
+ /*
+ Az aktív tanévek osztalyNaplo táblájába vegyük fel/módosítsuk az osztályt! És ha inicializálva van a munkaterv, és nincs még hozzárendelve,
+ akkor a default-hoz rendeljük is hozzá!
+ Hopp! És a tankör-nevek?
+ */
+
+ global $mayorCache;
+ $mayorCache->delType('osztaly');
+
+ // Aktív tanévek lekérdezése
+ $q ="SELECT DISTINCT tanev FROM szemeszter WHERE statusz = 'aktív'";
+ $ret = db_query($q, array('fv' => 'updateOsztalyNev', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => array()), $lr);
+ if (!is_array($ret)) { return false; }
+ $ok = true;
+ foreach ($ret as $key => $te) {
+ $tanevDb = tanevDbNev(__INTEZMENY,$te);
+ $osztalyAdat = getOsztalyAdat($osztalyId, $te, $lr);
+ if ($te < $osztalyAdat['kezdoTanev'] || $te > $osztalyAdat['vegzoTanev']) { // ebben a tanévben nem érintett az osztály
+ // törlés az osztalyNaplo táblából
+ $q = "DELETE FROM `%s`.osztalyNaplo WHERE osztalyId=%u";
+ $v = array($tanevDb, $osztalyId);
+ $ok = $ok && db_query($q, array('fv' => 'updateOsztalyNev/osztalyNaplo - delete', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ // törlés a munkatervOsztaly táblából
+ $q = "DELETE FROM `%s`.munkatervOsztaly WHERE osztalyId=%u";
+ $v = array($tanevDb, $osztalyId);
+ $ok = $ok && db_query($q, array('fv' => 'updateOsztalyNev/munkatervOsztaly - delete', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ } else { // ebben a tanévben érintett az osztály
+ $osztalyJel = getOsztalyJel($osztalyId, $te, $osztalyAdat, $lr);
+ $evfolyamJel = getEvfolyamJel($osztalyId, $te, $osztalyAdat, $osztalyJellel=false, $lr);
+ $evfolyam = getEvfolyam($osztalyId, $te, $osztalyAdat, $lr);
+ // Osztálynapló felvétele
+ $q = "REPLACE INTO `%s`.osztalyNaplo (osztalyId, osztalyJel, evfolyam, evfolyamJel) VALUES (%u, '%s', %u, '%s')";
+ $v = array($tanevDb, $osztalyId, $osztalyJel, $evfolyam, $evfolyamJel);
+ $ok = $ok && db_query($q, array('fv' => 'updateOsztalyNev/osztalyNaplo - replace', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ if (!$ok) continue;
+ // Van-e inicializált munkaterv?
+ $q = "SELECT COUNT(*) FROM `%s`.munkaterv WHERE munkatervId=1";
+ $v = array($tanevDb);
+ $db = db_query($q, array('fv' => 'updateOsztalyNev/munkaterv', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result' => 'value'), $lr);
+ if ($db == 1) { // Ha van, akkor van-e már osztaly-munkaterv hozzárendelés
+ $q = "SELECT COUNT(*) FROM `%s`.munkatervOsztaly WHERE osztalyId=%u";
+ $v = array($tanevDb, $osztalyId);
+ $db = db_query($q, array('fv' => 'updateOsztalyNev/munkatervOsztaly - select', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result'=>'value'), $lr);
+ if ($db == 0) { // Ha nincs, akkor rendeljük az 1-es munkatervhez az osztályt
+ $q = "INSERT INTO `%s`.munkatervOsztaly (munkatervId, osztalyId) VALUES (1, %u)";
+ $v = array($tanevDb, $osztalyId);
+ $ok = $ok && db_query($q, array('fv' => 'updateOsztaly/munkatervOsztaly - insert', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ }
+ }
+ }
+ } // foreach...
+ // tankör-nevek módosítása
+ $q = "SELECT tankorId FROM tankorOsztaly WHERE osztalyId = %u";
+ $v = array($osztalyId);
+ $tankorIds = db_query($q, array('fv' => 'updateOsztalyNev', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => $v), $lr);
+ if (is_array($tankorIds) && count($tankorIds)>0) {
+ for ($i=0; $i<count($tankorIds); $i++) {
+ $_tankorId = $tankorIds[$i];
+ $ujTankorNevek[] = (setTankorNev($_tankorId, $tankorNevExtra=null, $lr)); // ha ez nem sikerül, a session üzeni majd a megfelelő hibát, nem a tranzakció része
+ }
+ }
+ return $ok;
+}
+
+function updateOsztaly($osztalyId, $file, $MEZO_LISTA, $KULCS_MEZOK, $mezo_elvalaszto = ' ', $rovatfej = false) {
+
+
+ if (!file_exists($file)) {
+ $_SESSION['alert'][] = 'message:file_not_found:'.$file;
+ return false;
+ }
+
+ if (!is_array($MEZO_LISTA)) {
+ $_SESSION['alert'][] = 'message:wrong_parameter:MEZO_LISTA';
+ return false;
+ }
+
+ if (!is_array($KULCS_MEZOK)) {
+ $_SESSION['alert'][] = 'message:wrong_parameter:KULCS_MEZOK';
+ return false;
+ }
+
+ // A beDt és kiDt kiszűrése a MEZO_LISTABOL
+ $keyBeDt = array_search('beDt',$MEZO_LISTA);
+ if (!$keyBeDt && $keyBeDt !== 0) $keyBeDt = false;
+ else $MEZO_LISTA[$keyBeDt] = '';
+ $keyKiDt = array_search('kiDt',$MEZO_LISTA);
+ if (!$keyKiDt && $keyKiDt !== 0) $keyKiDt = false;
+ else $MEZO_LISTA[$keyKiDt] = '';
+
+ // és a KULCS_MEZOK közül
+ $KULCS_MEZOK = array_diff($KULCS_MEZOK,array('beDt','kiDt'));
+
+ // A frissítendő attribútumok listája
+ $attrList = array_values(array_filter($MEZO_LISTA));
+
+ $fp = fopen($file,'r');
+ if (!$fp) {
+ $_SESSION['alert'][] = 'message:file_open_error:'.$file;
+ return false;
+ }
+
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'updateOsztaly'));
+ if (!$lr) {
+ $_SESSION['alert'][] = 'message:db_connect_failure:updateOsztaly';
+ fclose($fp);
+ return false;
+ }
+ db_start_trans($lr);
+
+ // Az első sor kihagyása
+ if ($rovatfej) $sor = fgets($fp,1024);
+ $TAG = $TAGV = array();
+ while ($sor = fgets($fp, 1024)) {
+
+ $adatSor = explode($mezo_elvalaszto, chop($sor));
+ $beDt = $kiDt = '';
+ if ($keyBeDt !== false) $beDt = $adatSor[$keyBeDt];
+ if ($keyKiDt !== false) $kiDt = $adatSor[$keyKiDt];
+ // keresési feltétel összerakása
+ $where = $wherev = array();
+ for ($i = 0; $i < count($KULCS_MEZOK); $i++) {
+ if ($adatSor[$KULCS_MEZOK[$i]] != '') {
+ if ($adatSor[$KULCS_MEZOK[$i]] == '\N') {
+ $where[] = "`%s`=NULL";
+ array_push($wherev, $MEZO_LISTA[$KULCS_MEZOK[$i]]);
+ } else {
+ $where[] = "`%s`='%s'";
+ array_push($wherev, $MEZO_LISTA[$KULCS_MEZOK[$i]], $adatSor[$KULCS_MEZOK[$i]]);
+ }
+ }
+ }
+ if (count($where) > 0) {
+ $q = "SELECT diakId FROM diak WHERE ".implode(' AND ', $where);
+ $diakIds = db_query($q, array('fv' => 'updateOsztaly', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => $wherev), $lr);
+ $num = count($diakIds);
+ } else { $num = 0; }
+ if ($num == 1 && _SKIP_ON_DUP === true) { $_SESSION['alert'][] = 'info:_SKIP_ON_DUP:'.serialize($sor); continue; }
+ if ($num == 1) { // update
+ // tag felvételhez adatsor
+ $diakId = $diakIds[0];
+ if (!isset($kiDt) || $kiDt=='') {
+ $TAG[] = "(%u, %u, '%s', NULL)";
+ array_push($TAGV, $diakId, $osztalyId, $beDt);
+ } else {
+ $TAG[] = "(%u, %u, '%s', '%s')";
+ array_push($TAGV, $diakId, $osztalyId, $beDt, $kiDt);
+ }
+ // diak adatok frissítése
+ $UPDATE = $UPDATEV = array();
+ for ($i = 0; $i < count($MEZO_LISTA); $i++) {
+ if (
+ $MEZO_LISTA[$i] != ''
+ and $adatSor[$i] != ''
+ and !in_array($i, $KULCS_MEZOK)
+ ) {
+ $UPDATE[] = "`%s`='%s'";
+ array_push($UPDATEV, $MEZO_LISTA[$i], $adatSor[$i]);
+ }
+ }
+ if (count($UPDATE) > 0) {
+ $q = "UPDATE diak SET ".implode(',', $UPDATE)." WHERE ".implode(' AND ', $where);
+ $v = mayor_array_join($UPDATEV, $wherev);
+ $r = db_query($q, array('fv' => 'updateOsztaly/update', 'modul' => 'naplo_intezmeny', 'values' => $v, 'rollback' => true), $lr);
+ if (!$r) {
+ db_close($lr);
+ fclose($fp);
+ return false;
+ }
+ }
+ } elseif ($num == 0) { // insert
+ $insertValues = $insertPatterns = array();
+ for ($i = 0; $i < count($MEZO_LISTA); $i++) {
+ if ($MEZO_LISTA[$i] != '') {
+ if ($adatSor[$i] == '\N') {
+ $insertValues[] = 'NULL';
+ $insertPatterns[] = '%s';
+ } else {
+ $insertValues[] = $adatSor[$i];
+ $insertPatterns[] = "'%s'";
+ }
+ }
+ }
+ $q = 'INSERT INTO `diak` ('.implode(',', array_fill(0, count($attrList), '%s')).')
+ VALUES ('.implode(',', $insertPatterns).')';
+ $v = mayor_array_join($attrList, $insertValues);
+ /*
+
+
+
+ $value = array();
+ for ($i = 0; $i < count($MEZO_LISTA); $i++) {
+ if ($MEZO_LISTA[$i] != '') $value[] = $adatSor[$i];
+ }
+ // beszúrás egyesével, hogy meglegyen a diakId (insert_id)
+ $q = "INSERT INTO diak (`".implode("`,`", array_fill(0, count($attrList), '%s'))."`)
+ VALUES ('".implode("','", array_fill(0, count($value), '%s'))."')";
+ $v = array_merge($attrList, $value);
+
+ */
+ $diakId = db_query($q, array('fv' => 'updateOsztaly/insert', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v, 'rollback' => true), $lr);
+ if (!$diakId) {
+ db_close($lr);
+ fclose($fp);
+ return false;
+ }
+
+ if ($diakId) {
+ // tagok adatai
+ if (!isset($kiDt) || $kiDt=='') {
+ $TAG[] = "(%u, %u,'%s', NULL)";
+ array_push($TAGV, $diakId, $osztalyId, $beDt);
+ } else {
+ $TAG[] = "(%u, %u, '%s', '%s')";
+ array_push($TAGV, $diakId, $osztalyId, $beDt, $kiDt);
+ }
+ }
+ } else {
+ $_SESSION['alert'][] = 'message:wrong_data:'.$where;
+ }
+ } // while
+ if (count($TAG) > 0) { // tagok felvétele az osztályba
+ $q = "REPLACE INTO osztalyDiak (diakId,osztalyId,beDt,kiDt) VALUES ".implode(",\n",$TAG);
+ $r = db_query($q, array('fv' => 'updateOsztaly/osztályba', 'modul' => 'naplo_intezmeny', 'values' => $TAGV, 'rollback'=>true), $lr);
+ if (!$r) {
+ db_close($lr);
+ fclose($fp);
+ return false;
+ }
+ }
+ db_commit($lr);
+ db_close($lr);
+
+ fclose($fp);
+ return true;
+}
+
+/* áthelyezve: share/osztalyModifier.php
+// osztalyId, tanarId, beDt --> kiDt
+function osztalyfonokKileptetes($osztalyId, $tanarId, $beDt, $kiDt, $olr = '') {
+...
+}
+*/
+
+function osztalyfonokKinevezes($osztalyId, $tanarId, $beDt, $lr = null) {
+
+ global $mayorCache;
+ $mayorCache->delType('osztaly');
+
+ // Ellenőrizzük, hogy az adott időszakban nincs-e már kinevezve ofőnek
+ $q = "SELECT COUNT(*) AS db FROM osztalyTanar WHERE osztalyId=%u AND tanarId=%u
+ AND (beDt<'%s' AND '%s'<kiDt)";
+ $v = array($osztalyId, $tanarId, $beDt, $beDt);
+ $db = db_query($q, array('fv' => 'osztalyfonokKinevezes', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => $v), $lr);
+
+ if ($db > 0) {
+ $_SESSION['alert'][] = 'message:wrong_data:már ki van nevezve:'."$beDt - $kiDt:$num";
+ return false;
+ }
+
+ $q = "INSERT INTO osztalyTanar (osztalyId, tanarId, beDt, kiDt) VALUES (%u, %u, '%s', NULL)";
+ $v = array($osztalyId, $tanarId, $beDt);
+ return db_query($q, array('fv' => 'osztalyfonokKinevezes', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+
+}
+
+/*
+ TODO: az osztalyJellegId módosítása nem megengedett, vagy végig kell gondolni,
+ hogy mi mindent érint (osztalyJel, evfolyam, evfolyamJel - minden érintett tanév osztalyNaplo táblájában+tankör nevek+vegzoTanev...)
+*/
+function osztalyLeirasTelephelyModositas($osztalyId, $leiras, $telephelyId, $osztalyJellegId, $kezdoEvfolyamSorszam, $osztalyAdat, $lr = null) {
+
+ global $mayorCache;
+ $mayorCache->delType('osztaly');
+
+ if (isset($telephelyId) && $telephelyId != '') {
+ $q = "UPDATE osztaly SET leiras='%s',telephelyId=%u, kezdoEvfolyamSorszam=%u WHERE osztalyId=%u";
+ $v = array($leiras, $telephelyId, $kezdoEvfolyamSorszam, $osztalyId);
+ } else {
+ $q = "UPDATE osztaly SET leiras='%s',telephelyId=NULL, kezdoEvfolyamSorszam=%u WHERE osztalyId=%u";
+ $v = array($leiras, $kezdoEvfolyamSorszam, $osztalyId);
+ }
+ $ret = db_query($q, array('fv' => 'osztalyLeirasTelephelyModositas', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ return osztalyJellegModositas($osztalyId, $osztalyJellegId, $osztalyAdat, $lr);
+
+}
+
+function osztalyJellegModositas($osztalyId, $osztalyJellegId, $osztalyAdat, $lr = null) {
+
+ global $mayorCache;
+ $mayorCache->delType('osztaly');
+
+ // Az osztalyJelleg lekérdezése
+ $ojAdat = getOsztalyJellegAdat($osztalyJellegId);
+ $ojEvfolyamJelek = explode(',', $ojAdat['evfolyamJelek']);
+ // csak akkor módosítunk, ha az oszály évfolyamainak száma <= az osztály-jelleg évfolyamainak száma
+ if (count($ojEvfolyamJelek) < ($osztalyAdat['vegzoTanev']-$osztalyAdat['kezdoTanev']+$osztalyAdat['kezdoEvfolyamSorszam'])) {
+ $_SESSION[] = 'message:wrong_data:Az osztály évfolyamainak száma nem engedi meg az adott osztály-jellegre váltást';
+ return false;
+ }
+ // osztalyJelleg módosítása
+ $q = "UPDATE osztaly SET osztalyJellegId=%u WHERE osztalyId=%u";
+ $v = array($osztalyJellegId, $osztalyId);
+ $ret = db_query($q, array('fv' => 'osztalyJellegModositas', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ // tanév adatbázisok frissítése (osztalyNaplo, munkatervOsztaly)
+ return updateOsztalyNev($osztalyId, $lr);
+}
+
+function osztalyTorles($osztalyId) {
+
+ global $mayorCache;
+ $mayorCache->delType('osztaly');
+
+ $q = "DELETE FROM osztaly WHERE osztalyId=%u";
+ return db_query($q, array('fv' => 'osztalyTorles', 'modul' => 'naplo_intezmeny', 'values' => array($osztalyId)));
+
+}
+
+function ujTag($osztalyId, $diakId, $beDt, $kiDt) {
+/*
+ * Az osztályba sorolás MOSTANTÓL többszakaszos, mint pl. a tankörbesorolás, azaz a diakId:osztalyId:beDt a
+ * kulcs a kapcsolótáblában.
+ */
+
+ // Csatlakozás az adatbázishoz
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'ujTag'));
+ if (!$lr) return false;
+ db_start_trans($lr);
+
+ // Van-e már beDt-t tartalmazó osztálytagsága
+ $q = "SELECT beDt FROM osztalyDiak WHERE osztalyId=%u AND diakId=%u AND beDt<'%s' AND (kiDt IS NULL OR kiDt >= '%s')";
+ $ret = db_query($q, array('fv' => 'ujTag', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => array($osztalyId, $diakId, $beDt, $beDt)));
+ if (!is_null($ret)) $beDt = $ret;
+
+ if ($kiDt != '') {
+ // Ha kiDt nem üres, akkor: van-e kiDt-t tartalmazó osztálytagsága
+ $q = "SELECT kiDt FROM osztalyDiak WHERE osztalyId=%u AND diakId=%u AND beDt<'%s' AND (kiDt IS NULL OR kiDt >= '%s')";
+ $ret = db_query($q, array('fv' => 'ujTag', 'modul' => 'naplo_intezmeny', 'result' => 'record', 'values' => array($osztalyId, $diakId, $kiDt, $kiDt)));
+ if (!is_null($ret)) $kiDt = $ret['kiDt'];
+ }
+
+ if ($kiDt == '') {
+ // Ha $kiDt üres, akkor töröljük az eddigi bejegyzéseket a lefedett tartományból és felvesszük az újat
+ $q = "DELETE FROM osztalyDiak WHERE osztalyId=%u AND diakId=%u AND beDt>='%s'";
+ db_query($q, array('fv' => 'ujTag/töröl', 'modul' => 'naplo_intezmeny', 'values' => array($osztalyId, $diakId, $beDt)));
+ $q = "INSERT INTO osztalyDiak (osztalyId, diakId, beDt, kiDt) VALUES (%u, %u, '%s', NULL)";
+ db_query($q, array('fv' => 'ujTag/felvesz', 'modul' => 'naplo_intezmeny', 'values' => array($osztalyId, $diakId, $beDt)));
+ } else {
+ // Ha $kiDt nem üres, akkor töröljük az eddigi bejegyzéseket a lefedett tartományból és felvesszük az újat
+ $q = "DELETE FROM osztalyDiak WHERE osztalyId=%u AND diakId=%u AND '%s'<=beDt AND kiDt<='%s'";
+ db_query($q, array('fv' => 'ujTag/töröl', 'modul' => 'naplo_intezmeny', 'values' => array($osztalyId, $diakId, $beDt, $kiDt)));
+ $q = "INSERT INTO osztalyDiak (osztalyId, diakId, beDt, kiDt) VALUES (%u, %u, '%s', '%s')";
+ db_query($q, array('fv' => 'ujTag/felvesz', 'modul' => 'naplo_intezmeny', 'values' => array($osztalyId, $diakId, $beDt, $kiDt)));
+ }
+
+ db_commit($lr);
+ db_close($lr);
+ return $r;
+}
+
+function diakKepzesModositas($diakIds, $kepzesMod, $dt) {
+
+ $modKepzesIds = array_keys($kepzesMod);
+
+ if (!is_array($diakIds) || !is_array($modKepzesIds) || count($diakIds) == 0) return false;
+ $lr = db_connect('naplo_intezmeny');
+ db_start_trans($lr);
+
+ // A megadott diákok adott dátum szerinti képzései
+ $q = "SELECT kepzesId, diakId FROM kepzesDiak WHERE diakId IN (".implode(',', array_fill(0, count($diakIds), '%u')).") AND tolDt<='%s' AND (igDt IS NULL OR '%s'<=igDt)";
+ $v = mayor_array_join($diakIds, array($dt,$dt));
+ $kepzesOld = db_query($q, array('fv' => 'diakKepzesModositas/dKepzes','modul'=>'naplo_intezmeny','values'=>$v,'result'=>'keyvalues'), $lr);
+ if (!is_array($kepzesOld)) { db_rollback($lr); db_close($lr); return false; }
+
+ $oldKepzesIds = array_keys($kepzesOld);
+ $kepzesIds = array_unique(array_merge($modKepzesIds, $oldKepzesIds));
+ foreach ($kepzesIds as $kepzesId) {
+
+ if (!is_array($kepzesMod[$kepzesId])) $kepzesMod[$kepzesId] = array();
+ if (!is_array($kepzesOld[$kepzesId])) $kepzesOld[$kepzesId] = array();
+
+ $add = array_unique(array_diff($kepzesMod[$kepzesId], $kepzesOld[$kepzesId]));
+ $del = array_unique(array_diff($kepzesOld[$kepzesId], $kepzesMod[$kepzesId]));
+ $diff = array_unique(array_merge($add, $del));
+ // Aki $dt után került be a képzésbe és most kiveendő vagy felveendő, azt töröljük
+ if (count($diff) > 0) {
+ $q = "DELETE FROM kepzesDiak WHERE kepzesId=%u AND tolDt>'%s'
+ AND diakId IN (".implode(',',array_fill(0,count($diff),'%u')).")";
+ $v = mayor_array_join(array($kepzesId, $dt), $diff);
+ $r = db_query($q, array('fv'=>'diakKepzesModositas/delete','modul'=>'naplo_intezmeny','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ }
+ if (count($del) > 0) {
+ // a tolDt=$dt esetén csak a lezárandókat kell törölni
+ $q = "DELETE FROM kepzesDiak WHERE kepzesId=%u AND tolDt='%s'
+ AND diakId IN (".implode(',',array_fill(0,count($del),'%u')).")";
+ $v = mayor_array_join(array($kepzesId, $dt), $del);
+ $r = db_query($q, array('fv'=>'diakKepzesModositas/delete','modul'=>'naplo_intezmeny','values'=>$v), $lr);
+ // Aki korábban benne volt a képzésben, de most nincs, azt le kell zárni
+ $q = "UPDATE kepzesDiak SET igDt='%s' - INTERVAL 1 DAY WHERE kepzesId=%u AND tolDt<'%s' AND (igDt IS NULL OR '%s'<=igDt)
+ AND diakId IN (".implode(',',array_fill(0,count($del),'%u')).")";
+ $v = mayor_array_join(array($dt, $kepzesId, $dt, $dt), $del);
+ $r = db_query($q, array('fv'=>'diakKepzesModositas/update','modul'=>'naplo_intezmeny','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ }
+ if (count($add) > 0) {
+ // Aki eddig nem volt, azt fel kell venni
+ $v = $INS = array();
+ foreach ($add as $diakId) {
+ $INS[] = "(%u, %u, '%s', NULL)";
+ array_push($v, $kepzesId, $diakId, $dt);
+ }
+ if (count($INS)>0) {
+ $q = "INSERT INTO kepzesDiak (kepzesId, diakId, tolDt, igDt) VALUES ".implode(',',$INS);
+ db_query($q, array('fv'=>'diakKepzesModositas/inster','modul'=>'naplo_intezmeny','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr); db_close($lr); return false; }
+ }
+ }
+ }
+ db_commit($lr);
+ db_close($lr);
+
+}
+
+?> \ No newline at end of file
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/tanar.php b/mayor-orig/www/include/modules/naplo/intezmeny/tanar.php
new file mode 100644
index 00000000..68a203a8
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/tanar.php
@@ -0,0 +1,54 @@
+<?php
+
+ function tanarAdatModositas($ADAT) {
+
+ $FIELDS = getTableFields('tanar');
+ $v = array();
+ foreach($ADAT as $attr => $value) {
+ if (array_key_exists($attr, $FIELDS) && !in_array($attr, array('action','tanarId'))) {
+ if ($value == '') {
+ $T[] = "$attr=NULL";
+ } else {
+ $v[] = $value;
+ $T[] = "$attr='%s'";
+ }
+ }
+ }
+ $q = "UPDATE tanar SET ".implode(',',$T)." WHERE tanarId=%u";
+ $v[] = $ADAT['tanarId'];
+ return db_query($q, array('fv' => 'tanarAdatModositas', 'modul' => 'naplo_intezmeny', 'values' => $v));
+
+ }
+
+ function ujTanar($ADAT) {
+
+
+ $FIELDS = getTableFields('tanar');
+ $A = $V = $v = array();
+ // Ellenőrizzük, hogy az oktatási azonosító szerepel-e már....
+ if ($ADAT['oId'] != '') {
+ $q = "SELECT COUNT(*) FROM tanar WHERE oId=%u";
+ $db = db_query($q, array('fv' => 'ujTanar/ütközés ellenőrzés','modul' => 'naplo_intezmeny', 'values' => array($ADAT['oId']), 'result' => 'value'));
+ if ($db > 0) {
+ $_SESSION['alert'][] = 'message:wrong_data:ujTanar/ütközés ellenőrzés:ütköző oktatási azonosító ('.$ADAT['oId'].')';
+ return false;
+ }
+ }
+ foreach($ADAT as $attr => $value) {
+ if (array_key_exists($attr,$FIELDS) && !in_array($attr, array('action','tanarId'))) {
+ if ($value == '' && !in_array($attr, array('viseltNevElotag'))) {
+ $V[] = "NULL";
+ } else {
+ $V[] = "'%s'";
+ $v[] = $value;
+ }
+ $A[] = "$attr";
+ }
+ }
+ $q = "INSERT INTO tanar (".implode(',', $A).") VALUES (".implode(',',$V).')';
+
+ return db_query($q, array('fv' => 'ujTanar', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v), $lr);
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/tankor.php b/mayor-orig/www/include/modules/naplo/intezmeny/tankor.php
new file mode 100644
index 00000000..8db17e7a
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/tankor.php
@@ -0,0 +1,201 @@
+<?php
+
+ function ujTankor($ADAT) {
+
+
+ $return = false;
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'ujTankor'));
+ if (!$lr) return false;
+
+ /* pre-check variables */
+ //...
+ /* pre-check */
+ if (isset($ADAT['tankorId']) && $ADAT['tankorId']!='') {
+ $return = $tankorId = $ADAT['tankorId'];
+ $q = "UPDATE tankor SET felveheto=%u, min=%u, max=%u, kovetelmeny='%s' WHERE tankorId=%u";
+ $v = array($ADAT['felveheto'], $ADAT['min'], $ADAT['max'], $ADAT['kovetelmeny'],$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']);
+ $return = $tankorId = db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'result' => 'insert', 'values' => $v), $lr);
+ $tanarFelvesz = true;
+ }
+ /* tankorTipus rev 1261++ -- 1294 */
+ if (isset($ADAT['tankorTipus']) && !is_null($ADAT['tankorTipus'])) {
+ $q = "UPDATE tankor SET tankorTipus='%s' WHERE tankorId=%u";
+ $v = array($ADAT['tankorTipus'], $tankorId);
+ db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'values' => $v));
+ }
+ /* tankorTipus rev 1294++ */
+ if (isset($ADAT['tankorTipusId']) && !is_null($ADAT['tankorTipusId'])) {
+ $q = "UPDATE tankor SET tankorTipusId='%s' WHERE tankorId=%u";
+ $v = array($ADAT['tankorTipusId'], $tankorId);
+ db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'values' => $v));
+ $q = "SELECT jelleg FROM tankorTipus WHERE tankorTipusId=%u";
+ $v = array($ADAT['tankorTipusId']);
+ $tankorTipusJelleg = db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'result'=>'value','values' => $v));
+ }
+
+ /* TankörCsoport min/max - a tankörcsoport minden tankörében átállítjuk ezeket */
+ $q = "UPDATE ".__INTEZMENYDBNEV.".tankor SET min=%u, max=%u WHERE tankorId IN (
+ SELECT DISTINCT tankorId FROM tankorCsoport WHERE csoportId IN (
+ SELECT csoportId FROM tankorCsoport WHERE tankorId=%u
+ )
+ )";
+ $v = array($ADAT['min'], $ADAT['max'], $tankorId);
+ db_query($q, array('fv' => 'ujTankor/minMax', 'modul' => 'naplo', 'values' => $v));
+
+ //--
+ $IOSZTALY = getTankorOsztalyai($tankorId, array('result' => 'id'), $lr); //TAGOK ALAPJÁN???
+ for ($i = 0; $i < count($ADAT['osztalyok']); $i++) {
+ $q = "REPLACE INTO tankorOsztaly (tankorId, osztalyId) VALUES (%u, %u)";
+ $v = array($tankorId, $ADAT['osztalyok'][$i]);
+ db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ }
+
+ /* */
+ $TOSZTALY = getTankorOsztalyaiByTanev($tankorId, $ADAT['tanev'], array('result' => 'id', 'tagokAlapjan' => true), $lr);
+
+ /* FIGYELEM! EZ veszélyes művelet! */
+ if (is_array($IOSZTALY) && is_array($ADAT['osztalyok'])) $DEL_OSZTALY = array_diff($IOSZTALY,$ADAT['osztalyok']);
+ if (($_ERR = array_intersect($DEL_OSZTALY,$TOSZTALY))) {
+ $_SESSION['alert'][] = 'info:tankorOsztalyNemTorolheto:'.implode('-',$_ERR);
+ for ($k=0; $k<count($_ERR); $k++) {
+ $ADAT['osztalyok'][] = $_ERR[$k];
+ }
+ }
+ $DEL_OSZTALY = array_diff($DEL_OSZTALY,$TOSZTALY);
+
+ if (is_array($DEL_OSZTALY) && count($DEL_OSZTALY)>0) {
+ $q = "DELETE FROM tankorOsztaly WHERE osztalyId IN (".implode(',', array_fill(0, count($DEL_OSZTALY), '%u')).") AND tankorId=%u";
+ $v = mayor_array_join($DEL_OSZTALY, array($tankorId));
+ db_query($q, array('fv' => 'ujTankor/del-oszt', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+ }
+
+ /* create name */
+ // osztalyId alapján évfolyam, osztály jelek lekérdezése
+ // abból összeállítás
+ // getOsztalyAdat helyett
+
+ $TARGYADAT = getTargyById($ADAT['targyId'],$lr);
+ $kdt = '3000-01-01';
+ $vdt = '1970-01-01';
+ if (is_array($ADAT['szemeszterek']))
+ for ($j = 0; $j < count($ADAT['szemeszterek']); $j++) {
+ $nev = '';
+ $szid = $ADAT['szemeszterek'][$j];
+ $_SZ = getSzemeszterek(array('filter' => array("szemeszterId=$szid")));
+ if ($_SZ[0]['kezdesDt'] < $kdt) $kdt = $_SZ[0]['kezdesDt'];
+ if ($_SZ[0]['zarasDt'] > $vdt) $vdt = $_SZ[0]['zarasDt'];
+ $_tanev = $_SZ[0]['tanev'];
+ $_szemeszter = $_SZ[0]['szemeszter'];
+ $_oraszam = $ADAT['SZ'.$szid];
+ if ($tankorTipusJelleg=='osztályfüggetlen') {
+ $nev = "Isk.";
+ } else {
+ $OSZTALYOK = getOsztalyok($_tanev);
+ if ($OSZTALYOK !== false && is_array($OSZTALYOK) && is_array($ADAT['osztalyok'])) {
+ $nev = '';
+ $TMP = array();
+ for($i = 0; $i < count($OSZTALYOK); $i++) {
+ // Ha évenként változik az osztály jele, akkor jobb, ha nem generáljuk, hanem a lekérdezett adatokat használjuk!
+ // $_oj = genOsztalyJel($_tanev, $OSZTALYOK[$i]);
+ $_oj = $OSZTALYOK[$i]['osztalyJel'];
+ if ($_oj!==false && !is_null($_oj)) {
+ list($e,$o) = explode('.',$_oj);
+ if (in_array($OSZTALYOK[$i]['osztalyId'], $ADAT['osztalyok'])) $TMP[$e][]= $o;
+ }
+ }
+ if (count(array_keys($TMP)) == 1) { // évfolyamon belüli osztályok:
+ $nev = implode('||',array_keys($TMP));
+ $nev .= '.'.implode('',$TMP[$nev]);
+ } elseif (count((array_keys($TMP)))>1) { // multi évfolyam:
+ $K = (array_keys($TMP));
+ sort($K);
+ $nev = $K[0].'-'.$K[count($K)-1].'.';
+ } else { // ekkorra már elballagott minden osztaly...
+ $nev = false;
+ $_SESSION['alert'][] = '::Minden osztály elballagott';
+ }
+ } else {
+ $nev = false; // adott szemeszterbe nem jár osztály
+ $_SESSION['alert'][] = '::Az adott szemeszterbe nem jár osztály';
+ }
+ }
+ if ($nev !== false) {
+ $nev .= ' '.$TARGYADAT['targyNev'];
+ $nev .= ' ';
+
+ $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'];
+ $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";
+ // OVERWRITE!!!!
+ $orignev = db_query($q1, array('fv' => 'ujTankor', 'result'=>'value', 'modul' => 'naplo_intezmeny', 'values' => array($tankorId,$_tanev,$_szemeszter), 'debug'=>false), $lr);
+ if ($orignev!='' && $orignev!='Array') $nev = $orignev; // csúnya bugfix
+ }
+ $v = array($tankorId, $_tanev, $_szemeszter, $_oraszam, $nev);
+ if ($nev!='') db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'values' => $v, 'debug'=>false), $lr);
+ // delete!!!!????
+ }
+
+ }
+ if ($tanarFelvesz && $ADAT['tanarId']!='') {
+
+ $q = "INSERT INTO tankorTanar (tankorId,tanarId,beDt,kiDt) VALUES (%u, %u, '%s', '%s')";
+ $v = array($tankorId, $ADAT['tanarId'], $kdt, $vdt);
+ $r = db_query($q, array('fv' => 'ujTankor', 'modul' => 'naplo_intezmeny', 'values' => $v), $lr);
+
+ }
+
+ // =======================================================
+
+ db_close($lr);
+
+ return $return;
+ }
+
+ function tankorTorol($tankorId) {
+
+ $q = "DELETE FROM tankor WHERE tankorId=%u";
+ return db_query($q, array('fv' => 'tankorTorol', 'modul' => 'naplo_intezmeny', 'values' => array($tankorId)));
+
+ }
+
+ function tankorTargyModositas($ADAT) {
+ /**
+ * Elvárt paraméterek: $ADAT['tankorId'], $ADAT['ujTargyId'], $ADAT['targyId'] // az eredeti
+ **/
+ $lr = db_connect('naplo_intezmeny');
+ if (!$lr) return false;
+ db_start_trans($lr);
+
+ // A régi és új tárgynév lekérdezése
+ $q = "SELECT targyId, targyNev FROM targy WHERE targyId IN (%u, %u)";
+ $v = array($ADAT['ujTargyId'], $ADAT['targyId']);
+ $ret = db_query($q, array('fv'=>'tankorTargyModositas/targyNev','values'=>$v, 'result'=>'keyvaluepair'), $lr);
+ // a tárgynév cserje a tankorSzemeszter táblában
+ $q = "UPDATE tankorSzemeszter SET tankorNev=REPLACE(tankorNev,'%s','%s') WHERE tankorId=%u";
+ $v = array($ret[$ADAT['targyId']], $ret[$ADAT['ujTargyId']], $ADAT['tankorId']);
+ $r = db_query($q, array('fv'=>'tankorTargyModositas/updateTargyNev','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr, 'tankorTargyModositas'); db_close($lr); return false; }
+ // A targyId módosítása
+ $q = "UPDATE tankor SET targyId=%u WHERE tankorId=%u";
+ $v = array($ADAT['ujTargyId'], $ADAT['tankorId']);
+ $r = db_query($q, array('fv'=>'tankorTargyModositas/updateTargyId','values'=>$v), $lr);
+ if (!$r) { db_rollback($lr, 'tankorTargyModositas'); db_close($lr); return false; }
+ $nev = setTankorNev($ADAT['tankorId'], $tankorNevExtra=null, $lr);
+ if (!$nev) { db_rollback($lr, 'tankorTargyModositas'); db_close($lr); return false; }
+
+ db_commit($lr);
+ db_close($lr);
+ return true;
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/tankorSzemeszter.php b/mayor-orig/www/include/modules/naplo/intezmeny/tankorSzemeszter.php
new file mode 100644
index 00000000..fcd411c4
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/tankorSzemeszter.php
@@ -0,0 +1,200 @@
+<?php
+/*
+ function getTankorSzemeszterek($tankorIds)
+ | A függvény visszaadja az összes `tankorSzemeszter` bejegyzést: szűrő tankorIds tömb
+ --> [multiassoc][tankorId]
+ function getSzemeszterek_spec($tolTanev = '', $igTanev = '')
+ | `szemeszter` tábla bejegyzései
+ --> [indexed]
+ function tankorSzemeszterModositas($Modositas, $tankorSzemeszter, $tankorNevek, $Szemeszterek, $tanevZarasDt) {
+ | A módosító
+ * function _createName($ADAT,$SZ,$extra)
+*/
+
+ function getTankorSzemeszterek($tankorIds) {
+
+ if (count($tankorIds) > 0) {
+ $q = "SELECT * FROM tankorSzemeszter WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")";
+ return db_query($q, array(
+ 'fv' => 'getTankorSzemeszterek', 'modul' => 'naplo_intezmeny', 'result' => 'multiassoc', 'keyfield' => 'tankorId', 'values' => $tankorIds
+ ));
+ } else {
+ return array();
+ }
+
+ }
+
+ function getSzemeszterek_spec($tolTanev = '', $igTanev = '') {
+
+ $v = array();
+ if ($tolTanev != '') {
+ $where = "WHERE tanev >= %u";
+ $v[] = $tolTanev;
+ }
+ if ($igTanev != '') {
+ if ($tolTanev != '') $where .= " AND tanev <= %u";
+ else $where = "WHERE tanev <= %u";
+ $v[] = $igTanev;
+ }
+
+ $q = "SELECT * FROM szemeszter $where ORDER BY tanev,szemeszter";
+ return db_query($q, array('fv' => 'getSzemeszterek', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v));
+
+ }
+
+ function tankorSzemeszterModositas($Modositas, $tankorSzemeszter, $tankorNevek, $Szemeszterek, $tanevZarasDt) {
+
+ // $tankorTanarAdatok inicializásása - $Szemeszterek alapján
+ $tankorIds = $tankorTanarAdatok = array();
+ for ($i = 0; $i < count($Szemeszterek); $i++) {
+ $tankorTanarAdatok[$Szemeszterek[$i]['tanev']][$Szemeszterek[$i]['szemeszter']] = array(
+ 'tankorIds' => array(),
+ 'tanev' => $Szemeszterek[$i]['tanev'],
+ 'statusz' => $Szemeszterek[$i]['statusz'],
+ 'kezdesDt' => $Szemeszterek[$i]['kezdesDt'],
+ 'zarasDt' => $Szemeszterek[$i]['zarasDt']
+ );
+ }
+
+ $lr = db_connect('naplo_intezmeny');
+
+ $Values = array();
+ $Values = $v = array();
+ for ($i = 0; $i < count($Modositas); $i++) {
+
+ $M = $Modositas[$i];
+ if ($tankorTanarAdatok[$M['tanev']][$M['szemeszter']]['statusz'] != 'lezárt') {
+
+ if (is_array($tankorSzemeszter[$M['tankorId']][$M['tanev']][$M['szemeszter']])) {
+ // update - vagy semmi
+ $regiOraszam = $tankorSzemeszter[$M['tankorId']][$M['tanev']][$M['szemeszter']]['oraszam'];
+ if (floatval($M['oraszam']) >= 0 && $regiOraszam != $M['oraszam']) { // állíthatjuk nullára
+ // update - most már tényleg - itt csak az óraszám változik:
+ $q = "UPDATE tankorSzemeszter SET oraszam=%f WHERE tankorId=%u AND tanev=%u AND szemeszter=%u";
+ db_query($q, array(
+ 'fv' => 'tankorSzemeszterModositas', 'modul' => 'naplo_intezmeny',
+ 'values' => array($M['oraszam'], $M['tankorId'], $M['tanev'], $M['szemeszter'])
+ ,'debug'=>false
+ ));
+ } elseif (
+ floatval($M['oraszam']) == 0
+ && $tankorTanarAdatok[$M['tanev']][$M['szemeszter']]['statusz'] == 'tervezett'
+ && $regiOraszam != $M['oraszam']
+ ) { // Ekkor törölhetjük... nemde?
+ $q = "DELETE FROM tankorSzemeszter
+ WHERE tankorId=%u AND tanev=%u
+ AND szemeszter=%u";
+ db_query($q, array(
+ 'fv' => 'tankorSzemeszterModositas', 'modul' => 'naplo_intezmeny',
+ 'values' => array($M['tankorId'], $M['tanev'], $M['szemeszter'])
+ ,'debug'=>false
+ ));
+ }
+ } else {
+ // insert
+ $tankorNev = _createName($M, array($M['tanev'].'/'.$M['szemeszter']), $tankorNevek[$M['tankorId']]);
+ if ($tankorNev != '') {
+ array_push($v, $M['tankorId'], $M['tanev'], $M['szemeszter'], $M['oraszam'], $tankorNev);
+ $Values[] = "(%u, %u, %u, %f, '%s')";
+ // A tanár felvételéhez kell a tol-ig dt (Szemeszterek)
+ // tankorIds
+ $tankorTanarAdatok[$M['tanev']][$M['szemeszter']]['tankorIds'][] = $M['tankorId'];
+ if (!in_array($M['tankorId'], $tankorIds)) $tankorIds[] = $M['tankorId'];
+ // tankorTanarIds - a tanevZarasDt pillanatában lévő tanárait kérdezzük le
+
+ }
+ } // insert vagy update
+ } // nem lezárt szemeszter
+ } // for
+ if (count($Values) > 0) {
+ $q = "INSERT INTO tankorSzemeszter (tankorId, tanev, szemeszter, oraszam, tankorNev)
+ VALUES ".implode(',', $Values);
+ db_query($q, array('fv' => 'tankorSzemeszterModositas', 'modul' => 'naplo_intezmeny', 'values' => $v,'debug'=>false));
+ // Az $tanev évi tanárt is rendeljük hozzá!
+ // kik voltak tanárok a zárás napján
+ $q = "SELECT DISTINCT tankorId, tanarId FROM tankorTanar
+ WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
+ AND '%s' >= beDt AND '%s' <= kiDt";
+ $v = mayor_array_join($tankorIds, array($tanevZarasDt, $tanevZarasDt));
+ $ret = db_query($q, array('fv' => 'tankorSzemeszterModositas', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v, 'debug'=>false), $lr);
+ for ($i = 0; $i < count($ret); $i++) $tankorTanarIds[$ret[$i]['tankorId']][] = $ret[$i]['tanarId'];
+ foreach ($tankorTanarAdatok as $szTanev => $tanevAdat)
+ foreach ($tanevAdat as $szSzemeszter => $szemeszterAdat)
+ if (count($szemeszterAdat['tankorIds']) > 0) {
+ tankorTanarFelvesz(
+ $szemeszterAdat['tankorIds'], $tankorTanarIds, $szemeszterAdat,
+ $szemeszterAdat['kezdesDt'], $szemeszterAdat['zarasDt']
+ );
+ }
+ }
+
+ db_close($lr);
+ return true;
+
+ }
+
+ function _createName($ADAT,$SZ,$extra) {
+
+ global $TANKOR_TIPUS;
+
+ $tankorId = $ADAT['tankorId'];
+ if ($tankorId=='') return false;
+ $tanev = $ADAT['tanev'];
+ $szemeszter = $ADAT['szemeszter'];
+
+ $targyId = getTankorTargyId($tankorId);
+ $TANKOROSZTALYOK = getTankorOsztalyai($tankorId, array('result' => 'id'));
+
+ if ($targyId=='') return false;
+ $TARGYADAT = getTargyById($targyId);
+ $kdt='3000-01-01';
+ $vdt='1970-01-01';
+ if (is_array($SZ))
+ for ($j=0; $j<count($SZ); $j++) {
+ $nev = '';
+ list($_tanev,$_szemeszter)= explode('/',$SZ[$j]);
+ //checkOsztalyInTanev($_tanev);
+ $OSZTALYOK = getOsztalyok($_tanev);
+ if ($OSZTALYOK!== false && is_array($OSZTALYOK) && is_array($TANKOROSZTALYOK)) {
+ $nev = '';
+ $TMP = array();
+ for($i=0; $i<count($OSZTALYOK); $i++) {
+ // Ha évenként változik az osztály jele, akkor jobb, ha nem generáljuk, hanem a lekérdezett adatokat használjuk!
+ // $_oj = genOsztalyJel($_tanev, $OSZTALYOK[$i]);
+ $_oj = $OSZTALYOK[$i]['osztalyJel'];
+ if ($_oj!==false) {
+ list($e,$o) = explode('.',$_oj);
+ if (in_array($OSZTALYOK[$i]['osztalyId'], $TANKOROSZTALYOK)) $TMP[$e][]= $o;
+ }
+ }
+ if (count(array_keys($TMP)) == 1) { // évfolyamon belüli osztályok:
+ $nev = implode('||',array_keys($TMP));
+ $nev .= '.'.implode('',$TMP[$nev]);
+ } elseif (count((array_keys($TMP)))>1) { // multi évfolyam:
+ $K = (array_keys($TMP));
+ sort($K);
+ $nev = $K[0].'-'.$K[count($K)-1].'.';
+ } else { // ekkorra már elballagott minden osztaly...
+ $nev = false;
+
+ }
+
+ } else {
+ $nev = false; // adott szemeszterbe nem jár osztály
+ }
+
+ if ($nev!== false) {
+ $nev .= ' '.$TARGYADAT['targyNev'];
+ foreach($TANKOR_TIPUS as $_tt=>$_tipus) {
+ if (strstr($extra,$_tipus)) {
+ $_extra = $_tipus;
+ }
+ }
+ $nev .= ' '.$_extra;
+ }
+ }
+ return $nev;
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/tankorTanar.php b/mayor-orig/www/include/modules/naplo/intezmeny/tankorTanar.php
new file mode 100644
index 00000000..af6840e9
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/tankorTanar.php
@@ -0,0 +1,292 @@
+<?php
+
+ function tankorTanarTorol($tankorId,$tanarId,$beDt,$kiDt) { // CORE function
+
+ $q = "SELECT COUNT(*) AS db FROM szemeszter WHERE statusz='lezárt' AND
+ (('%s' BETWEEN szemeszter.kezdesDt AND szemeszter.zarasDt)
+ OR
+ ('%s' BETWEEN szemeszter.kezdesDt AND szemeszter.zarasDt))
+ LIMIT 1";
+ $v = array($beDt, $kiDt);
+ $r = db_query($q, array('fv' => 'tankorTanarTorol', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => $v));
+
+ if ($r == 0) {
+ $q = "DELETE FROM ".__INTEZMENYDBNEV.".tankorTanar WHERE tankorId=%u AND bedt='%s' AND tanarId=%u";
+ $v = array($tankorId, $beDt, $tanarId);
+ db_query($q, array('fv' => 'tankorTanarTorol', 'modul' => 'naplo_intezmeny', 'values' => $v, 'rollback' => true));
+ } else {
+ $_SESSION['alert'][] = 'info:lezart_tanev';
+ }
+ }
+
+ function tankorTanarJavit($tankorId,$tanarId,$beDt,$kiDt) {
+
+ $q = "SELECT COUNT(*) AS db FROM szemeszter WHERE statusz='lezárt' AND
+ (('%s' BETWEEN szemeszter.kezdesDt AND szemeszter.zarasDt)
+ OR
+ ('%s' BETWEEN szemeszter.kezdesDt AND szemeszter.zarasDt))
+ LIMIT 1";
+ $v = array($beDt, $kiDt);
+ $r = db_query($q, array('fv' => 'tankorTanarTorol', 'modul' => 'naplo_intezmeny', 'result' => 'value', 'values' => $v));
+
+ if ($r == 0) {
+ $q = "UPDATE ".__INTEZMENYDBNEV.".tankorTanar SET kiDt='%s' WHERE tankorId=%u AND bedt='%s' AND tanarId=%u";
+ $v = array($kiDt,$tankorId, $beDt, $tanarId);
+ db_query($q, array('fv' => 'tankorTanarTorol', 'modul' => 'naplo_intezmeny', 'values' => $v, 'rollback' => true));
+ } else {
+ $_SESSION['alert'][] = 'info:lezart_tanev';
+ }
+ }
+
+ //---
+
+
+ function tankorTanarFelvesz($tankorIds, $tankorTanarIds, $tanevAdat, $tolDt, $igDt) {
+
+
+ if (!is_array($tankorIds) || count($tankorIds) == 0) return false;
+ $D = array();
+
+ $lr = db_connect('naplo_intezmeny', array('fv' => 'tankorTanarFelvesz'));
+ db_start_trans($lr);
+
+ // Az intervallumban érintett tankör-tanár tagságok lekérdezése...
+ $v = mayor_array_join($tankorIds, array($igDt, $tolDt));
+ $q = "SELECT tanarId, tankorId, min(bedt) AS mbe ,max(kidt) AS mki
+ FROM ".__INTEZMENYDBNEV.".tankorTanar WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
+ AND bedt<='%s' AND kidt>='%s' GROUP BY tankorid,tanarid";
+ $ret = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v, 'rollback' => true), $lr);
+ if ($ret === false) { db_close($lr); return false; }
+ for ($i = 0; $i < count($ret); $i++) {
+ if ($tolDt < $ret[$i]['mbe']) $ret[$i]['mbe'] = $tolDt;
+ if ($igDt > $ret[$i]['mki']) $ret[$i]['mki'] = $igDt;
+ $D[ $ret[$i]['tankorId'] ][ $ret[$i]['tanarId'] ] = array('mbe' => $ret[$i]['mbe'], 'mki' => $ret[$i]['mki'], 'torlendo' => true);
+ }
+
+ // Az érintett intervallumba eső tankör-tanár tagságok törlése
+ $q = "DELETE FROM ".__INTEZMENYDBNEV.".tankorTanar WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
+ AND bedt<='%s' AND kidt>='%s'";
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo_intezmeny', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+
+ // beszúrandó
+ for ($i = 0; $i < count($tankorIds); $i++) {
+ $tankorId = $tankorIds[$i];
+ $tanarIds = $tankorTanarIds[$tankorId];
+ for ($j = 0; $j < count($tanarIds); $j++) {
+ $tanarId = $tanarIds[$j];
+ if ($tanarId != '') {
+ $D[$tankorId][$tanarId]['torlendo'] = false;
+ if (($beDt = $D[$tankorId][$tanarId]['mbe']) == '') $beDt = $tolDt;
+ if (($kiDt = $D[$tankorId][$tanarId]['mki']) == '') $kiDt = $igDt;
+ $q = "INSERT INTO ".__INTEZMENYDBNEV.".tankorTanar (tankorId,tanarId,beDt,kiDt) VALUES (%u, %u, '%s', '%s')";
+ $v = array($tankorId, $tanarId, $beDt, $kiDt);
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo_intezmeny', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+ }
+ }
+ }
+
+ // törlendők felvétele
+ for ($i = 0; $i < count($tankorIds); $i++) {
+ $tankorId = $tankorIds[$i];
+ if (is_array($D[$tankorId]))
+ foreach($D[$tankorId] as $tanarId => $T) {
+ if ($T['torlendo']) {
+ if ($T['mbe'] < $tolDt) {
+ $beDt = $T['mbe'];
+ $kiDt = date('Y-m-d', strtotime('-1 days',strtotime($tolDt)));
+ $q = "INSERT INTO ".__INTEZMENYDBNEV.".tankorTanar (tankorId,tanarId,beDt,kiDt) VALUES (%u, %u, '%s', '%s')";
+ $v = array($tankorId, $tanarId, $beDt, $kiDt);
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo_intezmeny', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+ }
+ if ($T['mki'] > $igDt) {
+ $kiDt = $T['mki'];
+ $beDt = date('Y-m-d', strtotime('+1 days',strtotime($igDt)));
+ $q = "INSERT INTO ".__INTEZMENYDBNEV.".tankorTanar (tankorId,tanarId,beDt,kiDt) VALUES (%u, %u, '%s','%s')";
+ $v = array($tankorId, $tanarId, $beDt, $kiDt);
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo_intezmeny', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+ }
+ }
+ }
+ }
+
+ // tankörblokkok ellenőrzése - csak nem tervezett tanévben
+ // Érintett blokkok lekérdezése
+ if ($tanevAdat['statusz'] != 'tervezett') {
+ $blokkIds = getTankorBlokkByTankorId($tankorIds, $tanevAdat['tanev']);
+ if (is_array($blokkIds)) foreach ($blokkIds as $index => $blokkId) {
+ // A blokk tankörei
+ $bTankorIds = getTankorokByBlokkId($blokkId, $tanevAdat['tanev']);
+
+ // Ellenőrizzük a tankör tanárokat - azonosak-e tankörönként
+ $q = "SELECT tanarId,COUNT(DISTINCT tankorId) AS c FROM ".__INTEZMENYDBNEV.".tankorTanar
+ WHERE tankorId IN (".implode(',', array_fill(0, count($bTankorIds), '%u')).")
+ AND beDt <= '%s' AND (kiDt IS NULL OR '%s' <= kiDt)
+ GROUP BY tanarId HAVING c>1
+ ORDER BY tankorId,tanarId";
+ $v = mayor_array_join($bTankorIds, array($igDt, $tolDt));
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz/BlokkEllenőrzés', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $v), $lr);
+ if (is_array($r) && count($r) > 0) {
+ db_rollback($lr, 'Ütköző tanárt találtam egy blokkban ('.$blokkId.')! Visszaállítjuk az eredeti állapotot!');
+ db_close($lr);
+ return false;
+ }
+ }
+ }
+ /* ========================================================
+ Órarend módosítása
+ ======================================================== */
+
+
+ if ($tanevAdat['statusz'] == 'aktív') {
+
+ $tanevDbNev = tanevDbNev(__INTEZMENY, $tanevAdat['tanev']);
+
+ // ÓrarendiOraTankor bejegyzés ellenőrzés/készítés
+ $V = $v2 = array();
+ foreach ($tankorIds as $i => $tankorId) {
+ if ($tankorTanarIds[$tankorId][0] != '') { // Ha akarunk egyáltalán tanárt hozzárendelni
+ // van-e már az igényeinknek megfelelő bejegyzés
+ $q = "SELECT * FROM `%s`.orarendiOraTankor WHERE tankorId=%u
+ AND tanarId IN (".implode(',', array_fill(0, count($tankorTanarIds[$tankorId]), '%u')).") LIMIT 1";
+ $v = mayor_array_join(array($tanevDbNev, $tankorId), $tankorTanarIds[$tankorId]);
+ $ret = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v, 'rollback' => true), $lr);
+ if ($ret === false) { db_close($lr); return false; }
+
+ if (count($ret) != 0) { // ha van, akkor az elsőt használjuk
+ $OOT[$tankorId] = $ret[0];
+ } else { // ha nincs, akkor generálunk egy jót
+ $OOT[$tankorId] = array(
+ 'tanarId' => $tankorTanarIds[$tankorId][0],
+ 'osztalyJel' => 'NaN',
+ 'targyJel' => $tankorId.'-'.$tankorTanarIds[$tankorId][0],
+ 'tankorId' => $tankorId
+ );
+ $V[] = "(%u, 'NaN', '%s', %u)";
+ array_push($v2, $tankorTanarIds[$tankorId][0], $tankorId.'-'.$tankorTanarIds[$tankorId][0], $tankorId);
+ }
+ }
+ }
+ if (count($V) > 0) { // Az új bejegyzéseket felvesszük
+ $q = "INSERT INTO `%s`.orarendiOraTankor (tanarId,osztalyJel,targyJel,tankorId) VALUES ".implode(',', $V);
+ array_unshift($v2, $tanevDbNev);
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'values' => $v2, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+
+ }
+
+ // Az érintett órarendi bejegyzések lekérdezése beDt szerint rendezve
+ $q = "SELECT tolDt,igDt,het,nap,ora,tankorId,tanarId,osztalyJel,targyJel,teremId
+ FROM `%s`.orarendiOra LEFT JOIN `%s`.orarendiOraTankor USING (tanarId,osztalyJel,targyJel)
+ WHERE tolDt <= '%s' AND (igDt >= '%s' OR igDt IS NULL)
+ AND tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).")
+ ORDER BY tankorId,tolDt";
+ $v = mayor_array_join(array($tanevDbNev, $tanevDbNev, $igDt, $tolDt), $tankorIds);
+ $ret = db_query($q, array(
+ 'fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'tankorId', 'values' => $v, 'rollback' => true
+ ), $lr);
+ if ($ret === false) { db_close($lr); return false; }
+
+ foreach ($ret as $tankorId => $tankorOrarendiBejegyzesek) {
+
+ // Ha van orarendiOra bejegyzés és nem akarunk tanárt hozzárendelni - az hiba!!
+ if (!is_array($OOT[$tankorId])) {
+ db_rollback($lr, 'Létező órarendi óra esetén a tanár nem törölhető:'.$tankorId); db_close($lr); return false;
+ };
+
+ $tanarId = $OOT[$tankorId]['tanarId'];
+ $osztalyJel = $OOT[$tankorId]['osztalyJel'];
+ $targyJel = $OOT[$tankorId]['targyJel'];
+
+ foreach ($tankorOrarendiBejegyzesek as $i => $TOB) {
+ if ($TOB['teremId'] == '') {
+ $TOB['teremId'] = 'NULL';
+ $valueStr = "(%u, %u, %u, %u, '%s', '%s', %s, '%s', '%s')";
+ } else {
+ $valueStr = "(%u, %u, %u, %u, '%s', '%s', %u, '%s', '%s')";
+ }
+ if ($TOB['tolDt'] < $tolDt) { // balról túlnyúlik - kettévágjuk
+ $q = "UPDATE `%s`.orarendiOra SET igDt='%s' - INTERVAL 1 DAY
+ WHERE tolDt='%s' AND tanarId=%u
+ AND het=%u AND nap=%u AND ora=%u";
+ $v = array($tanevDbNev, $tolDt, $TOB['tolDt'], $TOB['tanarId'], $TOB['het'], $TOB['nap'], $TOB['ora']);
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+ $q = "INSERT INTO `%s`.orarendiOra (het,nap,ora,tanarId,osztalyJel,targyJel,teremId,tolDt,igDt) VALUES $valueStr";
+ $v = array(
+ $tanevDbNev, $TOB['het'], $TOB['nap'], $TOB['ora'], $TOB['tanarId'], $TOB['osztalyJel'],
+ $TOB['targyJel'], $TOB['teremId'], $tolDt, $TOB['igDt']
+ );
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+ $TOB['tolDt'] = $tolDt; // Az intervallumot lefedő bejegyzések miatt - három fele fogjuk vágni
+ }
+ if ($igDt < $TOB['igDt']) { // jobbról túlnyúlik - kettévágjuk !! igDt nem lehet NULL !!
+ $q = "UPDATE `%s`.orarendiOra SET tolDt='%s' + INTERVAL 1 DAY
+ WHERE igDt='%s' AND tanarId=%u AND het=%u AND nap=%u AND ora=%u";
+ $v = array($tanevDbNev, $igDt, $TOB['igDt'], $TOB['tanarId'], $TOB['het'], $TOB['nap'], $TOB['ora']);
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+ $q = "INSERT INTO `%s`.orarendiOra (het,nap,ora,tanarId,osztalyJel,targyJel,teremId,tolDt,igDt) VALUES $valueStr";
+ $v = array(
+ $tanevDbNev, $TOB['het'], $TOB['nap'], $TOB['ora'], $TOB['tanarId'], $TOB['osztalyJel'],
+ $TOB['targyJel'], $TOB['teremId'], $TOB['tolDt'], $igDt
+ );
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+
+ }
+ // A közbensőkben tanárt váltunk
+ if ($tanarId != $TOB['tanarId']) {
+ $q = "UPDATE `%s`.orarendiOra LEFT JOIN `%s`.orarendiOraTankor USING (tanarId,osztalyJel,targyJel)
+ SET tanarId=%u, osztalyJel='%s', targyJel='%s'
+ WHERE '%s'<=tolDt AND igDt<='%s' AND tanarId=%u AND het=%u AND nap=%u AND ora=%u AND tankorId=%u";
+ $v = array($tanevDbNev, $tanevDbNev, $tanarId, $osztalyJel, $targyJel, $tolDt, $igDt, $TOB['tanarId'], $TOB['het'], $TOB['nap'], $TOB['ora'], $tankorId);
+ $r = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'values' => $v, 'rollback' => true), $lr);
+ if ($r === false) { db_close($lr); return false; }
+ }
+
+ }
+
+ } // foreach
+
+ // A módosított órarend ütközésellenőrzése - [k] munkatervenként külön. Itt most megengedjük, hogy ha több munkaterv is van, de egyszerre van órája a tanárnak... :/
+// $q = "SELECT tanarId, dt, ora, COUNT(*) AS db
+// FROM `%s`.nap LEFT JOIN `%s`.orarendiOra
+// ON (((DAYOFWEEK(dt)+5) MOD 7)+1 = orarendiOra.nap)
+// AND orarendiOra.het=nap.orarendiHet
+// AND orarendiOra.tolDt<=dt AND orarendiOra.igDt>=dt
+// WHERE '%s' <= dt AND dt <= '%s'
+// GROUP BY munkatervId,tanarId, dt, ora
+// HAVING db > 1";
+ // [bb] szerintem ez a jó: a hét-nap-óra-tanár-tolDt kulcs az orarendiOra táblában, így ha két sorban ezek megegyeznek, akkor nem kell külön számolni...
+ $q = "SELECT tanarId, dt, ora, COUNT(DISTINCT het, nap, ora, tanarId, tolDt) AS db
+ FROM `%s`.nap LEFT JOIN `%s`.orarendiOra
+ ON (((DAYOFWEEK(dt)+5) MOD 7)+1 = orarendiOra.nap)
+ AND orarendiOra.het=nap.orarendiHet
+ AND orarendiOra.tolDt<=dt AND orarendiOra.igDt>=dt
+ WHERE '%s' <= dt AND dt <= '%s'
+ GROUP BY tanarId, dt, ora
+ HAVING db > 1";
+ $v = array($tanevDbNev, $tanevDbNev, $tolDt, $igDt);
+ $ret = db_query($q, array('fv' => 'tankorTanarFelvesz', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v, 'rollback' => true), $lr);
+ if ($ret === false) { db_close($lr); return false; }
+
+ if (count($ret)) { // Van ütközés!
+ db_rollback($lr, 'Az összes ütközést ellenőriztem, és a megadott '.$tolDt.'-'.$igDt.' intervallumban egy (esetleg másik) tanárnak több órája van egy időben (tanarId='.$ret[0]['tanarId'].', dt='.$ret[0]['dt'].', ora='.$ret[0]['ora'].') - így visszaállítjuk az eredeti állapotot...');
+ db_close($lr);
+ return false;
+ }
+
+ } // aktív tanév
+
+ db_commit($lr);
+ db_close($lr);
+ return true;
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php b/mayor-orig/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php
new file mode 100644
index 00000000..600ee897
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php
@@ -0,0 +1,224 @@
+<?php
+
+ function getTanarLekotottOraszam($tanarId) {
+
+ $q = "SELECT sum(oraszam)/2 FROM tankorSzemeszter LEFT JOIN tankorTanar USING (tankorId) WHERE tanev=".__TANEV." AND tanarId=%u";
+
+ global $_TANEV;
+
+ $q = "select sum(oraszam/db) from (
+ select tankorId, sum(oraszam)/2 as oraszam, (
+ select count(tanarId) from tankorTanar where tankorId=tankorSzemeszter.tankorId and beDt<='".$_TANEV['kezdesDt']."'
+ and (kiDt is NULL OR kiDt>='".$_TANEV['zarasDt']."')
+ ) as db
+ from tankorSzemeszter left join tankorTanar using (tankorId)
+ where tanev=".__TANEV." and tanarId=%u and beDt<='".$_TANEV['kezdesDt']."'
+ and (kiDt is NULL or kiDt>='".$_TANEV['zarasDt']."') group by tankorId
+ ) as tankorOraszamPerTanar";
+
+ return db_query($q, array('fv'=>'getTanarLekotottOraszam','modul'=>'naplo_intezmeny','result'=>'value','values'=>array($tanarId)));
+
+ }
+
+ function getTankorokBySzuro($Szuro) {
+ /*
+ osztaly U tanar U tanarNelkul || targy U mk U tanar U tanarNelkul || (osztaly M targy) U (osztaly M mk) U tanar U tanarNelkul
+ */
+ global $_TANEV;
+
+ $vanOsztaly = (is_array($Szuro['osztalyIds']) && count($Szuro['osztalyIds'])>0);
+ $vanMk = (is_array($Szuro['mkIds']) && count($Szuro['mkIds'])>0);
+ $vanTargy = (is_array($Szuro['targyIds']) && count($Szuro['targyIds'])>0);
+ $vanTanar = (is_array($Szuro['tanarIds']) && count($Szuro['tanarIds'])>0);
+ $vanTanarNelkuliek = (bool)$Szuro['tanarNelkuliTankorok'];
+
+ $v = $q = array();
+ if ($vanOsztaly && !$vanMk && !$vanTargy) {
+ $q[] = "SELECT tankorId, tankorNev, targyId, tankorTipusId, avg(oraszam) AS hetiOraszam
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)
+ LEFT JOIN tankorOsztaly USING (tankorId)
+ WHERE osztalyId IN (".implode(',', array_fill(0, count($Szuro['osztalyIds']), '%u')).")
+ AND tanev=".__TANEV."
+ GROUP BY tankorId, tankorNev, targyId, tankorTipusId
+ ORDER BY tankorNev, tankorId";
+ $v = array_merge($v, $Szuro['osztalyIds']);
+ }
+ if ($vanMk) {
+ if ($vanOsztaly) {
+ $q[] = "SELECT tankorId, tankorNev, targyId, tankorTipusId, avg(oraszam) AS hetiOraszam
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)
+ LEFT JOIN targy USING (targyId)
+ WHERE mkId IN (".implode(',', array_fill(0, count($Szuro['mkIds']), '%u')).")
+ AND tanev=".__TANEV."
+ AND tankorId IN (
+ SELECT tankorId FROM tankorOsztaly WHERE osztalyId IN (".implode(',', array_fill(0, count($Szuro['osztalyIds']), '%u')).")
+ )
+ GROUP BY tankorId, tankorNev, targyId, tankorTipusId
+ ORDER BY tankorNev, tankorId";
+ $v = array_merge($v, $Szuro['mkIds'], $Szuro['osztalyIds']);
+ } else {
+ $q[] = "SELECT tankorId, tankorNev, targyId, tankorTipusId, avg(oraszam) AS hetiOraszam
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)
+ LEFT JOIN targy USING (targyId)
+ WHERE mkId IN (".implode(',', array_fill(0, count($Szuro['mkIds']), '%u')).")
+ AND tanev=".__TANEV."
+ GROUP BY tankorId, tankorNev, targyId, tankorTipusId
+ ORDER BY tankorNev, tankorId";
+ $v = array_merge($v, $Szuro['mkIds']);
+ }
+ }
+ if ($vanTargy) {
+ if ($vanOsztaly) {
+ $q[] = "SELECT tankorId, tankorNev, targyId, tankorTipusId, avg(oraszam) AS hetiOraszam
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)
+ WHERE targyId IN (".implode(',', array_fill(0, count($Szuro['targyIds']), '%u')).")
+ AND tanev=".__TANEV."
+ AND tankorId IN (
+ SELECT tankorId FROM tankorOsztaly WHERE osztalyId IN (".implode(',', array_fill(0, count($Szuro['osztalyIds']), '%u')).")
+ )
+ GROUP BY tankorId, tankorNev, targyId, tankorTipusId
+ ORDER BY tankorNev, tankorId";
+ $v = array_merge($v, $Szuro['targyIds'], $Szuro['osztalyIds']);
+ } else {
+ $q[] = "SELECT tankorId, tankorNev, targyId, tankorTipusId, avg(oraszam) AS hetiOraszam
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)
+ WHERE targyId IN (".implode(',', array_fill(0, count($Szuro['targyIds']), '%u')).")
+ AND tanev=".__TANEV."
+ GROUP BY tankorId, tankorNev, targyId, tankorTipusId
+ ORDER BY tankorNev, tankorId";
+ $v = array_merge($v, $Szuro['targyIds']);
+ }
+ }
+ if ($vanTanar) {
+
+ $q[] = "SELECT tankorId, tankorNev, targyId, tankorTipusId, avg(oraszam) AS hetiOraszam
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)
+ LEFT JOIN tankorTanar USING (tankorId)
+ WHERE tanarId IN (".implode(',', array_fill(0, count($Szuro['tanarIds']), '%u')).")
+ AND tanev=".__TANEV."
+ GROUP BY tankorId, tankorNev, targyId, tankorTipusId
+ ORDER BY tankorNev, tankorId";
+ $v = array_merge($v, $Szuro['tanarIds']);
+
+ }
+ if ($vanTanarNelkuliek) {
+ $q[] = "SELECT tankor.tankorId AS tankorId, tankorNev, targyId, tankorTipusId, avg(oraszam) AS hetiOraszam
+ FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)
+ LEFT JOIN tankorTanar ON tankor.tankorId=tankorTanar.tankorId AND beDt<='".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt>='".$_TANEV['zarasDt']."')
+ WHERE tanarId IS NULL
+ AND tanev=".__TANEV."
+ GROUP BY tankorId, tankorNev, targyId, tankorTipusId
+ ORDER BY tankorNev, tankorId";
+
+ }
+
+ if (count($q) > 0) {
+ $query = '('.implode(') UNION DISTINCT (', $q).')';
+ $return = db_query($query, array('debug'=>false,'fv'=>'getTankorokBySzuro','modul'=>'naplo_intezmeny','result'=>'indexed','values'=>$v));
+
+ for ($i=0; $i<count($return); $i++) {
+ $return[$i]['tanarIds'] = getTankorTanaraiByInterval($return[$i]['tankorId'], array('tanev' => __TANEV, 'result' => 'idonly'));
+ // A tankör lekötött óraszáma
+ $tmp = getTankorTervezettOraszamok((array)$return[$i]['tankorId']);
+ foreach (array(1, 2) as $szemeszter) {
+ $osz = 0;
+ foreach ($tmp[ $return[$i]['tankorId'] ]['bontasOraszam'][$szemeszter-1] as $oAdat) $osz += floatval($oAdat['hetiOraszam']);
+ $return[$i]['tervezettOraszamok'][$szemeszter] = array('btOraszam'=> $osz, 'tszOraszam' => floatval($tmp[ $return[$i]['tankorId'] ]['oraszam'][$szemeszter-1]));
+ };
+ $return[$i]['bontasOk'] = (
+ $return[$i]['tervezettOraszamok'][1]['btOraszam']==$return[$i]['tervezettOraszamok'][1]['tszOraszam']
+ && $return[$i]['tervezettOraszamok'][2]['btOraszam']==$return[$i]['tervezettOraszamok'][2]['tszOraszam']
+ );
+ }
+
+ return $return;
+ } else { return array(); }
+ }
+
+ function getTanarokBySzuro($Szuro) {
+
+ global $_TANEV;
+
+ // Ha nincs kiválasztott tankör, akkor nincs értelme tanárokat lekérdezni
+ if (!is_array($Szuro['tankorTargyIds']) || count($Szuro['tankorTargyIds']) == 0) return array();
+
+ // Az osztály nem játszik szerepet a lehetséges tanárok szűrésében
+ $vanMk = (is_array($Szuro['mkIds']) && count($Szuro['mkIds'])>0);
+ $vanTanar = (is_array($Szuro['tanarIds']) && count($Szuro['tanarIds'])>0);
+ // Tárgy mindig lesz - ha más nem a tankörökből
+ if (is_array($Szuro['targyIds'])) $targyIds = array_merge($Szuro['targyIds'], $Szuro['tankorTargyIds']);
+ else $targyIds = $Szuro['tankorTargyIds'];
+
+ $v = $q = array();
+
+ {
+ // Itt lehet tárgy és munkaközösség, valamint a megadott tanarId-k alapján szűrni
+ if ($vanTanar) {
+ $q[] = "SELECT tanarId, concat_ws(' ',viseltNevElotag,viseltCsaladinev,viseltUtonev) as tanarNev,
+ hetiMunkaora,hetiKotelezoOraszam,
+ hetiLekotottMinOraszam,hetiLekotottMaxOraszam,hetiKotottMaxOraszam
+ FROM tanar WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó')
+ AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."')
+ AND tanarId IN (".implode(',', array_fill(0, count($Szuro['tanarIds']), '%u')).")";
+ $v = array_merge($v, $Szuro['tanarIds']);
+ }
+ if ($vanMk) {
+ $q[] = "SELECT tanarId, concat_ws(' ',viseltNevElotag,viseltCsaladinev,viseltUtonev) as tanarNev,
+ hetiMunkaora,hetiKotelezoOraszam,
+ hetiLekotottMinOraszam,hetiLekotottMaxOraszam,hetiKotottMaxOraszam
+ FROM tanar LEFT JOIN mkTanar USING (tanarId)
+ WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó')
+ AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."')
+ AND mkId IN (".implode(',', array_fill(0, count($Szuro['mkIds']), '%u')).")";
+ $v = array_merge($v, $Szuro['mkIds']);
+ }
+ // targyIds mindig van
+ $q[] = "SELECT tanarId, concat_ws(' ',viseltNevElotag,viseltCsaladinev,viseltUtonev) as tanarNev,
+ hetiMunkaora,hetiKotelezoOraszam,
+ hetiLekotottMinOraszam,hetiLekotottMaxOraszam,hetiKotottMaxOraszam
+ FROM tanar LEFT JOIN tanarKepesites USING (tanarId)
+ LEFT JOIN kepesitesTargy USING (kepesitesId)
+ WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó')
+ AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."')
+ AND targyId IN (".implode(',', array_fill(0, count($targyIds), '%u')).")";
+ $v = array_merge($v, $targyIds);
+ $q[] = "SELECT tanarId, concat_ws(' ',viseltNevElotag,viseltCsaladinev,viseltUtonev) as tanarNev,
+ hetiMunkaora,hetiKotelezoOraszam,
+ hetiLekotottMinOraszam,hetiLekotottMaxOraszam,hetiKotottMaxOraszam
+ FROM tanar LEFT JOIN mkTanar USING (tanarId)
+ LEFT JOIN targy USING (mkId)
+ WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó')
+ AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."')
+ AND targyId IN (".implode(',', array_fill(0, count($targyIds), '%u')).")";
+ $v = array_merge($v, $targyIds);
+
+ $query = '('.implode(') UNION DISTINCT (', $q).') ORDER BY tanarNev, tanarId';
+ $return = db_query($query, array('fv'=>'getTanarokBySzuro #1','modul'=>'naplo_intezmeny','result'=>'indexed','values'=>$v));
+
+ }
+ // Le kell kérdezni a tárgyait és az eddigi lekötött óraszámát a tanárnak
+ for ($i = 0; $i < count($return); $i++) {
+ $return[$i]['targyIds'] = getTargyIdsByTanarId($return[$i]['tanarId']);
+ $return[$i]['lekotottOraszam'] = getTanarLekotottOraszam($return[$i]['tanarId']);
+ }
+
+ return $return;
+
+ }
+
+ function getTankorStat() {
+
+ global $_TANEV;
+
+ $q = "select count(distinct tankorId) from tankorSzemeszter left join tankorTanar using (tankorId)
+ where tanev=".__TANEV." and tankorTanar.tanarId is not null
+ and beDt<='".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt >= '".$_TANEV['zarasDt']."')";
+ $ret['kesz'] = db_query($q, array('fv'=>'getTankorStat/1','modul'=>'naplo_intezmeny','result'=>'value'));
+
+ $q = "select count(distinct tankorId) from tankorSzemeszter where tanev=".__TANEV;
+ $ret['osszes'] = db_query($q, array('fv'=>'getTankorStat/1','modul'=>'naplo_intezmeny','result'=>'value'));
+
+ return $ret;
+ }
+
+?> \ No newline at end of file
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/terem.php b/mayor-orig/www/include/modules/naplo/intezmeny/terem.php
new file mode 100644
index 00000000..ee640a54
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/terem.php
@@ -0,0 +1,25 @@
+<?php
+
+ function teremAdatModositas($ADAT,$uj=false) {
+
+ if ($uj===true) {
+ $q = "INSERT INTO `terem` (`teremId`,`leiras`,`tipus`,`ferohely`,`telephelyId`) VALUES ((SELECT max(teremId)+1 FROM terem AS s),'%s','%s',%u,NULL)";
+ $v = array($ADAT['leiras'], $ADAT['tipus'], intval($ADAT['ferohely']));
+ } else {
+ $q = "UPDATE `terem` SET `leiras`='%s',`tipus`='%s'";
+ $v = array($ADAT['leiras'], $ADAT['tipus']);
+ if (isset($ADAT['ferohely'])) { $q .= ",`ferohely`=%u"; $v[] = $ADAT['ferohely']; }
+ else { $q .= ",`ferohely`=NULL"; }
+ if (isset($ADAT['telephelyId'])) { $q .= ",`telephelyId`=%u"; $v[] = $ADAT['telephelyId']; }
+ else { $q .= ",`telephelyId`=NULL"; }
+
+ $q .= " WHERE teremId=%u";
+ $v[] = $ADAT['teremId'];
+ }
+
+ return db_query($q, array('fv' => 'teremAdatModositas', 'modul' => 'naplo_intezmeny', 'values' => $v));
+
+
+ }
+
+?>
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/tovabbkepzes.php b/mayor-orig/www/include/modules/naplo/intezmeny/tovabbkepzes.php
new file mode 100644
index 00000000..a7f56083
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/tovabbkepzes.php
@@ -0,0 +1,159 @@
+<?php
+
+ function getTanarTovabbkepzesCiklus() {
+ // $q = "select tanarId,tovabbkepzesStatusz,sum(reszosszeg) as sumReszosszeg,sum(oraszam) as sumOraszam,tanar.tovabbkepzesForduloDt,tanev from tovabbkepzesTanulmanyiEgyseg
+ // left join tovabbkepzes USING (tovabbkepzesId) LEFT JOIN tanar USING (tanarId)
+ // WHERE tanev BETWEEN YEAR(tovabbkepzesForduloDt)-7 AND YEAR(tovabbkepzesForduloDt) GROUP BY tanarId,tovabbkepzesStatusz";
+ $q = "select tanarId,tovabbkepzesStatusz,sum(sumReszosszeg) AS sumReszosszeg,sum(IF(akkreditalt=1,sumOraszam,IF(sumOraszam<=30,sumoraszam,30))) AS sumOraszam,
+ tovabbkepzesForduloDt,tanev
+ FROM (select akkreditalt,tanarId,tovabbkepzesStatusz,sum(reszosszeg) as sumReszosszeg,sum(oraszam) as sumOraszam,tanar.tovabbkepzesForduloDt,tanev from tovabbkepzesTanulmanyiEgyseg left join tovabbkepzes USING (tovabbkepzesId) LEFT JOIN tanar USING (tanarId)
+ WHERE tanev BETWEEN YEAR(tovabbkepzesForduloDt)-8 AND YEAR(tovabbkepzesForduloDt)-1 GROUP BY tanarId,tovabbkepzesStatusz,akkreditalt) AS a GROUP BY tanarId,tovabbkepzesStatusz";
+ $r = db_query($q, array('debug'=>false,'fv'=>'getTovabbkepzesek','modul'=>'naplo_intezmeny','result'=>'indexed'));
+ return reindex($r,array('tanarId','tovabbkepzesStatusz'));
+ }
+
+ function getTanarTovabbkepzesFolyamat($dt="NOW()") {
+ $q = "select tanarId,tolDt,igDt,tanusitvanyDt,tanusitvanySzam from tovabbkepzesTanar WHERE NOW() BETWEEN tolDt AND igDt";
+ $r = db_query($q, array('debug'=>false,'fv'=>'getTovabbkepzesek','modul'=>'naplo_intezmeny','result'=>'assoc','keyfield'=>'tanarId'));
+ return $r;
+ }
+
+ function getTovabbkepzesTerv($tanev) {
+ $q = "SELECT * FROM tovabbkepzesTanulmanyiEgyseg WHERE tanev=%u";
+ $values = array($tanev);
+ $r = db_query($q, array('debug'=>false,'fv'=>'getTovabbkepzesek','modul'=>'naplo_intezmeny','result'=>'indexed','values'=>$values));
+ return $r;
+ }
+
+ function getTanarTovabbkepzesByEv($tanev,$tanarId=null) {
+ if ($tanarId>0) {
+ $values = array($tanev,$tanev,$tanarId);
+ $W = ' tanarId=%u AND ';
+ } else {
+ $values = array($tanev,$tanev);
+ $W = '';
+ }
+ $q = "SELECT * FROM tovabbkepzesTanar
+ WHERE $W tolDt<=DATE(CONCAT(%u+1,'-08-31')) AND (igDt>=DATE(CONCAT(%u,'-09-01')) OR igDt IS NULL) AND (tanusitvanySzam='' or tanusitvanySzam IS NULL)";
+ $r = db_query($q, array('debug'=>false,'fv'=>'getTanarTovabbkepzesByEv','modul'=>'naplo_intezmeny','result'=>'indexed','values'=>$values));
+ return $r;
+ }
+
+ // TODO ?
+ function getTanarTeljesitettTanulmanyiEgyseg() {
+ $q = "SELECT * FROM tovabbkepzesTanulmanyiEgyseg LEFT JOIN tovabbkepzesTanar USING (tovabbkepzesId,tanarId) WHERE tovabbkepzesStatusz='teljesített'";
+ $values = array($tanarId);
+ $r = db_query($q, array('debug'=>false,'fv'=>'getTanarTovabbkepzesByEv','modul'=>'naplo_intezmeny','result'=>'multiassoc','keyfield'=>'tanarId','values'=>$values));
+ return $r;
+ }
+
+ function getTanarTovabbkepzesek($SET = array()) {
+ $W = '';
+ $values=array();
+ if (is_array($SET) && count($SET)>0) {
+ foreach ($SET as $k => $v) {
+ $M[] = "$k='%s'";
+ $values[] = $v;
+ }
+ $W = 'WHERE '.implode(' AND ',$M);
+ }
+ $q = "SELECT * FROM tovabbkepzesTanar ".$W;
+ $r = db_query($q, array('debug'=>false,'fv'=>'getTovabbkepzesek','modul'=>'naplo_intezmeny','result'=>'indexed','values'=>$values));
+ return $r;
+ }
+ function getTovabbkepzesek() {
+ $q = "SELECT * FROM tovabbkepzes LEFT JOIN tovabbkepzoIntezmeny USING (tovabbkepzointezmenyId) ORDER BY tovabbkepzesNev";
+ $r = db_query($q, array('fv'=>'getTovabbkepzesek','modul'=>'naplo_intezmeny','result'=>'indexed'));
+ return $r;
+ }
+ function getTovabbkepzoIntezmenyek() {
+ $q = "SELECT * FROM tovabbkepzoIntezmeny ORDER BY intezmenyRovidnev,intezmenyNev";
+ $r = db_query($q, array('fv'=>'getTovabbkepzoIntezmenyek','modul'=>'naplo_intezmeny','result'=>'indexed'));
+ return $r;
+ }
+ function getKeretosszeg($tanev) {
+ $q = "SELECT keretOsszeg FROM tovabbkepzesKeret WHERE tanev=%u";
+ $v = array($tanev);
+ $r = db_query($q, array('fv'=>'getKeretosszeg','modul'=>'naplo_intezmeny','result'=>'value','values'=>$v));
+ return $r;
+ }
+
+ function ujTovabbkepzoIntezmeny($ADAT) {
+ $q = "INSERT INTO tovabbkepzoIntezmeny (intezmenyRovidnev,intezmenyNev) VALUES ('%s','%s')";
+ $v = array($ADAT['intezmenyRovidNev'],$ADAT['intezmenyNev']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzoIntezmeny','modul'=>'naplo_intezmeny','result'=>'insert','values'=>$v));
+ return $r;
+ }
+
+
+ function modKeretosszeg($tanev,$keretOsszeg) {
+ $q = "REPLACE INTO tovabbkepzesKeret (tanev,keretOsszeg) VALUES (%u,%u)";
+ $v = array($tanev,$keretOsszeg);
+ db_query($q, array('debug'=>false,'fv'=>'modKeretOsszeg','modul'=>'naplo_intezmeny','result'=>'insert','values'=>$v));
+ }
+
+ function ujTovabbkepzes($ADAT) {
+ if ($ADAT['tovabbkepzesNev']=='') return false;
+ $q = "INSERT INTO tovabbkepzes (tovabbkepzesNev,tovabbkepzoIntezmenyId, oraszam, kategoria, akkreditalt) VALUES ('%s',%u,%u,'%s',%u)";
+ $v = array($ADAT['tovabbkepzesNev'],$ADAT['tovabbkepzoIntezmenyId'],$ADAT['oraszam'],$ADAT['kategoria'],$ADAT['akkreditalt']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzes','modul'=>'naplo_intezmeny','result'=>'insert','values'=>$v));
+ return $r;
+ }
+ function modTovabbkepzes($ADAT) {
+ if ($ADAT['tovabbkepzesId']=='') return false;
+ $q = "UPDATE tovabbkepzes SET tovabbkepzesNev='%s',oraszam=%u,kategoria='%s' WHERE tovabbkepzesId=%u";
+ $v = array($ADAT['tovabbkepzesNev'],$ADAT['oraszam'],$ADAT['kategoria'],$ADAT['tovabbkepzesId']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'modTovabbkepzes','modul'=>'naplo_intezmeny','result'=>'update','values'=>$v));
+ return $r;
+ }
+ function ujTovabbkepzesTanar($ADAT) {
+ if ($ADAT['tovabbkepzesId']=='') return false;
+ $q = "INSERT INTO tovabbkepzesTanar (tovabbkepzesId,tanarId, tolDt, igDt) VALUES (%u,%u,'%s','%s')";
+ $v = array($ADAT['tovabbkepzesId'],$ADAT['tanarId'],$ADAT['tolDt'],$ADAT['igDt']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzesTanar','modul'=>'naplo_intezmeny','result'=>'insert','values'=>$v));
+ return $r;
+ }
+ function modTovabbkepzesTanar($ADAT) {
+ //if ($ADAT['tovabbkepzesId']=='') return false;
+ $q = "UPDATE tovabbkepzesTanar SET tolDt='%s', igDt='%s', tanusitvanyDt='%s', tanusitvanySzam='%s' WHERE tovabbkepzesId=%u AND tanarId=%u";
+ $v = array($ADAT['tolDt'],$ADAT['igDt'],$ADAT['tanusitvanyDt'],$ADAT['tanusitvanySzam'],$ADAT['tovabbkepzesId'],$ADAT['tanarId']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzesTanar','modul'=>'naplo_intezmeny','result'=>'update','values'=>$v));
+ return $r;
+ }
+ function delTovabbkepzesTanar($ADAT) {
+ //if ($ADAT['tovabbkepzesId']=='') return false;
+ $q = "DELETE FROM tovabbkepzesTanar WHERE tovabbkepzesId=%u AND tanarId=%u";
+ $v = array($ADAT['tovabbkepzesId'],$ADAT['tanarId']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'delTovabbkepzesTanar','modul'=>'naplo_intezmeny','result'=>'delete','values'=>$v));
+ return $r;
+ }
+ function ujTovabbkepzesTE($ADAT,$lr) {
+ $q = "INSERT INTO tovabbkepzesTanulmanyiEgyseg (tovabbkepzesId, tanarId, tanev, reszosszeg, tamogatas, tovabbkepzesStatusz, tavollet,helyettesitesRendje,prioritas) VALUES (%u,%u,%u,%u,%u,'%s','%s','%s','%s')";
+ $v = array($ADAT['tovabbkepzesId'],$ADAT['tanarId'],$ADAT['tanev'],intval($ADAT['reszosszeg']),intval($ADAT['tamogatas']),$ADAT['tovabbkepzesStatusz'],$ADAT['tavollet'],$ADAT['helyettesitesRendje'],$ADAT['prioritas']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzesTanar','modul'=>'naplo_intezmeny','result'=>'insert','values'=>$v),$lr);
+ }
+ function modTovabbkepzesTE($ADAT) {
+ $lr = db_connect('naplo_intezmeny');
+ $q = "SELECT count(*) AS db FROM tovabbkepzesTanulmanyiEgyseg WHERE tovabbkepzesId=%u AND tanarId=%u AND tanev=%u";
+ $v = array($ADAT['tovabbkepzesId'],$ADAT['tanarId'],$ADAT['tanev']);
+ $db = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzesTanar','modul'=>'naplo_intezmeny','result'=>'value','values'=>$v),$lr);
+ if ($db==0) {
+ ujTovabbkepzesTE($ADAT,$lr);
+ $q = "UPDATE tovabbkepzesTanulmanyiEgyseg SET reszosszeg=%u,tamogatas=%u,tovabbkepzesStatusz='%s',tavollet='%s',helyettesitesRendje='%s',prioritas='%s' WHERE tovabbkepzesId=%u AND tanarId=%u AND tanev=%u";
+ $v = array(intval($ADAT['reszosszeg']),intval($ADAT['tamogatas']),$ADAT['tovabbkepzesStatusz'],$ADAT['tavollet'],$ADAT['helyettesitesRendje'],$ADAT['prioritas'],$ADAT['tovabbkepzesId'],$ADAT['tanarId'],$ADAT['tanev']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzesTanar','modul'=>'naplo_intezmeny','result'=>'value','values'=>$v),$lr);
+
+ } else {
+ $q = "UPDATE tovabbkepzesTanulmanyiEgyseg SET reszosszeg=%u,tamogatas=%u,tovabbkepzesStatusz='%s',tavollet='%s',helyettesitesRendje='%s',prioritas='%s' WHERE tovabbkepzesId=%u AND tanarId=%u AND tanev=%u";
+ $v = array(intval($ADAT['reszosszeg']),intval($ADAT['tamogatas']),$ADAT['tovabbkepzesStatusz'],$ADAT['tavollet'],$ADAT['helyettesitesRendje'],$ADAT['prioritas'],$ADAT['tovabbkepzesId'],$ADAT['tanarId'],$ADAT['tanev']);
+ $r = db_query($q, array('debug'=>false,'fv'=>'ujTovabbkepzesTanar','modul'=>'naplo_intezmeny','result'=>'value','values'=>$v),$lr);
+ }
+ db_commit($lr);
+ db_close($lr);
+ }
+ function delTovabbkepzesTE($ADAT) {
+ // echo 'EZT TÖRÖLNÉM';
+ // dump($ADAT);
+ }
+
+?> \ No newline at end of file
diff --git a/mayor-orig/www/include/modules/naplo/intezmeny/valtas.php b/mayor-orig/www/include/modules/naplo/intezmeny/valtas.php
new file mode 100644
index 00000000..702766bb
--- /dev/null
+++ b/mayor-orig/www/include/modules/naplo/intezmeny/valtas.php
@@ -0,0 +1,9 @@
+<?php
+
+ function updateNaploSettings($intezmeny) {
+ $q = "DELETE FROM settings WHERE userAccount='%s' AND policy='%s'";
+ db_query($q, array('debug'=>false,'fv'=>'updateNaploSettings','modul'=>'naplo_base','values'=>array(_USERACCOUNT,_POLICY)));
+ $q = "INSERT INTO settings (userAccount,policy,intezmeny) VALUES ('%s','%s','%s')";
+ return db_query($q, array('debug'=>false,'fv'=>'updateNaploSettings','modul'=>'naplo_base','values'=>array(_USERACCOUNT,_POLICY,$intezmeny)));
+ }
+?>