aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/mayor-naplo
diff options
context:
space:
mode:
authorM.Gergo2019-10-27 02:17:37 +0100
committerM.Gergo2019-10-27 02:17:37 +0100
commitabd8cfdf391410090842081422f711779978f473 (patch)
tree134baa4655481da13d00e2315860c16e877851d7 /mayor-orig/mayor-naplo
parent6d684ff9fb3caf8de057829bda27995d5d9de361 (diff)
downloadmayor-rev4554.tar.gz
mayor-rev4554.zip
Rev: 4554rev4554
Diffstat (limited to 'mayor-orig/mayor-naplo')
-rw-r--r--mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql2
-rw-r--r--mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql3
-rw-r--r--mayor-orig/mayor-naplo/log/mayor-naplo.rev2
-rw-r--r--mayor-orig/mayor-naplo/update/pre004540-1-intezmeny.sql16
-rw-r--r--mayor-orig/mayor-naplo/update/pre004548-1-naplo.sql21
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/munkakozosseg.php23
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php2
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php4
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php8
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorBlokk.php6
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php3
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaroJegyModifier.php15
-rw-r--r--mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php17
-rw-r--r--mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/munkakozosseg.php1
-rw-r--r--mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas-pre.php551
-rw-r--r--mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas.php17
-rw-r--r--mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/munkakozosseg-pre.php2
-rw-r--r--mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport-pre.php5
-rw-r--r--mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport.php3
-rw-r--r--mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/import/tantargyFelosztas.css0
-rw-r--r--mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/import/tantargyFelosztas.phtml139
-rw-r--r--mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/munkakozosseg.phtml3
-rw-r--r--mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/tankorCsoport.phtml31
-rw-r--r--mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/import/tantargyFelosztas.jquery.min.js11
-rw-r--r--mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/munkakozosseg.jquery.min.js15
25 files changed, 877 insertions, 23 deletions
diff --git a/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql b/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql
index bc766bbd..c761440e 100644
--- a/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql
+++ b/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql
@@ -239,7 +239,9 @@ CREATE TABLE `targy` (
`zaroKovetelmeny` enum('jegy','magatartás','szorgalom','négyszintű (szöveges minősítés)','féljegy','százalékos','aláírás','háromszintű','egyedi felsorolás','szöveges szempontrendszer','teljesített óra') COLLATE utf8_hungarian_ci DEFAULT 'jegy',
`targyRovidNev` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL,
`kirTargyId` smallint(5) unsigned DEFAULT NULL,
+ `kretaTargyNev` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL,
PRIMARY KEY (`targyId`),
+ UNIQUE KEY `kretaTargyNev` (`kretaTargyNev`),
KEY `targy_FKIndex1` (`mkId`),
KEY `targy_ibfk_2` (`kirTargyId`),
CONSTRAINT `targy_ibfk_1` FOREIGN KEY (`mkId`) REFERENCES `munkakozosseg` (`mkId`) ON DELETE CASCADE ON UPDATE CASCADE,
diff --git a/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql b/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql
index 138e8c86..ad1abcff 100644
--- a/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql
+++ b/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql
@@ -241,7 +241,8 @@ CREATE TABLE `jegy` (
CREATE TABLE `csoport` (
`csoportId` int(10) unsigned NOT NULL AUTO_INCREMENT,
`csoportNev` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL,
- PRIMARY KEY (`csoportId`)
+ PRIMARY KEY (`csoportId`),
+ UNIQUE KEY `IDX_U_csoport_csoportNev` (`csoportNev`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci;
CREATE TABLE `tankorCsoport` (
diff --git a/mayor-orig/mayor-naplo/log/mayor-naplo.rev b/mayor-orig/mayor-naplo/log/mayor-naplo.rev
index 1031aed8..d0fabd4c 100644
--- a/mayor-orig/mayor-naplo/log/mayor-naplo.rev
+++ b/mayor-orig/mayor-naplo/log/mayor-naplo.rev
@@ -1 +1 @@
-4538
+4554
diff --git a/mayor-orig/mayor-naplo/update/pre004540-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004540-1-intezmeny.sql
new file mode 100644
index 00000000..79a41d72
--- /dev/null
+++ b/mayor-orig/mayor-naplo/update/pre004540-1-intezmeny.sql
@@ -0,0 +1,16 @@
+DELIMITER $$
+DROP PROCEDURE IF EXISTS upgrade_database_4540 $$
+
+CREATE PROCEDURE upgrade_database_4540()
+BEGIN
+SET NAMES utf8 COLLATE utf8_hungarian_ci;
+
+IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='targy' and COLUMN_NAME='kretaTargyNev') THEN
+ ALTER TABLE targy ADD `kretaTargyNev` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL;
+ ALTER TABLE targy ADD UNIQUE INDEX (kretaTargyNev);
+END IF;
+
+
+END $$
+DELIMITER ;
+CALL upgrade_database_4540();
diff --git a/mayor-orig/mayor-naplo/update/pre004548-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004548-1-naplo.sql
new file mode 100644
index 00000000..2f26dcdd
--- /dev/null
+++ b/mayor-orig/mayor-naplo/update/pre004548-1-naplo.sql
@@ -0,0 +1,21 @@
+DELIMITER $$
+DROP PROCEDURE IF EXISTS upgrade_database_4548 $$
+
+CREATE PROCEDURE upgrade_database_4548()
+BEGIN
+SET NAMES utf8 COLLATE utf8_hungarian_ci;
+
+IF NOT EXISTS (
+ SELECT * FROM information_schema.statistics WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='csoport' and INDEX_NAME = 'IDX_U_csoport_csoportNev'
+) THEN
+
+CREATE TEMPORARY TABLE _csoport AS SELECT csoportNev FROM csoport GROUP BY csoportNev having count(*)>1;
+UPDATE csoport SET csoportNev = CONCAT(SUBSTRING(csoportNev,1,120),' ',csoportId) WHERE csoportNev IN (SELECT csoportNev FROM _csoport);
+DROP TABLE _csoport;
+ALTER TABLE csoport ADD UNIQUE INDEX IDX_U_csoport_csoportNev (csoportNev);
+
+END IF;
+
+END $$
+DELIMITER ;
+CALL upgrade_database_4548();
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/munkakozosseg.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/munkakozosseg.php
index d9c01d61..64d6496d 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/munkakozosseg.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/munkakozosseg.php
@@ -90,11 +90,11 @@
function ujTargy($ADAT) {
-
$leiras=$ADAT['leiras'];
$mkId=$ADAT['mkId'];
$targyJelleg=$ADAT['targyJelleg'];
$kirTargyId=$ADAT['kirTargyId'];
+ $kretaTargyNev=$ADAT['kretaTargyNev'];
if ($leiras=='') {
$_SESSION['alert'][] = 'message:UI:empty field';
@@ -103,10 +103,10 @@
if (is_numeric($kirTargyId)) {
$q = "INSERT INTO targy (targyNev,mkId,targyJelleg,kirTargyId) VALUES ('%s',%u,'%s',%u)";
- $v = array($leiras,$mkId,$targyJelleg,$kirTargyId);
+ $v = array($leiras,$mkId,$targyJelleg, $kretaTargyNev, $kirTargyId);
} else {
$q = "INSERT INTO targy (targyNev,mkId,targyJelleg) VALUES ('%s',%u,'%s')";
- $v = array($leiras,$mkId,$targyJelleg);
+ $v = array($leiras,$mkId,$targyJelleg, $kretaTargyNev);
}
$result = db_query($q,array('modul'=>'naplo_intezmeny', 'fv'=>'ujTargy','result'=>'insert', 'detailed'=>false, 'debug'=>false, 'values'=>$v));
@@ -115,14 +115,21 @@
}
function targyModosit($ADAT) {
+ $q = "UPDATE targy SET targyJelleg='%s',zaroKovetelmeny='%s',evkoziKovetelmeny='%s',targyRovidNev='%s'";
+ $v = array($ADAT['targyJelleg'],$ADAT['zaroKovetelmeny'],$ADAT['evkoziKovetelmeny'],$ADAT['targyRovidNev']);
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']);
+ $q .= ",kirTargyId=%u";
+ array_push($v,$ADAT['kirTargyId']);
+ }
+ if ($ADAT['kretaTargyNev']!='') {
+ $q .= ",kretaTargyNev='%s'";
+ array_push($v,$ADAT['kretaTargyNev']);
} 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']);
+ $q .= ",kretaTargyNev=NULL";
}
- return db_query($q,array('modul'=>'naplo_intezmeny', 'fv'=>'targyModosit', 'detailed'=>false, 'debug'=>false, 'values'=>$v));
+ $q .=" WHERE targyId=%u";
+ array_push($v, $ADAT['targyId']);
+ return db_query($q,array( 'modul'=>'naplo_intezmeny', 'fv'=>'targyModosit', 'detailed'=>false, 'values'=>$v));
}
function targyTorol($targyId,$mkId) {
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php
index 6b1a3df4..737b8d35 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankor.php
@@ -1,5 +1,7 @@
<?php
+ require_once('include/modules/naplo/share/szemeszter.php');
+
function ujTankor($ADAT) {
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php
index 4aee93d5..1ffdda96 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php
@@ -369,7 +369,7 @@ global $SZEMESZTER;
VALUES (%u,'%s','%s','%s','%s',NOW(),'%s',null)";
$v = array(intval($ADAT['naploId']), $ADAT['naploTipus'], _USERACCOUNT, _POLICY, $ADAT['email'], $utolsoEmailDt);
}
- return db_query($q, array('debug'=>true,'fv'=>'addHirnokFeliratkozas/set', 'modul'=>'naplo_intezmeny', 'values'=>$v, 'result'=>'insert'));
+ return db_query($q, array('fv'=>'addHirnokFeliratkozas/set', 'modul'=>'naplo_intezmeny', 'values'=>$v, 'result'=>'insert'));
}
@@ -379,7 +379,7 @@ global $SZEMESZTER;
// if (!is_array($ADAT['hirnokFeliratkozas'])) $X = array($ADAT['hirnokFeliratkozas']);
$q = "DELETE FROM hirnokFeliratkozas WHERE hirnokFeliratkozasId = %u";
$v = array(intval($ADAT['hirnokFeliratkozasId']));
- return db_query($q, array('debug'=>true,'fv'=>'delHirnokFeliratkozas', 'modul'=>'naplo_intezmeny', 'values'=>$v, 'result'=>'delete'));
+ return db_query($q, array('fv'=>'delHirnokFeliratkozas', 'modul'=>'naplo_intezmeny', 'values'=>$v, 'result'=>'delete'));
}
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php
index 705ab82f..16b1bbbc 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankor.php
@@ -556,7 +556,7 @@
// --TODO: továbbgondolásra szorul
// jelenlet = tankorJelenlet
- $q = "SELECT DISTINCT tankor.tankorId,tankorTipusId,tankorNev,targyId,kovetelmeny,jelenlet,felveheto,tanev,zaroKovetelmeny
+ $q = "SELECT DISTINCT tankor.tankorId,tankorTipusId,tankorNev,targyId,kovetelmeny,jelenlet,felveheto,tanev,zaroKovetelmeny, tankorCn
FROM ".__INTEZMENYDBNEV.".tankor
LEFT JOIN ".__INTEZMENYDBNEV.".tankorTipus USING (tankorTipusId)
LEFT JOIN ".__INTEZMENYDBNEV.".tankorSzemeszter USING (tankorId)
@@ -700,8 +700,8 @@
$RETURN['idk'] = db_query($q, array(
'fv' => 'getTankorDiakjai/1', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => $v
), $olr);
- // jelenlet = diakJelenlet
- $q = "SELECT diakId,DATE_FORMAT(kiDt,'%%Y-%%m-%%d') AS kiDt, DATE_FORMAT(beDt,'%%Y-%%m-%%d') AS beDt,jelenlet,jelenlet as diakJelenlet,kovetelmeny,jovahagyva
+ // jelenlet = diakJelenlet -- TODO
+ $q = "SELECT diakId,DATE_FORMAT(kiDt,'%%Y-%%m-%%d') AS kiDt, DATE_FORMAT(beDt,'%%Y-%%m-%%d') AS beDt,_jelenlet,_jelenlet as diakJelenlet,_kovetelmeny,jovahagyva
FROM ".__INTEZMENYDBNEV.".tankorDiak WHERE tankorId=%u ORDER BY bedt";
$RETURN['adatok'] = db_query($q, array(
'fv' => 'getTankorDiakjai/2', 'modul' => 'naplo_intezmeny', 'result' => 'multiassoc', 'keyfield' => 'diakId', 'values' => array($tankorId)
@@ -724,7 +724,7 @@
$v = array($tankorId,$tolDt,$igDt);
}
$q = "SELECT DISTINCT diakId FROM ".__INTEZMENYDBNEV.".tankorDiak
- WHERE $W AND (kiDt>='%s' OR kiDt is null) AND beDt<='%s' ORDER BY diakId";
+ WHERE $W AND (kiDt>='%s' OR kiDt is null) AND beDt<='%s' ORDER BY ".__TANEVDBNEV.".getNev(diakId,'diak'),diakId";
$RETURN['idk'] = db_query($q, array('fv' => 'getTankorDiakjaiByInterval', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => $v), $olr);
/* jelenlet, követelmeny, jóváhagyva mezők MÁR nincsenek */
$q = "SELECT diakId,DATE_FORMAT(kiDt,'%%Y-%%m-%%d') AS kiDt, DATE_FORMAT(beDt,'%%Y-%%m-%%d') AS beDt
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorBlokk.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorBlokk.php
index 04742e76..b2ba3b0a 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorBlokk.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorBlokk.php
@@ -29,6 +29,12 @@
}
}
+ function getTankorBlokkNev($blokkId) {
+ $q = "SELECT blokkNev FROM tankorBlokk LEFT JOIN blokk USING (blokkId) WHERE blokkId = %u";
+ $v = array($blokkId);
+ return db_query($q, array('fv' => 'getTankorBlokkByTankorId', 'modul' => 'naplo', 'result' => 'value', 'values' => $v));
+ }
+
function getTankorBlokkok($tanev = __TANEV) {
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php
index 7f699aea..cb0ad2f5 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tankorDiakModifier.php
@@ -46,7 +46,8 @@
if (count(array_diff(array_values($UTKOZO_TANKORIDS),array_values($FELMENTETTTANKORIDS))) === 0) {
// OK
} else {
- $_SESSION['alert'][] = '::Sikertelen. Tankörblokk ütközés!:blokkid('.$bId.')';
+ $blokkNev = getTankorBlokkNev($bId);
+ $_SESSION['alert'][] = '::Sikertelen. Tankörblokk ütközés!:blokkid('.$blokkNev.','.$bId.')';
return false;
}
}
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaroJegyModifier.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaroJegyModifier.php
index 48c5cfe9..e421af7f 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaroJegyModifier.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaroJegyModifier.php
@@ -90,9 +90,15 @@
$v = null;
} elseif ($J['jegy']!='') { // ha van jegy megadva
// NEM REPLACE, UPDATE, különben a megszorítások miatt cascade törlésre kerülnek a vizsgák!!! HIBA!
- $q = "UPDATE zaroJegy SET modositasDt=NOW(),hivatalosDt='%s',diakId=%u,targyId=%u,evfolyam=%u,evfolyamJel='%s',felev=%u,
+ if ($J['megjegyzes'] != 'dicséret' && $J['megjegyzes'] != 'figyelmeztető') {
+ $q = "UPDATE zaroJegy SET modositasDt=NOW(),hivatalosDt='%s',diakId=%u,targyId=%u,evfolyam=%u,evfolyamJel='%s',felev=%u,
jegy='%s',jegyTipus='%s',megjegyzes='%s'
WHERE zaroJegyId=%u AND (jegy!='%s' OR jegyTipus!='%s' OR megjegyzes!='%s')";
+ } else {
+ $q = "UPDATE zaroJegy SET modositasDt=NOW(),hivatalosDt='%s',diakId=%u,targyId=%u,evfolyam=%u,evfolyamJel='%s',felev=%u,
+ jegy='%s',jegyTipus='%s',megjegyzes='%s'
+ WHERE zaroJegyId=%u AND (jegy!='%s' OR jegyTipus!='%s' OR megjegyzes!='%s')";
+ }
$v[] = $J['zaroJegyId'];
$v[] = $J['jegy'];
$v[] = $J['jegyTipus'];
@@ -101,8 +107,13 @@
} elseif ($J['jegy']!='') { // nincs megadva zaroJegyId, ámbár probléma lehet, hátha van ilyen jegye mégis (konkurrens kliensek)
// ugyanakkor az index létrehozás nem biztos hogy nyomravezető. Megoldás, ha a több bejegyzés megjelenik
- $q = "INSERT INTO zaroJegy (modositasDt,hivatalosDt,diakId,targyId,evfolyam,evfolyamJel,felev,jegy,jegyTipus,megjegyzes)
+ if ($J['megjegyzes'] != 'dicséret' && $J['megjegyzes'] != 'figyelmeztető') {
+ $q = "INSERT INTO zaroJegy (modositasDt,hivatalosDt,diakId,targyId,evfolyam,evfolyamJel,felev,jegy,jegyTipus,megjegyzes)
+ VALUES (NOW(),'%s',%u,%u,%u,'%s',%u,'%s','%s',NULL)";
+ } else {
+ $q = "INSERT INTO zaroJegy (modositasDt,hivatalosDt,diakId,targyId,evfolyam,evfolyamJel,felev,jegy,jegyTipus,megjegyzes)
VALUES (NOW(),'%s',%u,%u,%u,'%s',%u,'%s','%s','%s')";
+ }
}
$results[] = db_query($q, array('modul' => 'naplo_intezmeny','values' => $v, 'fv' => 'zaroJegyBeiras', 'result' => 'insert'), $lr);
}
diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php
index 984726db..f7fe6357 100644
--- a/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php
+++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/tanev/tankorCsoport.php
@@ -1,5 +1,22 @@
<?php
+ function getTankorCsoportAdat($csoportId=null) {
+
+ if ($csoportId> 0) {
+ $q = "SELECT csoportId,csoportNev,tankorId,getNev(tankorId,'tankor') AS tankorNev FROM csoport LEFT JOIN tankorCsoport USING (csoportId) WHERE csoportId=%u";
+ $v = array($csoportId);
+ $r = db_query($q, array(
+ 'fv' => 'tankorCsoport', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'csoportId', 'values' => $v
+ ));
+ } else {
+ $q = "SELECT csoportId,csoportNev,tankorId,getNev(tankorId,'tankor') AS tankorNev FROM csoport LEFT JOIN tankorCsoport USING (csoportId)";
+ $r = db_query($q, array(
+ 'fv' => 'tankorCsoport', 'modul' => 'naplo', 'result' => 'multiassoc', 'keyfield' => 'csoportId'
+ ));
+ }
+ return $r;
+ }
+
function getTankorCsoportByTankorIds($tankorIds) {
$q = "SELECT csoportId,csoportNev,tankorId FROM csoport LEFT JOIN tankorCsoport USING (csoportId)
diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/munkakozosseg.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/munkakozosseg.php
index 3771de35..cd357829 100644
--- a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/munkakozosseg.php
+++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/munkakozosseg.php
@@ -32,5 +32,6 @@ visszamenőleg módosíthatja az adatokat!');
define('_TARGY_ATNEVEZES','Tárgy átnevezése');
define('_ATNEVEZES_HELP','A tárgy átnevezése a hozzá tartozó tankörök - esetleg visszamenőleges - átnevezésével jár!');
define('_UJ_TARGY_NEV','új tárgynév');
+ define('_TARGY_KRETA_NEV','A tárgy neve a krétában (opcionális)');
?>
diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas-pre.php
new file mode 100644
index 00000000..3e95969f
--- /dev/null
+++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas-pre.php
@@ -0,0 +1,551 @@
+<?php
+
+ if (_RIGHTS_OK !== true) die();
+
+
+ if (!__NAPLOADMIN) {
+ $_SESSION['alert'][] = 'page:insufficient_access';
+ } else {
+
+ require_once('include/share/net/upload.php');
+ require_once('include/modules/naplo/share/file.php');
+ require_once('include/modules/naplo/share/tanar.php');
+ require_once('include/modules/naplo/share/file.php');
+ require_once('include/modules/naplo/share/targy.php');
+ require_once('include/modules/naplo/share/tankor.php');
+ require_once('include/modules/naplo/share/diak.php');
+ require_once('include/modules/naplo/share/osztaly.php');
+
+ require_once('include/modules/naplo/intezmeny/tankor.php');
+ require_once('include/modules/naplo/share/tankorModifier.php');
+ require_once('include/modules/naplo/share/tankorDiakModifier.php');
+
+
+ $selectedTargyId = $ADAT['selectedTargyId'] = readVariable($_POST['selectedTargyId'],'id');
+ $selectedTanarId = $ADAT['selectedTanarId'] = readVariable($_POST['selectedTanarId'],'id');
+
+ // dump(get_defined_constants(TRUE));
+
+/*
+ if ($action == 'upload') {
+ // ez csak képek feltöltésére jó sajnos:
+ // mayorFileUpload(array('subdir'=>_DATADIR.'/','filename'=>'ttfimport.tsv'));
+ } elseif (isset($_POST['fileName']) && $_POST['fileName'] != '') {
+
+ }
+*/
+
+ $q = "SELECT szemeszterId FROM szemeszter WHERE tanev=%u";
+ $v = array(__TANEV);
+ $ADAT['szemeszterek'] = db_query($q, array('fv' => 'pre', 'modul' => 'naplo_intezmeny', 'values' => $v, 'result'=>'idonly'), $lr);
+
+ // DIÁKOK
+ $DIAKOK = getDiakok(array('extraAttrs'=>'oId'));
+ for ($i=0; $i<count($DIAKOK); $i++) {
+ if ($DIAKOK[$i]['oId']!='') {
+ $OID2ID[$DIAKOK[$i]['oId']] = intval($DIAKOK[$i]['diakId']);
+ } else {
+ $ADAT['bug']['diak'][] = $DIAKOK[$i]['oId'];
+ }
+ }
+ // TÁRGYAK
+ $TARGY = getTargyak();
+ for ($i=0; $i<count($TARGY); $i++) {
+ $T = $TARGY[$i];
+ if ($T['kretaTargyNev']!='') {
+ $KRETATARGYNEV2TARGYID[$T['kretaTargyNev']] = intval($T['targyId']);
+ }
+ }
+ // OSZTÁLYOK
+ //$OSZTALY = getOsztalyok();
+ //dump($OSZTALY);
+ //for ($i=0; $i<count($OSZTALY); $i++) {
+ // $O = $OSZTALY[$i];
+ // $OSZTALYNEV2ID[ $OSZTALY ];
+ //}
+
+ // TODO valami szótár, nem tudjuk kitalálni
+ $ADAT['kulcsertektar']['osztalyjel2id'] = $OSZTALYJEL2ID = array(
+ '07.A' => 124,
+ '07.B' => 125,
+ '08.A' => 117,
+ '08.B' => 118,
+ '09.A' => 113,
+ '09.B' => 114,
+ '09.C' => 126,
+ '09.D' => 127,
+ '09.ny' => 128,
+ '09.E' => 119,
+ '10.A' => 105,
+ '10.B' => 106,
+ '10.C' => 120,
+ '10.D' => 121,
+ '10.E' => 122,
+ '11.A' => 95,
+ '11.B' => 96,
+ '11.C' => 110,
+ '11.D' => 111,
+ '11.E' => 107,
+ '12.A' => 90,
+ '12.B' => 91,
+ '12.C' => 108,
+ '12.D' => 109,
+ '12.E' => 99,
+ );
+
+
+ $fn = fopen(_DATADIR.'/'."ttfimport.tsv","r");
+ while(! feof($fn)) {
+ /*
+ 0 => string '12.C' (length=4)
+ 1 => string '12.c.m+t' (length=8)
+ 2 => string 'dráma' (length=6)
+ 3 => string '1,00' (length=4)
+ 4 => string 'Széles Zsuzsanna' (length=17)
+ 5 => string 'Nem' (length=3)
+ */
+ $line = (fgets($fn));
+ if (ord($line[0]) == 32) $line = "\t".trim($line);
+ else $line = trim($line);
+ $result = explode("\t",$line);
+ $ADAT['ttf'][] = $result;
+ }
+ fclose($fn);
+
+ # Osztályba Járó Tanulók:
+
+ # Osztály Név Oktatási azonosító
+ # 07.A Ambrus Dániel 72644951895
+ # 07.A Apjok Balázs 72719658348
+ # tankorosztaly kitalálás:
+ # DIÁK1 -(import)-> kretaOsztalyNev -(osztalyNaplo)-> osztalyId
+
+ $fn = fopen(_DATADIR.'/'."osztalyba_jaro_tanulok.tsv","r");
+ while(! feof($fn)) {
+ $line = (fgets($fn));
+ if (ord($line[0]) == 32) $line = "\t".trim($line);
+ else $line = trim($line);
+ $result = explode("\t",$line);
+ // $ADAT['osztalyDiak'][] = $result;
+ // osztalyNev --> osztalyId ???
+ $ADAT['osztalyDiak'][$OSZTALYJEL2ID[$result[0]]][] = array(
+ 'diakNev' => $result[1],
+ 'oId' => $result[2],
+ 'diakId' => ($OID2ID[$result[2]]>0) ? intval($OID2ID[$result[2]]) : null,
+ 'osztalyId' => $OSZTALYJEL2ID[$result[0]],
+ 'osztalyJel' => $result[0]
+ );
+ $OID2OSZTALYJEL[$result[2]] = $OSZTALYJEL2ID[$result[0]];
+ #### Töltsük fel csoportként az egészosztályt is
+ $osztalyId = $OSZTALYJEL2ID[$result[0]];
+ $csoportNev = $result[0];
+ $oId = $result[2];
+ if (!in_array($osztalyId, $CSOPORTADAT[$csoportNev]['osztalyok'])) {
+ $CSOPORTADAT[$csoportNev]['osztalyok'][] = $osztalyId;
+ }
+ $CSOPORTADAT[$csoportNev]['diakIds'][] = $OID2ID[$oId];
+ $CSOPORTADAT[$csoportNev]['diakOIds'][] = $oId;
+ $CSOPORTADAT[$csoportNev]['diakNevsor'][] = $result[1];
+ if ($OID2ID[$oId] =='') {
+ $ADAT['bug']['diak'][] = $oId.$line;
+ }
+
+ }
+ fclose($fn);
+
+ ########################################################£
+
+ #Csoportba Járó Tanulok:
+
+#0 => string '99.9.énekkar-C' (length=15)
+#1 => string 'Andrássy Blanka Éva' (length=21)
+#2 => string '71614703894' (length=11)
+#3 => string '12.C' (length=4)
+
+ $fn = fopen(_DATADIR.'/'."csoportba_jaro_tanulok.tsv","r");
+ while(! feof($fn)) {
+ $line = (fgets($fn));
+ if (ord($line[0]) == 32) $line = "\t".trim($line);
+ else $line = trim($line);
+ $result = explode("\t",$line);
+ // $ADAT['osztalyDiak'][] = $result;
+ // osztalyNev --> osztalyId ???
+ $osztalyId = $OSZTALYJEL2ID[$result[3]];
+ $csoportNev = $result[0];
+ $oId = $result[2];
+ if (!in_array($osztalyId, $CSOPORTADAT[$csoportNev]['osztalyok'])) {
+ $CSOPORTADAT[$csoportNev]['osztalyok'][] = $osztalyId;
+ }
+ $CSOPORTADAT[$csoportNev]['diakIds'][] = $OID2ID[$oId];
+ $CSOPORTADAT[$csoportNev]['diakOIds'][] = $oId;
+ if ($OID2ID[$oId] =='') {
+ $ADAT['bug']['diak'][] = $oId.serialize($line);
+ }
+ $CSOPORTADAT[$csoportNev]['diakNevsor'][] = $result[1];
+ }
+ fclose($fn);
+
+ $ADAT['csoportAdat'] = $CSOPORTADAT;
+
+ ########################################################£
+ $CSOPORT = array();
+ for ($i=0; $i<count($ADAT['ttf']); $i++) {
+ if ($ADAT['ttf'][$i][0]!='') $CSOPORT[] = $ADAT['ttf'][$i][0];
+ if ($ADAT['ttf'][$i][1]!='') $CSOPORT[] = $ADAT['ttf'][$i][1];
+ }
+ $ADAT['csoportok'] = array_unique($CSOPORT);
+ if (count($ADAT['csoportok'])>0) {
+ foreach ($ADAT['csoportok'] AS $index => $csoportNev) {
+ if ($csoportNev!='') {
+ $q = "INSERT IGNORE INTO csoport (csoportNev) VALUES ('%s')";
+ $v = array($csoportNev);
+ db_query($q, array('fv' => 'csoportinsert', 'modul' => 'naplo', 'values' => $v), $lr);
+ }
+ }
+ }
+ // csoportid match
+
+ // get csoportok
+ $TANKORCSOPORT = getTankorCsoport(__TANEV);
+ for ($i=0; $i<count($TANKORCSOPORT); $i++) {
+ $CSOPORT2ID[$TANKORCSOPORT[$i]['csoportNev']] = $TANKORCSOPORT[$i]['csoportId'];
+ }
+ $TANKORCSOPORTID2CSOPORTNEV = array_flip($CSOPORT2ID);
+
+
+ // tanarId kitalálós
+ $TANAROK = getTanarok( array('extraAttrs'=>'kretaNev'));
+// dump($TANAROK);
+ for ($i=0; $i<count($TANAROK); $i++) {
+ if ($TANAROK[$i]['tanarNev']!='')$TANAR2ID[$TANAROK[$i]['tanarNev']] = $TANAROK[$i]['tanarId'];
+ if ($TANAROK[$i]['kretaNev']!='') $TANAR2ID[$TANAROK[$i]['kretaNev']] = $TANAROK[$i]['tanarId'];
+ }
+
+// dump($TANAR2ID);
+
+
+
+####################################################################################
+
+
+ if ($action == 'do') {
+ for ($i=0; $i<count($_POST['ujTankor']); $i++) {
+ list($csoportId,$tanarId,$osztalyIds,$targyId,$szemeszter_oraszam,$csoportNev) = explode(':####:',$_POST['ujTankor'][$i]);
+ $_osztalyIds = explode(',',$osztalyIds);
+ // amugy: $csoportNev = $TANKORCSOPORTID2CSOPORTNEV[$csoportId];
+
+ if ($csoportId>0 && $tanarId>0 && count($_osztalyIds)>0 && $targyId>0) {
+ // TODO létre kell hozni a tankört majd beléptetni a csoportId - be és a tankortanárba (lásd később)
+ // 1. új tankör
+ $UJTANKOR = array(
+ 'tanev'=>__TANEV,
+ 'targyId'=>$targyId,
+ 'felveheto'=>0,
+ 'min'=>0,
+ 'max'=>0,
+ 'kovetelmeny'=>'féljegy',
+ 'tankorTipusId'=>1,
+ 'osztalyok'=>$_osztalyIds,
+ 'szemeszterek' => $ADAT['szemeszterek'],
+ );
+ $SZO = explode('&',$szemeszter_oraszam);
+ for ($j=0; $j<count($SZO); $j++) {
+ list($k,$v) = explode('=',$SZO[$j]);
+ $UJTANKOR[$k] = $v;
+ }
+
+ $tankorId = ujTankor($UJTANKOR);
+ setTankorNev($tankorId, '('.$csoportNev.')', null);
+ // 2. tankorcsoport
+ $q = "insert ignore into tankorCsoport (tankorId,csoportId) VALUES (%u,%u)";
+ $v = array($tankorId,$csoportId);
+ db_query($q, array('fv' => 'csoportinsert', 'modul' => 'naplo', 'values' => $v));
+
+ // 3. tanár
+ tankorTanarModosit($tankorId, $tanarId, array('tanev'=>__TANEV,'tanevAdat'=>$_TANEV, 'tolDt'=>$_TANEV['kezdesDt'], 'igDt'=>$_TANEV['zarasDt']));
+
+ // 4. tagok
+ // setTankorNevByDiakok($tankorId, $tankorNevExtra = null, $olr = null); // ha a nevsorok szinkronban vannak
+ // setTankorNev($tankorId, null, null);
+
+ for ($j=0; $j<count($CSOPORTADAT[$csoportNev]['diakIds']); $j++) {
+ $_diakId = $CSOPORTADAT[$csoportNev]['diakIds'][$j];
+ if ($_diakId>0) {
+ $UJTANKORDIAK = array(
+ 'tankorId'=>intval($tankorId),
+ 'tolDt'=>$_TANEV['kezdesDt'],
+ 'igDt'=>$_TANEV['zarasDt'],
+ 'jovahagyva'=>1,
+ 'diakId' => intval($_diakId)
+ );
+ tankorDiakFelvesz($UJTANKORDIAK);
+ }
+ }
+ setTankorNev($tankorId, '('.$csoportNev.')', null);
+ }
+ }
+ for ($i=0; $i<count($_POST['tankor2csoport']); $i++) {
+
+ list($csoportId,$tanarId,$tankorId,$oraszam) = explode(':####:',$_POST['tankor2csoport'][$i]);
+ if ($csoportId>0 && $tanarId>0 && $tankorId>0 && $oraszam>0) {
+ $q = "insert ignore into tankorCsoport (tankorId,csoportId) VALUES (%u,%u)";
+ $v = array($tankorId,$csoportId);
+ db_query($q, array('fv' => 'csoportinsert', 'modul' => 'naplo', 'values' => $v));
+
+ // $q = "insert into tankorTanar (tankorId,tanarId,beDt,kiDt) VALUES (%u,%u,'%s','%s')";
+ // $v = array($tankorId,$tanarId,$_TANEV['kezdesDt'],$_TANEV['zarasDt']);
+ // db_query($q, array('fv' => 'tankorTanarInsert', 'modul' => 'naplo_intezmeny', 'values' => $v));
+ tankorTanarModosit($tankorId, $tanarId, array('tanev'=>__TANEV,'tanevAdat'=>$_TANEV, 'tolDt'=>$_TANEV['kezdesDt'], 'igDt'=>$_TANEV['zarasDt']));
+
+ // Óraszám update
+ $q = "update tankorSzemeszter set oraszam=%f where tankorId=%u AND tanev=%u";
+ $v = array(floatval($oraszam),intval($tankorId),__TANEV);
+ db_query($q, array('fv' => 'csoportinsert', 'modul' => 'naplo_intezmeny', 'values' => $v));
+
+ // A csoporttagság frissítése
+ $csoportNev = $TANKORCSOPORTID2CSOPORTNEV[$csoportId];
+ for ($j=0; $j<count($CSOPORTADAT[$csoportNev]['diakIds']); $j++) {
+ $_diakId = $CSOPORTADAT[$csoportNev]['diakIds'][$j];
+ if ($_diakId>0) {
+ $UJTANKORDIAK = array(
+ 'tankorId'=>intval($tankorId),
+ 'tolDt'=>$_TANEV['kezdesDt'],
+ 'igDt'=>$_TANEV['zarasDt'],
+ 'jovahagyva'=>1,
+ 'diakId' => intval($_diakId)
+ );
+ tankorDiakFelvesz($UJTANKORDIAK);
+ }
+ }
+ setTankorNev($tankorId, '('.$csoportNev.')', null);
+
+ }
+
+ }
+
+
+ }
+
+
+
+
+#########################################################
+
+ $TANKORIDS = getTankorByTanev(__TANEV, array('result'=>'idonly'));
+
+ for ($i=0; $i<count($TANKORIDS); $i++) {
+ $_tankorId = $TANKORIDS[$i];
+ $tmp = getTankorDiakjai($_tankorId);
+ $ADAT['tankorDiak'][$_tankorId] = $tmp['idk'];
+ }
+
+
+
+
+
+####################################################################################################################################£3
+
+ // DIÁK1 -(import)-> kretaCsoportNev -(csoport)-> csoportId
+// for ($i=0; $i<count($ADAT['osztalyDiak']); $i++) {
+// $D = $ADAT['osztalyDiak'][$i];
+// if ($OID2ID[$D['oId']]>0) $ADAT['osztalyDiak']['diakId'] = $OID2ID[$D['oId']];
+// else echo 'nincs ilyen diakId'. $D['oId'];
+// }
+
+// dump($ADAT['osztalyDiak']);
+
+## az összegyűjtott adatok alapján az végeredmény
+/*
+array (size=11)
+ 0 => string '' (length=0)
+ 1 => string '12.6.m.va3' (length=10)
+ 2 => string 'matematika' (length=10)
+ 3 => string '3,00' (length=4)
+ 4 => string 'Volf Annamária' (length=15)
+ 5 => string 'Nem' (length=3)
+ 'oraszam' => float 3
+ 'targyId' => int 6
+ 'tankorCsoport' =>
+ array (size=1)
+ 0 => string '4368' (length=4)
+ 'tanarId' => string '131' (length=3)
+ 'tankorCn' => string ':4368&6&131&3' (length=13)
+*/
+
+ for ($i=0; $i<count($ADAT['ttf']); $i++) {
+ $ADAT['ttf'][$i]['oraszam'] = floatval(str_replace(',','.',$ADAT['ttf'][$i][3]));
+ if ($KRETATARGYNEV2TARGYID[$ADAT['ttf'][$i][2]]<=0) {
+ $_SESSION['alert'][] = 'info:nincs_megfelelo_kreta_targynev:'.$ADAT['ttf'][$i][2];
+ $ADAT['bug']['targy'][] = $ADAT['ttf'][$i][2];
+ }
+ $ADAT['ttf'][$i]['targyId'] = $KRETATARGYNEV2TARGYID[$ADAT['ttf'][$i][2]];
+ $_tmpCsoportId = null;
+ if ($CSOPORT2ID[$ADAT['ttf'][$i][0]]>0) {
+ $_tmpCsoportId = $ADAT['ttf'][$i]['tankorCsoport'][] = $CSOPORT2ID[$ADAT['ttf'][$i][0]];
+ $_tmpCsoportNev = $ADAT['ttf'][$i][0];
+ }
+ if ($CSOPORT2ID[$ADAT['ttf'][$i][1]]>0) {
+ $_tmpCsoportId = $ADAT['ttf'][$i]['tankorCsoport'][] = $CSOPORT2ID[$ADAT['ttf'][$i][1]];
+ $_tmpCsoportNev = $ADAT['ttf'][$i][1];
+ }
+ $ADAT['ttf'][$i]['tanarId'] = $TANAR2ID[$ADAT['ttf'][$i][4]]; // itt tárgyid szerint még lehet jobban szűrni (pl PLspa PLmat esete)
+ $ADAT['ttf'][$i]['csoportId'] = $_tmpCsoportId; // ez legyen a default, a második erősebb
+ $ADAT['ttf'][$i]['csoportNev'] = $_tmpCsoportNev; // ez legyen a default, a második erősebb
+
+ # tankorCn : csoportId targyId tanarId oraszam
+ # ha megváltozik az óraszám, új tankör jönne létre
+
+ $ADAT['ttf'][$i]['tankorCn'] = ':'.implode('&',array('csoportId'=>$_tmpCsoportId,'targyId'=>$KRETATARGYNEV2TARGYID[$ADAT['ttf'][$i][2]],'tanarId'=>$TANAR2ID[$ADAT['ttf'][$i][4]],'oraszam'=>$ADAT['ttf'][$i]['oraszam']));
+
+ // ha van ilyen tankorCn, akkor skip és OK
+ // $q = "SELECT tankorId FROM tankor LEFT JOIN tankorSzemeszter USING (tankorId)";
+
+ // ALTERNATÍV ELLENŐRZÉS
+ # ha van olyan tankör, aminek a tárgya, tanára és óraszáma és csoportja egyezik, akkor nem csinálunk semmit (már felvettük)
+ #
+
+ // ha nincs ilyen tankorCn
+
+ ## LIMITÁCIÓ (első félév!)
+
+ // nem lefedett eset: ha már fel van véve a tankör nagyon jól, de nem ezzel a scripttel, akkor nem fogjuk megtalálni
+ // BPné kézi esete
+
+ if ($ADAT['ttf'][$i]['tanarId'] == $selectedTanarId || $ADAT['ttf'][$i]['targyId'] == $selectedTargyId) {
+
+ $_D = $ADAT['ttf'][$i];
+ $q = "select *,tankorSzemeszter.tankorId AS tankorId from tankorSzemeszter
+LEFT JOIN tankor USING (tankorId)
+LEFT JOIN tankorTanar ON (tankorTanar.tankorId=tankor.tankorId AND beDt<=NOW() AND (kiDt is null or kiDt>=NOW()))
+LEFT JOIN ".__TANEVDBNEV.".tankorCsoport ON (tankor.tankorId = tankorCsoport.tankorId)
+LEFT JOIN ".__TANEVDBNEV.".csoport USING (csoportId)
+WHERE tanev=%u AND szemeszter=%u AND targyId=%u AND oraszam=%f AND tanarId=%u
+AND csoportNev = '%s'
+GROUP BY tankor.tankorId";
+ $v = array(__TANEV,1,$_D['targyId'],$_D['oraszam'],$_D['tanarId'],$_D['csoportNev']);
+ $r = db_query($q,array('modul'=>'naplo_intezmeny','values'=>$v,'result'=>'indexed'));
+ if (count($r) == 1) {
+ // echo 'OK, a talált tankör';
+ $_D['tankorId'] = $r[0]['tankorId'];
+ $_D['action'] = 'done';
+ } elseif (count($r)>1) {
+ // ha van legalább egy találat, akkor kihagyjuk ezt a sort, esetleg megjegyezhetjuk, hogy neki már ezek a párjai lehetnek/vannak
+ // echo 'több találat van';
+ // specifikálni kell tovább (pl. van csoporthozzárendelés?) ugyanolyan?
+ $_D['action'] = 'tankorHozzarendel';
+ // ha nincs
+ for ($j=0; $j<count($r); $j++) {
+ $_D['displayTankor'][] = $r[$j];
+ }
+ } else {
+ // Ha nincs találat, ezek a tankörök felelhetnek még meg:
+ // nincs még tanár hozzárendelve:
+ // select * from tankorSzemeszter LEFT JOIN tankor USING (tankorId) LEFT JOIN tankorTanar ON (tankorTanar.tankorId=tankor.tankorId AND beDt<=NOW() AND (kiDt is null or kiDt>=NOW())) WHERE tanev=2019 AND szemeszter=1 AND targyId=6 AND oraszam=5 AND tanarId IS NULL GROUP BY tankor.tankorId ;
+ $_M = array();
+ if (is_array($ADAT['csoportAdat'][$_D[0]]['osztalyok']) && is_array($ADAT['csoportAdat'][$_D[1]]['osztalyok'])) {
+ $_M = array_merge(
+ $ADAT['csoportAdat'][$_D[1]]['osztalyok'],
+ $ADAT['csoportAdat'][$_D[1]]['osztalyok']
+ );
+ } elseif (is_array($ADAT['csoportAdat'][$_D[1]]['osztalyok'])) {
+ $_M = $ADAT['csoportAdat'][$_D[1]]['osztalyok'];
+ } elseif (is_array($ADAT['csoportAdat'][$_D[0]]['osztalyok'])) {
+ $_M = $ADAT['csoportAdat'][$_D[0]]['osztalyok'];
+ }
+
+ $_M = $ADAT['csoportAdat'][$_D['csoportNev']]['osztalyok'];
+
+ if (!is_array($_M) || count($_M)==0 || is_null($_M)) {
+ $_M = array(0);
+ $_SESSION['alert'][] = 'info:nincsenek osztályok:'.serialize($_D);
+ }
+ $q = "select *,tankorSzemeszter.tankorId AS tankorId from tankorSzemeszter
+LEFT JOIN tankor USING (tankorId)
+LEFT JOIN tankorTanar ON (tankorTanar.tankorId=tankor.tankorId AND beDt<=NOW() AND (kiDt is null or kiDt>=NOW()))
+LEFT JOIN tankorOsztaly ON (tankor.tankorId = tankorOsztaly.tankorId)
+WHERE tanev=%u AND szemeszter=%u AND targyId=%u
+AND oraszam=%f
+AND tanarId IS NULL
+AND osztalyId IN (".implode(',',$_M).")
+GROUP BY tankor.tankorId ORDER BY tankorNev";
+
+ $v = array(__TANEV,1,$_D['targyId'],$_D['oraszam']);
+ $r2 = db_query($q,array('modul'=>'naplo_intezmeny','values'=>$v,'result'=>'indexed'));
+ if (count($r2) >= 1) {
+ // mit tegyünk? kézzel fvesszük fel? tagokat ellenőrzünk?
+ $_D['action'] = 'tankorHozzarendel2';
+ for ($j=0; $j<count($r2); $j++) {
+ $_D['displayTankor'][] = $r2[$j];
+ }
+ } else {
+ $q = "select *,tankorSzemeszter.tankorId AS tankorId from tankorSzemeszter
+LEFT JOIN tankor USING (tankorId)
+LEFT JOIN tankorTanar ON (tankorTanar.tankorId=tankor.tankorId AND beDt<=NOW() AND (kiDt is null or kiDt>=NOW()))
+WHERE tanev=%u AND szemeszter=%u AND targyId=%u
+AND oraszam>=%f
+AND tanarId IS NULL
+GROUP BY tankor.tankorId ORDER BY tankorNev";
+
+ $v = array(__TANEV,1,$_D['targyId'] ,$_D['oraszam']-10 ); // óraszám igazán gyenge feltételként
+ $r3 = db_query($q,array('modul'=>'naplo_intezmeny','values'=>$v,'result'=>'indexed'));
+
+ if (count($r3) >= 1) {
+ $_D['action'] = 'tankorHozzarendel3';
+ for ($j=0; $j<count($r3); $j++) {
+ $_D['displayTankor'][] = $r3[$j];
+ }
+ } else {
+ $_D['action'] = 'createTankor';
+ }
+ }
+ }
+ $ADAT['records'][] = $_D;
+ // dump($_D);
+ }
+
+ }
+
+ // dump($ADAT);
+ // érdemes lenne írni egy csoportszinkronizáló scriptet,
+ // ami a csoportban levő legbővebb halmazúvá teszi a névsorokat
+ }
+
+/*
+Csoportba Járó Tanulók:
+
+Csoport neve Név Oktatási azonosító Osztály
+99.9.énekkar-C Allardyce Lilla Rose 71624405564 12.C
+99.9.énekkar-C Andrássy Blanka Éva 71614703894 12.C
+99.9.énekkar-C Árva Janka 72463346174 09.C
+
+Osztályba Járó Tanulók:
+
+Osztály Név Oktatási azonosító
+07.A Ambrus Dániel 72644951895
+07.A Apjok Balázs 72719658348
+07.A Bärnkopf Janka Katalin 72660367200
+
+Tantárgyfelosztás:
+
+Osztály Csoport Tantárgy Óraszám Tanár Összevont óra
+12.C 12.c.m+t dráma 1,00 Széles Zsuzsanna Nem
+10.E fizika 2,00 Antal Erzsébet Nem
+10.2.n.djpr német nyelv 4,00 Dobrosi-Jelinek Piroska Rita Nem
+12.2.n.djpr német nyelv 3,00 Dobrosi-Jelinek Piroska Rita Nem
+11.D dráma 1,00 Dobrosi-Jelinek Piroska Rita Nem
+
+*/
+
+
+// $TOOL['tanevSelect'] = array('tipus'=>'cella','paramName' => 'tanev',
+// 'tervezett' => true,
+// 'post' => array('mkId','targyId','tankorId'));
+// $TOOL['munkakozossegSelect'] = array('tipus'=>'cella','paramName' => 'mkId', 'post' => array('tanev'));
+ $TOOL['targySelect'] = array('tipus'=>'cella', 'paramName' => 'selectedTargyId');
+// $TOOL['diakSelect'] = array('tipus'=>'sor','paramName'=>'diakId', 'post'=>array());
+ $TOOL['tanarSelect'] = array('tipus'=>'cella','paramName'=>'selectedTanarId');
+// $TOOL['tankorSelect'] = array('tipus' => 'cella','paramName' => 'tankorId', 'post' => array('tanev', 'mkId', 'targyId'));
+// $TOOL['tanevLapozo'] = array('tipus' => 'sor', 'paramName' => 'tanev', 'post' => array('mkId', 'targyId', 'tankorId'), 'tanev' => __TANEV);
+ getToolParameters();
+
+?> \ No newline at end of file
diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas.php
new file mode 100644
index 00000000..e01360f8
--- /dev/null
+++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/import/tantargyFelosztas.php
@@ -0,0 +1,17 @@
+<?php
+
+ global $ADAT;
+ echo 'Használt kulcs érték párok:';
+# var_dump($ADAT['kulcsertektar']['osztalyjel2id']);
+
+ putTTFimport($ADAT);
+
+
+ if (count($ADAT['bug']['targy'])>0)
+ var_dump($ADAT['bug']['targy']);
+
+ if (count($ADAT['bug']['diak'])>0)
+ var_dump($ADAT['bug']['diak']);
+
+
+?> \ No newline at end of file
diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/munkakozosseg-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/munkakozosseg-pre.php
index f8524925..45795771 100644
--- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/munkakozosseg-pre.php
+++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/munkakozosseg-pre.php
@@ -36,6 +36,7 @@
$_ADAT['evkoziKovetelmeny']=readVariable($_POST['evkoziKovetelmeny'],'string');
$_ADAT['zaroKovetelmeny']=readVariable($_POST['zaroKovetelmeny'],'string');
$_ADAT['kirTargyId'] = readVariable($_POST['kirTargyId'],'id',null, $ADAT['kirTargyak']);
+ $_ADAT['kretaTargyNev']=readVariable($_POST['kretaTargyNev'],'string');
$_ti=ujTargy($_ADAT);
if ($_ti!==false && is_numeric($_ti)) $targyId=$_ti;
unset($_ti);
@@ -49,6 +50,7 @@
$_ADAT['zaroKovetelmeny'] = readVariable($_POST['zaroKovetelmeny'],'sql');
$_ADAT['targyRovidNev'] = readVariable($_POST['targyRovidNev'],'sql');
$_ADAT['kirTargyId'] = readVariable($_POST['kirTargyId'],'id',null);
+ $_ADAT['kretaTargyNev']=readVariable($_POST['kretaTargyNev'],'string');
targyModosit($_ADAT);
break;
case 'targyTorol':
diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport-pre.php
index cddfb69c..39e04ec0 100644
--- a/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport-pre.php
+++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport-pre.php
@@ -119,11 +119,10 @@
// ----------------- action --------------------- //
-//echo $q;
-//echo '<pre>'; var_dump($ujCsoportok); echo '</pre>';
-
}
+ $ADAT['tankorCsoport'] = getTankorCsoport();
+ $ADAT['tankorCsoportAdat'] = getTankorCsoportAdat();
$TOOL['osztalySelect'] = array('tipus' => 'cella','paramName' => 'osztalyId', 'post' => array());
getToolParameters();
diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport.php
index 955de6c7..f249be88 100644
--- a/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport.php
+++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/tankorCsoport.php
@@ -2,10 +2,11 @@
if (_RIGHTS_OK !== true) die();
- global $tankorAdat, $Csoportok, $szTankorIds, $osztalyId;
+ global $tankorAdat, $Csoportok, $szTankorIds, $osztalyId,$ADAT;
if (isset($osztalyId)) putUjTankorCsoport($tankorAdat, $szTankorIds, $osztalyId);
if (count($Csoportok) > 0) putCsoportok($Csoportok, $tankorAdat, $szTankorIds, $osztalyId);
if (count($szTankorIds) > 0) putTankorCsoportKereso($osztalyId);
+ putTankorCsoportAdat($ADAT)
?>
diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/import/tantargyFelosztas.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/import/tantargyFelosztas.css
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/import/tantargyFelosztas.css
diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/import/tantargyFelosztas.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/import/tantargyFelosztas.phtml
new file mode 100644
index 00000000..3cd8691b
--- /dev/null
+++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/import/tantargyFelosztas.phtml
@@ -0,0 +1,139 @@
+<?php
+
+ function putTTFimport($ADAT) {
+ /*
+ formBegin();
+ echo '<input type="hidden" name="action" value="upload" />';
+ echo '<input type="file">';
+ echo '<input type="submit">';
+ formEnd();
+
+ formBegin(array('enctype'=>"multipart/form-data",'class'=>'diak'));
+ echo '<fieldset><legend>'.'</legend>'."\n";
+ echo '<input type="hidden" name="diakId" value="'.$diakId.'" />';
+ echo '<input type="hidden" name="action" value="upload" />';
+ echo '<input type="file" name="upfile" />';
+ echo '<input type="submit" class="diakSubmit" value="ok" />';
+ echo '</fieldset>';
+ formEnd();
+ */
+
+ echo '<style type="text/css">
+
+ table.ttf { background-color: #eee;}
+ table.ttf tr.tankorHozzarendel2.exact td { background-color: cornflowerblue}
+ table.ttf tr.tankorHozzarendel td { background-color: yellow}
+ table.ttf tr.tankorHozzarendel2 td { background-color: orange}
+ table.ttf tr.tankorHozzarendel3 td { background-color: #f44336; }
+
+ table.ttf tr.createTankor td { background-color: magenta;}
+ table.ttf tr.done td { background-color: lightgreen;}
+ table.ttf tr td {padding:4px;}
+
+ </style>';
+
+ // FILTEREZÉS
+
+
+
+ formBegin();
+
+ echo '<input type="submit" />';
+ echo '<input type="hidden" name="action" value="do" />';
+ echo '<input type="hidden" name="selectedTanarId" value="'.$ADAT['selectedTanarId'].'" />';
+ echo '<input type="hidden" name="selectedTargyId" value="'.$ADAT['selectedTargyId'].'" />';
+ echo '<table class="ttf" cellspacing="1">';
+
+ echo '<thead>';
+ echo '<tr>';
+ echo '<th>';
+ echo 'Csoportnév';
+ echo '</th>';
+ echo '<th>';
+ echo "Névsor";
+ echo '</th>';
+ echo '<th>';
+ echo '</th>';
+ echo '</tr>';
+ echo '<tr>';
+ echo '<th colspan="6">';
+ foreach ( array('tankorHozzarendel','tankorHozzarendel2','tankorHozzarendel3','done','createTankor') as $k => $v) {
+ echo '<input type="checkbox" name="'.$v.'" value="'.$v.'" checked="checked" />';
+ }
+ echo '</th>';
+ echo '</tr>';
+ echo '</thead>';
+
+ for ($i=0; $i<count($ADAT['records']); $i++) {
+ $D = $ADAT['records'][$i];
+ for ($j=0; $j<count($ADAT['szemeszterek']); $j++) {
+ $_oraszamok[] = 'SZ'.$ADAT['szemeszterek'][$j].'='.$D['oraszam'];
+ }
+ $_O = (implode('&',$_oraszamok));
+ $_osztalyok = implode(',',$ADAT['csoportAdat'][$D['csoportNev']]['osztalyok']);
+
+ if (in_array($D['action'],array('tankorHozzarendel','tankorHozzarendel2','tankorHozzarendel3')) && count($D['displayTankor'])==1) {
+ $_class = 'exact';
+ } else {
+ $_class = '';
+ }
+ echo '<tr class="'.$D['action'].' '.$_class.'">';
+ echo '<td>'.$D['csoportNev'].'</td>';
+ echo '<td style="font-size:10px">';
+ echo '<div>';
+ for ($j=0;$j<count($ADAT['csoportAdat'][$D['csoportNev']]['diakNevsor']); $j++) {
+ echo $ADAT['csoportAdat'][$D['csoportNev']]['diakNevsor'][$j];
+ echo '<br/>';
+ }
+ echo '</div>';
+
+ echo '</td>';
+ echo '<td>'.$D[2].' '.'('.$D['targyId'].')</td>';
+ echo '<td>'.$D[3].' '.'</td>';
+ echo '<td class="tanarNev" data-tanarId="'.$D['tanarId'].'">'.$D[4].' ('.$D['tanarId'].')</td>';
+ echo '<td>';
+
+ if (in_array($D['action'],array('tankorHozzarendel','tankorHozzarendel2','tankorHozzarendel3'))) {
+
+
+ echo '<select name="tankor2csoport[]">';
+ echo '<option>--'.$D['action'].'--</option>';
+ for ($j=0; $j<count($D['displayTankor']); $j++) {
+ $_SEL = (count($D['displayTankor'])==1) ? ' selected="selected" ': '';
+ echo '<option value="'.$D['csoportId'].':####:'.$D['tanarId'].':####:'.$D['displayTankor'][$j]['tankorId'].':####:'.$D['oraszam'].'" '.$_SEL.'>'.$D['displayTankor'][$j]['tankorNev'].'</option>';
+ }
+ echo '</select>';
+ echo '<div style="font-size:10px;">';
+ for ($j=0; $j<count($D['displayTankor']); $j++) {
+ $_tankorId = $D['displayTankor'][$j]['tankorId'];
+ $_diffCount = count(array_diff(
+ $ADAT['csoportAdat'][$D['csoportNev']]['diakIds'],
+ $ADAT['tankorDiak'][$_tankorId]
+ ));
+
+ echo '<br/><span class="tankorAdat" data-tankorid="'.$D['displayTankor'][$j]['tankorId'].'">'.$D['displayTankor'][$j]['tankorNev'].'</span>';
+ echo '('.$_tankorId.') tag: '.count($ADAT['tankorDiak'][$_tankorId]);
+
+ echo " -- diff:" .$_diffCount;
+ if ($_diffCount == 0) echo '*******';
+ }
+ echo '</div>';
+ // ha ezt összehasonlítom a mayorban rögzített névsorral, akkor eldönhető lehet, hogy melyik a jó választás!
+ echo ' Új tankör:';
+ echo '<input type="checkbox" name="ujTankor[]" value="'.$D['csoportId'].':####:'.$D['tanarId'].':####:'.$_osztalyok.':####:'.$D['targyId'].'.'.':####:'.$_O.':####:'.$D[1].'" />';
+ } elseif ($D['action'] == 'createTankor') {
+ echo 'Új tankör létrehozása: <input type="text" name="ujTankor[]" value="'.$D['csoportId'].':####:'.$D['tanarId'].':####:'.$_osztalyok.':####:'.$D['targyId'].'.'.':####:'.$_O.':####:'.$D[1].'" />';
+ } else {
+ echo '<div class="tankor tankorAdat tankorNev" data-tankorid="'.$D['tankorId'].'">'.$D['tankorId'].'</div>';
+ }
+
+ echo '</td>';
+ echo '</tr>';
+ }
+ echo '</table>';
+ formEnd();
+
+ }
+
+
+?> \ No newline at end of file
diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/munkakozosseg.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/munkakozosseg.phtml
index b35f799e..2b2c8c9f 100644
--- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/munkakozosseg.phtml
+++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/munkakozosseg.phtml
@@ -147,6 +147,9 @@
echo '</li><li>';
echo _KIRTARGY.': ';
putKirTargySelect($ADAT['kirTargyak'],$ADAT['targyAdat']['kirTargyId']);
+ echo '</li><li>';
+ echo _TARGY_KRETA_NEV.': <input type="text" maxlength="64" id="kretaTargyNev" name="kretaTargyNev" value="'.$ADAT['targyAdat']['kretaTargyNev'].'"/>'."\n";
+ echo ' <span class="icon-refresh" data-targynev="'.$ADAT['targyAdat']['targyNev'].'"></span>';
echo '</li></ul>';
echo '<input type="submit" value="'._OK.'" />';
formEnd();
diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/tankorCsoport.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/tankorCsoport.phtml
index e6bd23f8..dda6a6dc 100644
--- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/tankorCsoport.phtml
+++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/tankorCsoport.phtml
@@ -119,4 +119,35 @@
}
+ function putTankorCsoportAdat($ADAT) {
+
+ formBegin(array('class'=>'csoportKereses'));
+
+ echo '<input type="hidden" name="action" value="tankorCsoportokKeresese" />'."\n";
+ echo '<input type="hidden" name="osztalyId" value="'.$osztalyId.'" />'."\n";
+
+ echo '<table>'."\n";
+ echo '<tr>';
+ echo '<th colspan="2">'._CSOPORTNEV.'</th>';
+ echo '<th>'._TANKOROK.'</th>';
+ echo '</tr>'."\n";
+ foreach ($ADAT['tankorCsoportAdat'] as $csoportId => $TANKORCSOPORT) {
+ echo '<tr>'."\n";
+ echo '<th>'.$TANKORCSOPORT[0]['csoportNev'].'</th>';
+ echo '<th>'.$csoportId.'</th>';
+ echo '<td>';
+ for ($i=0; $i<count($TANKORCSOPORT); $i++) {
+ $D = $TANKORCSOPORT[$i];
+ echo '<span class="tankorAdat" data-tankorid="'.$D['tankorId'].'" style="padding:4px 2px;">'.$D['tankorNev'].'</span>';
+
+ }
+ echo '</td>';
+ echo '</tr>'."\n";
+ }
+ echo '</table>'."\n";
+
+ formEnd();
+
+ }
+
?>
diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/import/tantargyFelosztas.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/import/tantargyFelosztas.jquery.min.js
new file mode 100644
index 00000000..f1a2f730
--- /dev/null
+++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/import/tantargyFelosztas.jquery.min.js
@@ -0,0 +1,11 @@
+
+$(function() {
+ $('table.ttf thead input[type="checkbox"]').bind('click', function(event) {
+ element = $(event.target);
+ // Az összes elem kiválasztása...
+ cls = element.val();
+ $('table.ttf tr.'+element.val()).toggle();
+ });
+});
+
+
diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/munkakozosseg.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/munkakozosseg.jquery.min.js
new file mode 100644
index 00000000..f2d0e6ef
--- /dev/null
+++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/munkakozosseg.jquery.min.js
@@ -0,0 +1,15 @@
+
+
+$(function() {
+
+ $('body').click(function(event) {
+
+ element = $(event.target);
+ if (element.hasClass('icon-refresh')) {
+ targyNev=($(element).data('targynev'));
+ $('#kretaTargyNev').val ( targyNev );
+ }
+
+ });
+
+}); \ No newline at end of file