From 64e81bd24bc297501576576eb727401353d23423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 26 Jan 2007 14:24:28 +0000 Subject: [PATCH] - Kreuzerltool Bugfix - Sync LVA --- admin/sync/sync_fas_lva.php | 685 ++++++++++++------ .../sync/sync_vilesci_portal_lehreinheit.php | 7 +- .../lehre/kreuzerltool/studentenansicht.php | 9 +- include/functions.inc.php | 2 +- include/lehreinheitgruppe.class.php | 7 +- 5 files changed, 475 insertions(+), 235 deletions(-) diff --git a/admin/sync/sync_fas_lva.php b/admin/sync/sync_fas_lva.php index ed1ef081b..637d01daa 100644 --- a/admin/sync/sync_fas_lva.php +++ b/admin/sync/sync_fas_lva.php @@ -5,10 +5,11 @@ include('../../include/lehrstunde.class.php'); $conn=pg_connect(CONN_STRING); $conn_fas=pg_connect(CONN_STRING_FAS); -$adress='fas_sync@technikum-wien.at'; -//$adress='pam@technikum-wien.at'; -$adress_stpl='stpl@technikum-wien.at'; -$adress_fas='pam@technikum-wien.at'; +//$adress='fas_sync@technikum-wien.at'; +$adress='oesi@technikum-wien.at'; +//$adress_stpl='stpl@technikum-wien.at'; +$adress_stpl='oesi@technikum-wien.at'; +$adress_fas='oesi@technikum-wien.at'; // error log für jeden Studiengang @@ -20,14 +21,14 @@ $missing_lehrform=array(); function printLVA($row) { - return 'lvnr='.$row->lvnr.' '.$row->bezeichnung; + return 'lvnr='.$row->lvnr.' '.$row->lv_bezeichnung; } function getSemesterWhereClause() { global $conn; - $qry="select * from tbl_studiensemester where ende>now()"; - $result=pg_exec($conn, $qry); + $qry="SELECT * FROM public.tbl_studiensemester WHERE ende>now()"; + $result=pg_query($conn, $qry); $where=''; while ($row=pg_fetch_object($result)) { @@ -121,12 +122,12 @@ function validate($row) /** * FAS-Lehrfach auf interne Lehrfach-Nr übersetzen */ -function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, $fachbereich_id, $ects, $conn) +function getLehrfachId($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, $fachbereich_id, $conn) { global $lehrfach; global $text; - if (isset($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'])) + if (isset($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_id'])) { //echo 'Nummer:'.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'].'Bez: '.$lehrfach_bezeichnung.'
'; @@ -134,47 +135,22 @@ function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung']!=$lehrfach_bezeichnung) { // Update - $qry="UPDATE tbl_lehrfach SET bezeichnung='$lehrfach_bezeichnung' WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']; + $qry="UPDATE lehre.tbl_lehrfach SET bezeichnung='$lehrfach_bezeichnung' WHERE lehrfach_id=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_id']; if (!$result=pg_query($conn, $qry)) echo $qry.' fehlgeschlagen!
'; else { echo 'Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!
'; - $text.='Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!\n'; + $text.='Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung." geaendert!\n"; $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung']=$lehrfach_bezeichnung; } } - // Nebenbei die ECTS Punkte kontrollieren - if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']!=$ects) - { - if ($ects!='') //ereg("[0-9]{1,4}[\.|,][0-9]{0,2}$",$ects) - { - // Update - $qry="UPDATE tbl_lehrfach SET ects='$ects' WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']; - //echo $qry.'
'; - if (!$result=pg_query($conn, $qry)) - echo $qry.' fehlgeschlagen!
'; - else - { - echo ' Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!
'; - $text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!\n'; - $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']=$ects; - } - } - else - { - echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects.' nicht Plausibel!
'; - $text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects.' nicht Plausibel!\n'; - } - - } - // Nebenbei die FachbereichID kontrollieren if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']!=$fachbereich_id) { // Update - $qry="UPDATE tbl_lehrfach SET fachbereich_id=$fachbereich_id WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']; + $qry="UPDATE lehre.tbl_lehrfach SET fachbereich_kurzbz=(SELECT fachbereich_kurzbz FROM public.tbl_fachbereich where ext_id=$fachbereich_id LIMIT 1) WHERE lehrfach_id=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_id']; if (!$result=@pg_query($conn, $qry)) echo $qry.' fehlgeschlagen!
'; else @@ -184,12 +160,70 @@ function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']=$fachbereich_id; } } - return $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']; + return $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_id']; } //echo 'missing getLehrfachNr: '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.'
'; return -1; } +/** + * FAS-LV auf interne LV-id übersetzen + */ +function getLvId($kurzbz,$studiengang_kz,$semester,$lv_bezeichnung, $ects, $conn) +{ + global $lehrveranstaltung; + global $text; + + if (isset($lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrveranstaltung_id'])) + { + //echo 'Nummer:'.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'].'Bez: '.$lehrfach_bezeichnung.'
'; + + // Nebenbei die LVbezeichnung kontrollieren + if ($lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['bezeichnung']!=$lv_bezeichnung) + { + // Update + $qry="UPDATE lehre.tbl_lehrveranstaltung SET bezeichnung='$lv_bezeichnung' WHERE lehrveranstaltung_id=".$lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrveranstaltung_id']; + if (!$result=pg_query($conn, $qry)) + echo $qry.' fehlgeschlagen!
'; + else + { + echo 'Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['bezeichnung'].' auf '.$lv_bezeichnung.' geaendert!
'; + $text.='Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['bezeichnung'].' auf '.$lv_bezeichnung." geaendert!\n"; + $lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['bezeichnung']=$lv_bezeichnung; + } + } + + // Nebenbei die ECTS Punkte kontrollieren + + if ($lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']!=$ects) + { + if ($ects!='') //ereg("[0-9]{1,4}[\.|,][0-9]{0,2}$",$ects) + { + // Update + $qry="UPDATE lehre.tbl_lehrveranstaltung SET ects='$ects' WHERE lehrveranstaltung_id=".$lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrveranstaltung_id']; + //echo $qry.'
'; + if (!$result=pg_query($conn, $qry)) + echo $qry.' fehlgeschlagen!
'; + else + { + echo ' Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!
'; + $text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects." geaendert!\n"; + $lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']=$ects; + } + } + else + { + echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects.' nicht Plausibel!
'; + $text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects." nicht Plausibel!\n"; + } + + } + + return $lehrveranstaltung[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrveranstaltung_id']; + } + //echo 'missing getLehrfachNr: '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.'
'; + return -1; +} /************************* * FAS-Synchronisation @@ -197,44 +231,56 @@ function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, // E-Mails der Studiengänge $stg_mail=array(); -$qry="select studiengang_kz,email,kurzbz from tbl_studiengang"; -$result=pg_exec($conn, $qry); +$qry="select studiengang_kz,email,upper(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang"; +$result=pg_query($conn, $qry); while ($row=pg_fetch_object($result)) { - $stg_mail[$row->studiengang_kz] = $row->email; + $stg_mail[$row->studiengang_kz] = 'oesi@technikum-wien.at';//$row->email; $stg_kurzbz[$row->studiengang_kz]=$row->kurzbz; } // Anzahl der LVA in VileSci -$sql_query="SELECT count(*) AS anz FROM tbl_lehrveranstaltung"; +$sql_query="SELECT count(*) AS anz FROM lehre.tbl_lehrveranstaltung"; //echo $sql_query."
"; -$result=pg_exec($conn, $sql_query); -$vil_anz_lva=pg_fetch_result($result,0,'anz'); +$result=pg_query($conn, $sql_query); +$row=pg_fetch_object($result); +$vil_anz_lva = $row->anz; // Lehrfächer holen und in Array speichern (Key ist kurzbz + '/' + lehform_kurzbz) -$sql_query="SELECT lehrfach_nr,kurzbz,studiengang_kz,semester, bezeichnung, fachbereich_id, ects FROM tbl_lehrfach"; -$result=pg_exec($conn, $sql_query); +$sql_query="SELECT lehrfach_id, tbl_lehrfach.kurzbz, tbl_lehrfach.studiengang_kz, tbl_lehrfach.semester, tbl_lehrfach.bezeichnung, tbl_fachbereich.ext_id as fachbereich_id, tbl_fachbereich.fachbereich_kurzbz FROM lehre.tbl_lehrfach JOIN public.tbl_fachbereich using(fachbereich_kurzbz)"; +$result=pg_query($conn, $sql_query); while ($row=pg_fetch_object($result)) { - $lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_nr'] = $row->lehrfach_nr; + $lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_id'] = $row->lehrfach_id; $lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['fachbereich_id'] = $row->fachbereich_id; $lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_bezeichnung'] = $row->bezeichnung; - $lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['ects'] = $row->ects; + //$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['ects'] = $row->ects; } -//print_r($lehrfach); -// Einheiten holen -$sql_query="SELECT einheit_kurzbz,bezeichnung FROM tbl_einheit"; -$result=pg_exec($conn, $sql_query); +//LVA holen und in Array speichern (Key ist kurzbz + '/' + lehform_kurzbz) +$sql_query="SELECT lehrveranstaltung_id,kurzbz,studiengang_kz,semester, bezeichnung, ects FROM lehre.tbl_lehrveranstaltung"; +$result=pg_query($conn, $sql_query); while ($row=pg_fetch_object($result)) - $einheit[$row->einheit_kurzbz] = $row->bezeichnung; +{ + $lehrveranstaltung[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrveranstaltung_id'] = $row->lehrveranstaltung_id; + //$lehrveranstaltung[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_id'] = $row->lehrfach_id; + $lehrveranstaltung[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['bezeichnung'] = $row->bezeichnung; + $lehrveranstaltung[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['ects'] = $row->ects; +} + +//print_r($lehrfach); +// Gruppen holen +$sql_query="SELECT gruppe_kurzbz,bezeichnung FROM public.tbl_gruppe"; +$result=pg_query($conn, $sql_query); +while ($row=pg_fetch_object($result)) + $einheit[$row->gruppe_kurzbz] = $row->bezeichnung; // Raumtypen holen -$sql_query="SELECT raumtyp_kurzbz,beschreibung FROM tbl_raumtyp"; -$result=pg_exec($conn, $sql_query); +$sql_query="SELECT raumtyp_kurzbz,beschreibung FROM public.tbl_raumtyp"; +$result=pg_query($conn, $sql_query); while ($row=pg_fetch_object($result)) $raumtyp[$row->raumtyp_kurzbz] = $row->beschreibung; // Lehformen holen -$sql_query="SELECT lehrform_kurzbz,bezeichnung FROM tbl_lehrform"; -$result=pg_exec($conn, $sql_query); +$sql_query="SELECT lehrform_kurzbz,bezeichnung FROM lehre.tbl_lehrform"; +$result=pg_query($conn, $sql_query); while ($row=pg_fetch_object($result)) $lehrform[$row->lehrform_kurzbz] = $row->bezeichnung; //print_r($lehrfach); @@ -243,14 +289,14 @@ flush(); // Start Lehrveranstaltungen Synchro $sql_query="SELECT DISTINCT fas_id,trim(lvnr) AS lvnr,trim(unr)::int8 AS unr,einheit_kurzbz,lektor,trim(upper(lehrfach_kurzbz)) AS lehrfach_kurzbz, - trim(upper(lehrform)) AS lehrform, lehrfach_bezeichnung, + trim(upper(lehrform)) AS lehrform, lehrfach_bezeichnung, trim(upper(lv_kurzbz)) AS lv_kurzbz, lv_bezeichnung, studiengang_kz,fachbereich_id,semester,verband,gruppe,raumtyp,raumtypalternativ, round(semesterstunden) AS semesterstunden,stundenblockung,wochenrythmus,start_kw,anmerkung,studiensemester_kurzbz, ects FROM fas_view_alle_lehreinheiten_vilesci ". "where ".getSemesterWhereClause(); //echo $sql_query."
"; -$result=pg_exec($conn_fas, $sql_query); -$num_rows=pg_numrows($result); +$result=pg_query($conn_fas, $sql_query); +$num_rows=pg_num_rows($result); $text="Dies ist eine automatische eMail!\r\r"; $text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r"; $text.="Anzahl der LVA vom FAS-Import: $num_rows \r"; @@ -264,17 +310,19 @@ $anz_insert=0; echo $num_rows.' Datensaetze
'; for ($i=0;$i<$num_rows;$i++) { - if ($i%100==0) - { - echo '-'; - flush(); - } + + //if ($i%100==0) + //{ + // echo '-'; + // flush(); + //} $row=pg_fetch_object($result,$i); // Kennzahl der Studiengangs bei ehemaligen bTec auf TW aendern. if ($row->studiengang_kz==203) $row->studiengang_kz=0; // Lehrfach-Nr übersetzen (-1 wenn nicht vorhanden) - $row->lehrfach_nr=getLehrfachNr($row->lehrfach_kurzbz,$row->studiengang_kz,$row->semester, $row->lehrfach_bezeichnung, $row->fachbereich_id, $row->ects, $conn); + $row->lehrfach_id=getLehrfachid($row->lehrfach_kurzbz,$row->studiengang_kz,$row->semester, $row->lehrfach_bezeichnung, $row->fachbereich_id, $conn); + $row->lehrveranstaltung_id=getLvId($row->lv_kurzbz,$row->studiengang_kz,$row->semester, $row->lv_bezeichnung, $row->ects, $conn); // Einheit vollstaendiger Name if (count($row->einheit_kurzbz)>0) $row->einheit_kurzbz=$stg_kurzbz[$row->studiengang_kz].'-'.$row->einheit_kurzbz; @@ -291,213 +339,387 @@ for ($i=0;$i<$num_rows;$i++) if (!$row->wochenrythmus>0) $row->wochenrythmus=1; - if ($row->lehrfach_nr==-1) + if ($row->lehrfach_id==-1) { //$error_log[$row->studiengang_kz][]=printLVA($row).': Lehrfach (Kurzbz='".$row->lehrfach_kurzbz."',Lehrform".$row->lehrform) existiert noch nicht. Stundenplanabteilung wurde benachrichtigt.'; if (!isset($missing_lehrfaecher[$row->lehrfach_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester])) $missing_lehrfaecher[$row->lehrfach_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]=1; $valid=false; } + if ($row->lehrveranstaltung_id==-1) + { + if (!isset($missing_lehrveranstaltungen[$row->lv_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester])) $missing_lehrveranstaltungen[$row->lv_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]=1; + $valid=false; + } - if (validate($row) && $row->lehrfach_nr>-1) + if (validate($row) && $row->lehrfach_id>-1 && $row->lehrveranstaltung_id>-1) { // SQL vorbereiten (jede LVA vom FAS im VileSci suchen) - $sql_query="SELECT * from tbl_lehrveranstaltung where fas_id=".$row->fas_id; + $sql_query="SELECT * FROM lehre.tbl_lehreinheitmitarbeiter WHERE tbl_lehreinheitmitarbeiter.ext_id=".$row->fas_id; //echo $sql_query; $res_lva=pg_query($conn, $sql_query); - $num_rows_lva=pg_numrows($res_lva); + $num_rows_lva=pg_num_rows($res_lva); - // neue LVA + // neue Lehreinheit if ($num_rows_lva==0) { - $text.="Die LVA fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wird neu angelegt.\r"; - $sql_query="INSERT INTO tbl_lehrveranstaltung (lvnr,unr,einheit_kurzbz,lektor,lehrfach_nr,lehrform_kurzbz,"; - $sql_query.="studiengang_kz,fachbereich_id,semester,verband,gruppe,raumtyp,". - "raumtypalternativ,semesterstunden,stundenblockung,". - "wochenrythmus,start_kw,studiensemester_kurzbz,fas_id,anmerkung) ". - "VALUES('$row->lvnr'". - ",$row->unr,". - (strlen($row->einheit_kurzbz)>0?"'".$row->einheit_kurzbz."'":'NULL').",". - "'$row->lektor',". - "'$row->lehrfach_nr',". - "'$row->lehrform',". - "'$row->studiengang_kz',". - "$row->fachbereich_id,". - "$row->semester,"; - if ($row->verband==null) - $sql_query.='NULL,'; - else - $sql_query.="'$row->verband',"; - if ($row->gruppe==null) - $sql_query.='NULL,'; - else - $sql_query.="'$row->gruppe',"; - $sql_query.="'$row->raumtyp',". - "'$row->raumtypalternativ',". - "$row->semesterstunden,". - "$row->stundenblockung,". - "$row->wochenrythmus,". - "$row->start_kw,". - "'$row->studiensemester_kurzbz'," . - "$row->fas_id,'$row->anmerkung')"; - //echo $sql_query.'
'; - if(!$res_insert=@pg_exec($conn, $sql_query)) + $text.="Die Lehreinheit fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wird neu angelegt.\r"; + pg_query($conn, 'BEGIN'); + //Neue Lehreinheit anlegen + $sql_query='INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_id, studiensemester_kurzbz, lehrfach_id,'. + 'lehrform_kurzbz, stundenblockung, wochenrythmus, start_kw, raumtyp, raumtypalternativ, sprache,'. + 'lehre, anmerkung, unr, lvnr, updateamum, updatevon, insertamum, insertvon) '. + "VALUES('$row->lehrveranstaltung_id','$row->studiensemester_kurzbz','$row->lehrfach_id',". + "'$row->lehrform',". + "'$row->stundenblockung',". + "'$row->wochenrythmus',". + "'$row->start_kw',". + "'$row->raumtyp',". + "'$row->raumtypalternativ',". + "'German',". + "true,". + "'$row->anmerkung',". + "'$row->unr',". + "'$row->lvnr',". + "now(),'auto', now(),'auto');"; + echo $sql_query.'
'; + if(!$res_insert=@pg_query($conn, $sql_query)) { $text.=$sql_query; $text.="\nFehler: ".pg_errormessage($conn)."\n"; $insert_error++; + pg_query($conn, 'ROLLBACK'); } else - $anz_insert++; - } - // bestehende LVA - elseif ($num_rows_lva==1) - { - $update_sql=''; - $row_lva=pg_fetch_object($res_lva,0); - //var_dump($row_lva); - //if ($row->gruppe==NULL) - // $row->gruppe=1; - //echo '-'.$row->lvnr.'-'.$row_lva->lvnr.'-
'; - if ($row->lvnr!=$row_lva->lvnr) - $update_sql.="lvnr='".$row->lvnr."'"; - elseif ($row->unr!=$row_lva->unr) - $update_sql.="unr=".$row->unr; - elseif ($row->einheit_kurzbz!=$row_lva->einheit_kurzbz) - $update_sql.=(strlen($update_sql)>0?',':'').'einheit_kurzbz='.(strlen($row->einheit_kurzbz)>0?"'".$row->einheit_kurzbz."'":'NULL'); - elseif ($row->lektor!=$row_lva->lektor) - $update_sql.=(strlen($update_sql)>0?',':'')."lektor='".$row->lektor."'"; - elseif ($row->lehrfach_nr!=$row_lva->lehrfach_nr) - $update_sql.=(strlen($update_sql)>0?',':'')."lehrfach_nr=".$row->lehrfach_nr; - elseif ($row->lehrform!=$row_lva->lehrform_kurzbz) - $update_sql.=(strlen($update_sql)>0?',':'')."lehrform_kurzbz='".$row->lehrform."'"; - elseif ($row->studiengang_kz!=$row_lva->studiengang_kz) - $update_sql.=(strlen($update_sql)>0?',':'')."studiengang_kz=".$row->studiengang_kz; - elseif ($row->fachbereich_id!=$row_lva->fachbereich_id) - $update_sql.=(strlen($update_sql)>0?',':'')."fachbereich_id=".$row->fachbereich_id; - elseif ($row->semester!=$row_lva->semester) - $update_sql.=(strlen($update_sql)>0?',':'')."semester=".$row->semester; - elseif ($row->verband!=$row_lva->verband) - $update_sql.=(strlen($update_sql)>0?',':'')."verband=".(strlen($row->verband)>0?"'".$row->verband."'":'NULL'); - elseif ($row->gruppe!=$row_lva->gruppe) - $update_sql.=(strlen($update_sql)>0?',':'')."gruppe=".(strlen($row->gruppe)>0?"'".$row->gruppe."'":'NULL'); - elseif ($row->raumtyp!=$row_lva->raumtyp) - $update_sql.=(strlen($update_sql)>0?',':'')."raumtyp='".$row->raumtyp."'"; - elseif ($row->raumtypalternativ!=$row_lva->raumtypalternativ) - $update_sql.=(strlen($update_sql)>0?',':'')."raumtypalternativ='".$row->raumtypalternativ."'"; - elseif ($row->semesterstunden!=$row_lva->semesterstunden) - $update_sql.=(strlen($update_sql)>0?',':'')."semesterstunden=".$row->semesterstunden; - elseif ($row->stundenblockung!=$row_lva->stundenblockung) - $update_sql.=(strlen($update_sql)>0?',':'')."stundenblockung=".$row->stundenblockung; - elseif ($row->wochenrythmus!=$row_lva->wochenrythmus) - $update_sql.=(strlen($update_sql)>0?',':'')."wochenrythmus=".$row->wochenrythmus; - elseif ($row->start_kw!=$row_lva->start_kw) - $update_sql.=(strlen($update_sql)>0?',':'')."start_kw=".(strlen($row->start_kw)>0?$row->start_kw:'NULL'); - elseif ($row->studiensemester_kurzbz!=$row_lva->studiensemester_kurzbz) - $update_sql.=(strlen($update_sql)>0?',':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."'"; - elseif ($row->anmerkung!=$row_lva->anmerkung) - $update_sql.=(strlen($update_sql)>0?',':'')."anmerkung='".$row->anmerkung."'"; - - if (strlen($update_sql)>0) { - $text.="Die LVA fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wird upgedatet.\r"; - $sql_query="UPDATE tbl_lehrveranstaltung SET ". - $update_sql. - " where fas_id=".$row->fas_id; - - //echo $sql_query.'
'; - if(!$res_update=@pg_query($conn, $sql_query)) + //Lehreinheit_id auslesen + $sql_query = "SELECT currval('lehre.tbl_lehreinheit_lehreinheit_id_seq') as id"; + echo $sql_query.'
'; + if(!$row_seq = pg_fetch_object(pg_query($conn, $sql_query))) { $text.=$sql_query; - $text.="\rFehler: ".pg_errormessage($conn)."\r"; - $update_error++; + $text.="\nFehler: Sequence konnte nicht ausgelesen werden\n"; + $insert_error++; + pg_query($conn,'ROLLBACK'); } - else - $anz_update++; - - // **************** - // Auch in tbl_stundenplandev updaten - $sql_query="SELECT * FROM tbl_stundenplandev WHERE - lehrveranstaltung_id=$row_lva->lehrveranstaltung_id AND datum>=now()"; - //echo $sql_query.'
'; - if(!$res_upd_stpl=@pg_query($conn, $sql_query)) + else { - $text.=$sql_query; - $text.="\rFehler: ".pg_errormessage($conn)."\r"; - } - else - { - if (!pg_query($conn,"BEGIN;")) - $text.="\rFehler: ".pg_errormessage($conn)."\r"; - $kollision=false; - while ($row_upd_stpl=pg_fetch_object($res_upd_stpl)) - { - // Lehrstunde auf Kollisionen checken - $lehrstunde=new lehrstunde($conn); - //echo '
STPL-ID:'.$row_upd_stpl->stundenplandev_id.'
'; - if (!$lehrstunde->load($row_upd_stpl->stundenplandev_id)) - echo $lehrstunde->errormsg; - $lehrstunde->lektor_uid=$row->lektor; - if (!$lehrstunde->kollision()) - { - if (!$lehrstunde->save('sync_fas_lva')) - echo $lehrstunde->errormsg; - } - else - { - $error_log[$row->studiengang_kz][]=$lehrstunde->errormsg; - $text.="\rKollision: ".$lehrstunde->errormsg."\r"; - $kollision=true; - echo "Kollision: ".$lehrstunde->errormsg."
"; - } - } - if ($kollision) - { - if (!pg_query($conn,"ROLLBACK;")) - $text.="\rFehler: ".pg_errormessage($conn)."\r"; - } + //Gruppe zuteilen + $sql_query = 'INSERT INTO lehre.tbl_lehreinheitgruppe(lehreinheit_id, studiengang_kz,'. + ' semester, verband, gruppe, gruppe_kurzbz, updateamum, updatevon ,insertamum, insertvon)'. + " VALUES('$row_seq->id','$row->studiengang_kz', '$row->semester',"; + if ($row->verband==null) + $sql_query.='NULL,'; else - if (!pg_query($conn,"COMMIT;")) - $text.="\rFehler: ".pg_errormessage($conn)."\r"; + $sql_query.="'$row->verband',"; + if ($row->gruppe==null) + $sql_query.='NULL,'; + else + $sql_query.="'$row->gruppe',"; + $sql_query.=(strlen($row->einheit_kurzbz)>0?"'".$row->einheit_kurzbz."'":'NULL').",now(),'auto',now(),'auto');"; + echo $sql_query.'
'; + if(!pg_query($conn, $sql_query)) + { + $text.=$sql_query; + $text.="\nFehler: ".pg_errormessage($conn)."\n"; + $insert_error++; + pg_query($conn, 'ROLLBACK'); + } + else + { + //Lektor zuteilen + $sql_query = 'INSERT INTO lehre.tbl_lehreinheitmitarbeiter(lehreinheit_id, mitarbeiter_uid,'. + 'lehrfunktion_kurzbz, semesterstunden, planstunden, stundensatz, faktor, anmerkung,'. + 'bismelden, updateamum, updatevon, insertamum, insertvon, ext_id)'. + " VALUES('$row_seq->id','$row->lektor','lektor','$row->semesterstunden',". + " NULL, NULL, 1, NULL, true, now(), 'auto',now(),'auto', '$row->fas_id');"; + echo $sql_query.'
'; + if(!pg_query($conn, $sql_query)) + { + $text.=$sql_query; + $text.="\nFehler: ".pg_errormessage($conn)."\n"; + $insert_error++; + pg_query($conn, 'ROLLBACK'); + } + else + { + pg_query($conn, 'COMMIT'); + $anz_insert++; + } + } } } - } + + } + elseif ($num_rows_lva>0)// bestehende Lehreinheit + { + $update_sql=''; + $row_lva=pg_fetch_object($res_lva); + + $sql_query = "SELECT * FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$row_lva->lehreinheit_id'"; + if(!$result_le = pg_query($conn, $sql_query)) + { + $update_error++; + $text.="\nLehreinheit konnte nicht geladen werden: $sql_query\n"; + } + else + { + $row_le = pg_fetch_object($result_le); + $update=false; + $update_sql=''; + if ($row->lvnr!=$row_le->lvnr) + $update_sql.=(strlen($update_sql)>0?',':'')."lvnr='".$row->lvnr."'"; + if ($row->unr!=$row_le->unr) + $update_sql.=(strlen($update_sql)>0?',':'')."unr=".$row->unr; + //if ($row->lehrfach_nr!=$row_le->lehrfach_id) + // $update_sql.=(strlen($update_sql)>0?',':'')."lehrfach_nr=".$row->lehrfach_nr; + if ($row->lehrform!=$row_le->lehrform_kurzbz) + $update_sql.=(strlen($update_sql)>0?',':'')."lehrform_kurzbz='".$row->lehrform."'"; + //if ($row->studiengang_kz!=$row_le->studiengang_kz) + // $update_sql.=(strlen($update_sql)>0?',':'')."studiengang_kz=".$row->studiengang_kz; + //if ($row->semester!=$row_le->semester) + // $update_sql.=(strlen($update_sql)>0?',':'')."semester=".$row->semester; + if ($row->raumtyp!=$row_le->raumtyp) + $update_sql.=(strlen($update_sql)>0?',':'')."raumtyp='".$row->raumtyp."'"; + if ($row->raumtypalternativ!=$row_le->raumtypalternativ) + $update_sql.=(strlen($update_sql)>0?',':'')."raumtypalternativ='".$row->raumtypalternativ."'"; + if ($row->stundenblockung!=$row_le->stundenblockung) + $update_sql.=(strlen($update_sql)>0?',':'')."stundenblockung=".$row->stundenblockung; + if ($row->wochenrythmus!=$row_le->wochenrythmus) + $update_sql.=(strlen($update_sql)>0?',':'')."wochenrythmus=".$row->wochenrythmus; + if ($row->start_kw!=$row_le->start_kw) + $update_sql.=(strlen($update_sql)>0?',':'')."start_kw=".(strlen($row->start_kw)>0?$row->start_kw:'NULL'); + if ($row->studiensemester_kurzbz!=$row_le->studiensemester_kurzbz) + $update_sql.=(strlen($update_sql)>0?',':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."'"; + if ($row->anmerkung!=$row_le->anmerkung) + $update_sql.=(strlen($update_sql)>0?',':'')."anmerkung='".$row->anmerkung."'"; + + if (strlen($update_sql)>0) + { + $sql_query="UPDATE lehre.tbl_lehreinheit SET ". + $update_sql. + " where lehreinheit_id=".$row_le->lehreinheit_id; + if(!$res_update=@pg_query($conn, $sql_query)) + { + $text.=$sql_query; + $text.="\rFehler: ".pg_errormessage($conn)."\r"; + $update_error++; + } + else + $update=true; + } + + $sql_query = 'SELECT * FROM lehre.tbl_lehreinheitmitarbeiter'. + " WHERE lehreinheit_id='$row_lva->lehreinheit_id' AND mitarbeiter_uid='$row->lektor'"; + //echo $sql_query.'
'; + if($result_lektor = pg_query($conn, $sql_query)) + { + if(pg_num_rows($result_lektor)>0) + { + //Update Lehreinheitmitarbeiter + $row_lektor = pg_fetch_object($result_lektor); + $update_sql=''; + if ($row->semesterstunden!=$row_lektor->semesterstunden) + $update_sql.=(strlen($update_sql)>0?',':'')."semesterstunden=".$row->semesterstunden; + + if($update_sql!='') + { + $sql_query = "UPDATE lehre.tbl_lehreinheitmitarbeiter SET $update_sql". + " WHERE lehreinheit_id='$row_lva->lehreinheit_id' AND mitarbeiter_uid='$row->lektor'"; + echo $sql_query.'
'; + if(!pg_query($conn, $sql_query)) + { + $update_error++; + $text .=$sql_query; + $text.="\nFehler:".pg_errormessage($conn); + } + else + $update=true; + } + } + else + { + //Lehreinheitmitarbeiter Eintrag hinzufuegen + $sql_query = 'INSERT INTO lehre.tbl_lehreinheitmitarbeiter(lehreinheit_id, mitarbeiter_uid,'. + 'lehrfunktion_kurzbz, semesterstunden, planstunden,'. + 'bismelden, updateamum, updatevon, insertamum, insertvon, ext_id)'. + " VALUES('$row_lva->lehreinheit_id', '$row->lektor', 'lektor', '$row->semesterstunden','". + " $row->semesterstunden',true,now(),'auto',now(),'auto','$row->fas_id');"; + echo $sql_query.'
'; + if(!pg_query($conn, $sql_query)) + { + $text.=$sql_query; + $text.="\nFehler:".pg_errormessage($conn); + $update_error++; + } + else + $update=true; + } + } + + $sql_query = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$row_lva->lehreinheit_id'"; + if($row->einheit_kurzbz!='') + { + $sql_query.=" AND gruppe_kurzbz='$row->einheit_kurzbz'"; + } + else + { + $sql_query.=" AND studiengang_kz='$row->studiengang_kz' AND semester='$row->semester'"; + if($row->verband!='') + $sql_query.=" AND verband='$row->verband'"; + if($row->gruppe!='') + $sql_query.=" AND gruppe='$row->gruppe'"; + } + + if($result_gruppen = pg_query($conn, $sql_query)) + { + if(pg_num_rows($result_gruppen)==0) + { + if($row->einheit_kurzbz!='' && isset($einheit[$row->einheit_kurzbz])) + { + //Gruppeneintrag hinzuguegen + $sql_query = 'INSERT INTO lehre.tbl_lehreinheitgruppe(lehreinheit_id, studiengang_kz, semester,'. + ' verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon)'. + " VALUES ('$row_lva->lehreinheit_id','$row->studiengang_kz', '$row->semester',". + (strlen($row->verband)>0?"'$row->verband'":'NULL').','. + (strlen($row->gruppe)>0?"'$row->gruppe'":'NULL').','. + (strlen($row->einheit_kurzbz)>0?"'$row->einheit_kurzbz'":'NULL').','. + "now(),'auto', now(),'auto');"; + echo $sql_query.'
'; + if(pg_query($conn, $sql_query)) + { + $update=true; + } + else + { + $text.=$sql_query; + $text.="\nFehler:".pg_errormessage($conn); + $update_error++; + } + } + else + { + if(!isset($missing_einheit[$row->einheit_kurzbz])) + $missing_einheit[$row->einheit_kurzbz]=1; + } + } + } + else + { + $text.=$sql_query; + $text.="\nFehler:".pg_errormessage($conn); + $update_error++; + } + + + if($update) + { + $text.="Die Lehreinheit fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wurde upgedatet.\r"; + $anz_update++; + } + + /* + // **************** + // Auch in tbl_stundenplandev updaten + $sql_query="SELECT * FROM tbl_stundenplandev WHERE + lehrveranstaltung_id=$row_lva->lehrveranstaltung_id AND datum>=now()"; + //echo $sql_query.'
'; + if(!$res_upd_stpl=@pg_query($conn, $sql_query)) + { + $text.=$sql_query; + $text.="\rFehler: ".pg_errormessage($conn)."\r"; + } + else + { + if (!pg_query($conn,"BEGIN;")) + $text.="\rFehler: ".pg_errormessage($conn)."\r"; + $kollision=false; + while ($row_upd_stpl=pg_fetch_object($res_upd_stpl)) + { + // Lehrstunde auf Kollisionen checken + $lehrstunde=new lehrstunde($conn); + //echo '
STPL-ID:'.$row_upd_stpl->stundenplandev_id.'
'; + if (!$lehrstunde->load($row_upd_stpl->stundenplandev_id)) + echo $lehrstunde->errormsg; + $lehrstunde->lektor_uid=$row->lektor; + if (!$lehrstunde->kollision()) + { + if (!$lehrstunde->save('sync_fas_lva')) + echo $lehrstunde->errormsg; + } + else + { + $error_log[$row->studiengang_kz][]=$lehrstunde->errormsg; + $text.="\rKollision: ".$lehrstunde->errormsg."\r"; + $kollision=true; + echo "Kollision: ".$lehrstunde->errormsg."
"; + } + } + if ($kollision) + { + if (!pg_query($conn,"ROLLBACK;")) + $text.="\rFehler: ".pg_errormessage($conn)."\r"; + } + else + if (!pg_query($conn,"COMMIT;")) + $text.="\rFehler: ".pg_errormessage($conn)."\r"; + }*/ + } + } // LVA kommt mehrmals vor ->Warnung - elseif ($num_rows_lva>1) - { - $text.="\r!!! Die LVA fas_id=$row->fas_id kommt mehrfach vor!\r"; - $double_error++; - } + //elseif ($num_rows_lva>1) + //{ + // $text.="\r!!! Die LVA fas_id=$row->fas_id kommt mehrfach vor!\r"; + // $double_error++; + //} } else $plausi_error++; } + // **************** // Ueberfluessige Datensaetze loeschen $whereClause=getSemesterWhereClause(); -$sql_query="DELETE FROM tbl_lehrveranstaltung WHERE fas_id NOT IN - (SELECT fas_id FROM vw_fas_lehrveranstaltung WHERE $whereClause) AND (fas_id!=0 OR fas_id IS NOT NULL) AND ($whereClause)"; +$sql_query="SELECT tbl_lehreinheitmitarbeiter.ext_id FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit WHERE tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND $whereClause AND tbl_lehreinheitmitarbeiter.ext_id NOT IN (SELECT fas_id FROM lehre.vw_fas_lehrveranstaltung WHERE ($whereClause) AND (fas_id!=0 OR fas_id IS NOT NULL) AND ($whereClause))"; echo $sql_query.'
'; -if(!$res_delete=@pg_query($conn, $sql_query)) +$anz_delete=0; +if($res_delete=pg_query($conn, $sql_query)) { - $text.='\n'.$sql_query; - $text.="\rFehler: ".pg_errormessage($conn)."\r"; - $text.="\rSolution: DELETE FROM tbl_stundenplandev WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM tbl_lehrveranstaltung WHERE fas_id NOT IN (SELECT fas_id FROM vw_fas_lehrveranstaltung WHERE $whereClause) AND (fas_id!=0 OR fas_id IS NOT NULL) AND ($whereClause))\r"; + while($row = pg_fetch_object($res_delete)) + { + $qry = "DELETE FROM lehre.tbl_lehreinheitgruppe WHERE ext_id='$row->ext_id'; + DELETE FROM lehre.tbl_lehreinheitmitarbeiter WHERE ext_id='$row->ext_id';"; + $text.="Lehreinheitengruppe und Lehreinheitmitarbeiter mit FAS_ID '$row->ext_id' wird geloescht\n"; + + if(pg_query($conn, $qry)) + { + $anz_delete++; + $text.="Lehreinheitengruppe und Lehreinheitmitarbeiter mit FAS_ID '$row->ext_id' wurde geloescht\n"; + } + else + { + $text.=$qry; + $text.="\nFehler beim loeschen:".pg_errormessage($conn);"\n"; + } + } } else -{ - $anz_delete=pg_numrows($res_delete); +{ + $text.="\n".$sql_query; + $text.="\nFehler: ".pg_errormessage($conn)."\n"; } + + //Ausgabe Zusammenfassung $text.="\n$anz_delete Lehrveranstaltungen wurden geloescht!\n"; $text.="$plausi_error Fehler beim Plausibilitaetscheck!\n"; $text.="$update_error Fehler bei LVA-Update!\n"; $text.="$insert_error Fehler bei LVA-Insert!\n"; $text.="$double_error LVA kommen in VileSci doppelt vor!\n\n"; -$text.="$anz_update LVA wurden upgedatet.\n"; -$text.="$anz_insert LVA wurden neu angelegt.\n\n"; +$text.="$anz_update LE wurden upgedatet.\n"; +$text.="$anz_insert LE wurden neu angelegt.\n\n"; $text.="\nEND OF SYNCHRONISATION\n"; // Validation error hinzufügen @@ -513,6 +735,11 @@ while(list($k,$v)=each($missing_lehrfaecher)) { $text.=" $k\n"; } +$text.="\n\nFehlende Lehrveranstaltungen: \n"; +while(list($k,$v)=each($missing_lehrveranstaltungen)) +{ + $text.=" $k\n"; +} // fehlende einheiten $text.="\n\nFehlende Einheiten: \n"; while(list($k,$v)=each($missing_einheit)) @@ -531,6 +758,7 @@ while(list($k,$v)=each($missing_lehrform)) { $text.=" $k\n"; } + if (mail($adress,"FAS Synchro mit VileSci (Lehrveranstaltungen)",$text,"From: vilesci@technikum-wien.at")) $sendmail=true; else @@ -548,11 +776,11 @@ while(list($k,$v)=each($error_log)) $stg_text.="$txt\n"; echo $stg_text.'
'; // Studiengang - if (!mail($stg_mail[$k],"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at")) + if (!mail($stg_mail[$k],"FAS Synchro mit Portal (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at")) echo "Mail an '".$stg_mail[$k]."' konnte nicht verschickt werden!
"; // Stundenplanstelle echo "
Mail an Studiengang $k ($adress_stpl)
"; - if (!mail($adress_stpl,"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at")) + if (!mail($adress_stpl,"FAS Synchro mit Portal (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at")) echo 'Mail an "'.$adress_stpl.'" konnte nicht verschickt werden!
'; } @@ -570,15 +798,16 @@ if ($num_rows>0) $mail_text_false.=$row->fas_id.'->'.$row->anzahl."x\n"; $mail_text.=$mail_text_false."\n\nBitte überprüfen die Daten im FAS!!!"; if ($mail_text_false!='') - if (!mail($adress_fas,"FAS Synchro mit VileSci (Lehrveranstaltungen)",$mail_text,"From: vilesci@technikum-wien.at")) + if (!mail($adress_fas,"FAS Synchro mit Portal (Lehrveranstaltungen)",$mail_text,"From: vilesci@technikum-wien.at")) echo "Mail an '".$adress_fas."' konnte nicht verschickt werden!
"; else echo 'Mail wurde verschickt an '.$adress_fas.'!
'; + ?> -FAS-Synchro mit VileSci +FAS-Synchro mit PORTAL diff --git a/admin/sync/sync_vilesci_portal_lehreinheit.php b/admin/sync/sync_vilesci_portal_lehreinheit.php index 23cd97321..fda7ca344 100644 --- a/admin/sync/sync_vilesci_portal_lehreinheit.php +++ b/admin/sync/sync_vilesci_portal_lehreinheit.php @@ -84,7 +84,7 @@ function lektorzuweisen($lehreinheit_id, $uid, $semesterstunden, $fas_id) return true; } -function gruppezuweisen($id,$studiengang_kz, $semester, $verband, $gruppe, $einheit_kurzbz) +function gruppezuweisen($id,$studiengang_kz, $semester, $verband, $gruppe, $einheit_kurzbz, $fas_id) { global $error_log,$conn; @@ -146,6 +146,7 @@ function gruppezuweisen($id,$studiengang_kz, $semester, $verband, $gruppe, $einh $gruppe1->verband = $verband; $gruppe1->gruppe = $gruppe; $gruppe1->gruppe_kurzbz = strtoupper($einheit_kurzbz); + $gruppe1->ext_id=$fas_id; if($gruppe1->save(true)) return true; else @@ -240,7 +241,7 @@ if($result = pg_query($conn_vilesci, $qry)) pg_query($conn, 'BEGIN'); if(lektorzuweisen($row_val->lehreinheit_id, $row->lektor, $row->semesterstunden, $row->fas_id)) { - if(gruppezuweisen($row_val->lehreinheit_id, $row->studiengang_kz, $row->semester,$row->verband, $row->gruppe, $row->einheit_kurzbz)) + if(gruppezuweisen($row_val->lehreinheit_id, $row->studiengang_kz, $row->semester,$row->verband, $row->gruppe, $row->einheit_kurzbz, $row->fas_id)) { $qry = "INSERT INTO public.tbl_synclehreinheit(lehrveranstaltung_id_vilesci, lehreinheit_id_portal) VALUES('".$row->lehrveranstaltung_id."','".$row_val->lehreinheit_id."');"; @@ -319,7 +320,7 @@ if($result = pg_query($conn_vilesci, $qry)) VALUES('".$row->lehrveranstaltung_id."','".$row_val->id."');"; if(pg_query($conn,$qry)) { - if(gruppezuweisen($row_val->id, $row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->einheit_kurzbz)) + if(gruppezuweisen($row_val->id, $row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->einheit_kurzbz, $row->fas_id)) { if(lektorzuweisen($row_val->id, $row->lektor, $row->semesterstunden, $row->fas_id)) { diff --git a/cis/private/lehre/kreuzerltool/studentenansicht.php b/cis/private/lehre/kreuzerltool/studentenansicht.php index a88aa5bce..9cd156dd6 100644 --- a/cis/private/lehre/kreuzerltool/studentenansicht.php +++ b/cis/private/lehre/kreuzerltool/studentenansicht.php @@ -107,6 +107,7 @@ if($stsem=='') $stsem = $stsem_obj->getaktorNext(); //Lehreinheiten laden zu denen der eingeloggte Student zugeteilt ist +//Bei Lehrverbaenden werden auch die uebergeordneten geladen $qry = "SELECT distinct lehreinheit_id, kurzbz FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrfach USING(lehrfach_id) WHERE lehreinheit_id IN( SELECT lehreinheit_id FROM public.tbl_benutzergruppe JOIN lehre.tbl_lehreinheitgruppe USING (gruppe_kurzbz) WHERE tbl_benutzergruppe.uid='$user' AND @@ -136,12 +137,18 @@ $qry = "SELECT distinct lehreinheit_id, kurzbz FROM lehre.tbl_lehreinheit JOIN l AND trim(tbl_lehreinheitgruppe.verband) = trim(tbl_student.verband) ) + OR + ( + (trim(tbl_lehreinheitgruppe.verband)='' OR tbl_lehreinheitgruppe.verband is null) + AND + (trim(tbl_lehreinheitgruppe.gruppe)='' OR tbl_lehreinheitgruppe.gruppe is null) + ) ) ) AND tbl_lehreinheitgruppe.lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit JOIN campus.tbl_uebung USING(lehreinheit_id) WHERE tbl_lehreinheit.lehrveranstaltung_id='$lvid' AND tbl_lehreinheit.studiensemester_kurzbz='$stsem'))"; - +//echo $qry; if($result = pg_query($conn, $qry)) { if(pg_num_rows($result)>1) diff --git a/include/functions.inc.php b/include/functions.inc.php index dad400ea6..b0560b904 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -18,7 +18,7 @@ function check_lektor($uid, $conn) $sql_query="SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='$uid'"; //echo $sql_query; $result=pg_query($conn, $sql_query) or die(pg_last_error($conn)); - $num_rows=pg_numrows($result); + $num_rows=pg_num_rows($result); // Wenn kein ergebnis return 0 sonst ID if ($num_rows>0) { diff --git a/include/lehreinheitgruppe.class.php b/include/lehreinheitgruppe.class.php index d70b22e86..ea652ac98 100644 --- a/include/lehreinheitgruppe.class.php +++ b/include/lehreinheitgruppe.class.php @@ -35,6 +35,7 @@ class lehreinheitgruppe var $verband; // char(1) var $gruppe; // char(1) var $gruppe_kurzbz; // varchar(16) + var $ext_id; // bigint // ************************************************************************* // * Konstruktor - Uebergibt die Connection und laedt optional eine LE @@ -140,13 +141,14 @@ class lehreinheitgruppe if($new) { //ToDo ID entfernen - $qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz) + $qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, ext_id) VALUES('.$this->addslashes($this->lehreinheit_id).','. $this->addslashes($this->studiengang_kz).','. $this->addslashes($this->semester).','. $this->addslashes($this->verband).','. $this->addslashes($this->gruppe).','. - $this->addslashes($this->gruppe_kurzbz).');'; + $this->addslashes($this->gruppe_kurzbz).','. + $this->addslashes($this->ext_id).');'; } else { @@ -157,6 +159,7 @@ class lehreinheitgruppe ' verband='.$this->addslashes($this->verband).','. ' gruppe='.$this->addslashes($this->gruppe).','. ' gruppe_kurzbz='.$this->addslashes($this->gruppe_kurzbz).','. + ' ext_id='.$this->addslashes($this->ext_id).','. " WHERE lehreinheitgruppe_id=".$this->addslashes($this->lehreinheitgruppe_id).";"; }