* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
require_once('../../include/functions.inc.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/lehreinheit.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/studiensemester.class.php');
$user = get_uid();
$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'');
$semester = (isset($_GET['semester'])?$_GET['semester']:'');
$stsem = (isset($_GET['stsem'])?$_GET['stsem']:'');
$check = (isset($_GET['check'])?true:false);
//Wenn mitcheck=true ist, dann werden in der Tabelle (gefiltert nach Studiengang/Semester/Stsem)
//nur die Eintraege mit zusammenpassenden UNRs angezeigt
if(isset($_GET['mitcheck']) && $_GET['mitcheck']=='false')
$mitcheck = false;
else
$mitcheck = true;
?>
';
if(isset($_POST['zusammenlegen']))
{
$le_id_bleibt = $_POST['radio_bleibt'];
$le_id_delete = $_POST['radio_delete'];
if($le_id_bleibt!=$le_id_delete)
{
//unr beider Lehreinheiten ermitteln
$qry = "SELECT (SELECT unr FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$le_id_bleibt') as unr_bleibt,
(SELECT unr FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$le_id_delete') as unr_delete";
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
//Wenn beide UNRs gleich sind -> zusammenlegen
if($row->unr_bleibt==$row->unr_delete)
{
echo "LV ".$_POST['radio_delete']." wird geloescht - LV ".$_POST['radio_bleibt']." bleibt bestehen ";
/*
- Eintraege aus tbl_lehreinheitmitarbeiter Loeschen die nicht uebernommen werden sollen
- Mitarbeiter die in beiden Tabellen vorkommen werden gemerged
- Gruppen die in beiden Lehreinheiten vorkommen werden geloescht
-Lehreinheit_id's umbiegen in den Tabellen
tbl_stundenplan
tbl_stundenplandev
tbl_lehreinheitgruppe
tbl_legesamtnote
tbl_notenschluessel
tbl_uebung
tbl_projektarbeit
tbl_pruefung
tbl_lehreinheitmitarbeiter
tbl_synclehreinheit
*/
$error = false;
$db->db_query('BEGIN');
//Mitarbeiter loeschen die nicht uebernommen werden
foreach($_POST as $key=>$wert)
{
if(mb_strstr($key, 'check_'))
{
$arr = split('_',$key);
$qry = "DELETE FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$arr[1]' AND mitarbeiter_uid='$arr[2]'";
$db->db_query($qry);
echo $qry.' ';
}
}
//Mitarbeiter die in beiden Lehreinheiten geich sind werden gemerged
$qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$le_id_delete'";
if($result_delete = $db->db_query($qry))
{
while($row_delete = $db->db_fetch_object($result_delete))
{
$qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$le_id_bleibt' AND mitarbeiter_uid='$row_delete->mitarbeiter_uid'";
if($result_bleibt = $db->db_query($qry))
{
if($row_bleibt = $db->db_fetch_object($result_bleibt))
{
echo "Lehreinheitmitarbeiter $row_bleibt->mitarbeiter_uid wird gemerged ";
if($row_delete->lehrfunktion_kurzbz==$row_bleibt->lehrfunktion_kurzbz)
{
if($row_bleibt->semesterstunden!='' && $row_bleibt->semesterstunden!='0')
$semesterstunden = $row_bleibt->semesterstunden;
elseif($row_delete->semesterstunden!='' && $row_delete->semesterstunden!='0')
$semesterstunden = $row_delete->semesterstunden;
else
$semesterstunden = '0';
if($row_bleibt->planstunden!='' && $row_bleibt->planstunden!='0')
$planstunden = $row_bleibt->planstunden;
elseif($row_delete->planstunden!='' && $row_delete->planstunden!='0')
$planstunden = $row_delete->planstunden;
else
$planstunden = '0';
if($row_bleibt->stundensatz!='' && $row_bleibt->stundensatz!='0')
$stundensatz = $row_bleibt->stundensatz;
elseif($row_delete->stundensatz!='' && $row_delete->stundensatz!='0')
$stundensatz = $row_delete->stundensatz;
else
$stundensatz = '0';
if($row_bleibt->faktor!='' && $row_bleibt->faktor!='0')
$faktor = $row_bleibt->faktor;
elseif($row_delete->faktor!='' && $row_delete->faktor!='0')
$faktor = $row_delete->faktor;
else
$faktor = '0';
$anmerkung = $row_delete->anmerkung.' '.$row_bleibt->anmerkung;
if($row_delete->bismelden=='t' || $row_bleibt->bismelden=='t')
$bismelden=true;
else
$bismelden=false;
$updateamum = date('Y-m-d H:i:s');
$updatevon = $user;
$qry = "UPDATE lehre.tbl_lehreinheitmitarbeiter SET
semesterstunden='".addslashes($semesterstunden)."',
planstunden='".addslashes($planstunden)."',
stundensatz='".addslashes($stundensatz)."',
faktor='".addslashes($faktor)."',
anmerkung='".addslashes($anmerkung)."',
bismelden=".($bismelden?'true':'false').",
updateamum='$updateamum',
updatevon='$updatevon'
WHERE lehreinheit_id='$row_bleibt->lehreinheit_id' AND mitarbeiter_uid='$row_bleibt->mitarbeiter_uid'";
$db->db_query($qry);
echo $qry.' ';
$qry = "DELETE FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$row_delete->lehreinheit_id' AND mitarbeiter_uid='$row_delete->mitarbeiter_uid'";
$db->db_query($qry);
echo $qry.' ';
}
else
{
echo "Kann die Daten von Person $row_bleibt->mitarbeiter_uid nicht mergen da sie eine unterschiedliche Lehrfunktion haben";
$error = true;
}
}
}
}
}
if(!$error)
{
//Gruppen die in beiden Lehreinheiten gleich sind werden geloescht
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$le_id_bleibt'";
if($result_bleibt = $db->db_query($qry))
{
while($row_bleibt = $db->db_fetch_object($result_bleibt))
{
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$le_id_delete' AND studiengang_kz='$row_bleibt->studiengang_kz' AND semester='$row_bleibt->semester' AND (verband='$row_bleibt->verband' ".($row_bleibt->verband==''?' OR verband is null':'').") AND (gruppe='$row_bleibt->gruppe'".($row_bleibt->gruppe==''?' OR gruppe is null':'').") AND (gruppe_kurzbz='$row_bleibt->gruppe_kurzbz'".($row_bleibt->gruppe_kurzbz==''?' OR gruppe_kurzbz is null':'').")";
if($result_gruppe = $db->db_query($qry))
{
if($row_gruppe = $db->db_fetch_object($result_gruppe))
{
$qry = "DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id='$row_gruppe->lehreinheitgruppe_id'";
$db->db_query($qry);
echo $qry.' ';
}
}
}
}
}
if(!$error)
{
$qry = "UPDATE lehre.tbl_stundenplan SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE lehre.tbl_stundenplandev SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE lehre.tbl_lehreinheitgruppe SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE campus.tbl_legesamtnote SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE campus.tbl_notenschluessel SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE campus.tbl_uebung SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE lehre.tbl_projektarbeit SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE lehre.tbl_pruefung SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$qry .= "UPDATE lehre.tbl_lehreinheitmitarbeiter SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';\n";
$db->db_query($qry);
echo nl2br($qry);
//Wenn der Synclehreinheit Eintrag schon existiert dann den anderen loeschen sonst umbiegen
$qry = "SELECT * FROM sync.tbl_synclehreinheit WHERE lehreinheit_id='$le_id_bleibt' AND lehreinheit_pk in(SELECT lehreinheit_pk FROM sync.tbl_synclehreinheit WHERE lehreinheit_id='$le_id_delete')";
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)==0)
{
$qry = "UPDATE sync.tbl_synclehreinheit SET lehreinheit_id='$le_id_bleibt' WHERE lehreinheit_id='$le_id_delete';";
}
else
$qry = "DELETE FROM sync.tbl_synclehreinheit WHERE lehreinheit_id='$le_id_bleibt' AND lehreinheit_pk in(SELECT lehreinheit_pk FROM sync.tbl_synclehreinheit WHERE lehreinheit_id='$le_id_delete');";
$db->db_query($qry);
echo $qry.' ';
}
$qry = "DELETE FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$le_id_delete'\n";
$db->db_query($qry);
echo nl2br($qry);
$db->db_query('COMMIT');
}
else
{
$db->db_query('ROLLBACK');
}
}
else
echo "Die UNR beider Lehreinheiten muss gleich sein damit die beiden LE zusammengefuegt werden koennen";
}
}
}
else
{
echo "Es wurde 2 mal die gleiche Lehreinheit ausgewählt";
}
}
echo '
Das wird geloescht:
';
if($check)
$qry = "SELECT distinct a.* FROM lehre.tbl_lehreinheit a, lehre.tbl_lehreinheit b WHERE a.lehreinheit_id!=b.lehreinheit_id AND a.unr=b.unr AND a.unr!=0 AND a.studiensemester_kurzbz=b.studiensemester_kurzbz ORDER BY unr DESC LIMIT 10";
else
{
if($mitcheck)
$qry = "SELECT a.* FROM (Select * FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE studiengang_kz='$stg_kz' AND semester='$semester' AND studiensemester_kurzbz='$stsem') as a, lehre.tbl_lehreinheit as b WHERE a.lehreinheit_id!=b.lehreinheit_id AND a.unr=b.unr AND a.studiensemester_kurzbz=b.studiensemester_kurzbz ORDER BY unr DESC";
else
$qry = "SELECT * FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE studiengang_kz='$stg_kz' AND semester='$semester' AND studiensemester_kurzbz='$stsem'";
}
echo "";
function draw_table($qry, $delete)
{
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
echo '