This commit is contained in:
Andreas Österreicher
2007-11-21 16:36:02 +00:00
parent d22e0b6678
commit c41300b38c
8 changed files with 213 additions and 143 deletions
@@ -30,7 +30,7 @@
</head>
<body>';
echo mktime();
echo 'Starte Lehrveranstaltungs Syncronisation '.date('H:i:s').'<br>';
flush();
$plausi_error=0;
@@ -44,7 +44,7 @@
$anz_lf_update=0;
$anz_lf_insert=0;
$statistik='';
$head_stg_text="Dies ist eine automatische Mail!\n\nFolgende Fehler sind bei der Synchronisation der Lehrveranstaltungen aufgetreten:\n\n";
$head_text="Dies ist eine automatische Mail!\n\nFolgende Fehler sind bei der Synchronisation der Lehrveranstaltungen aufgetreten:\n\n";
$text='';
$stg_arr = array();
@@ -65,10 +65,78 @@
return $kurzbz;
}
function synctabentry_lv($semester, $lv, $lehrveranstaltung_id)
{
global $conn;
$qry = "INSERT INTO sync.tbl_synclehrveranstaltung(lv, insemester, lehrveranstaltung_id) VALUES($lv, $semester, $lehrveranstaltung_id);";
pg_query($conn, $qry);
}
function synctabentry_lf($semester, $lv, $lehrfach_id)
{
global $conn;
$qry = "INSERT INTO sync.tbl_synclehrfach(lv, insemester, lehrfach_id) VALUES($lv, $semester, $lehrfach_id);";
pg_query($conn, $qry);
}
if (!@pg_query($conn,'SELECT * FROM sync.tbl_synclehrveranstaltung LIMIT 1;'))
{
$sql='CREATE TABLE sync.tbl_synclehrveranstaltung (
lv integer,
insemester integer,
lehrveranstaltung_id integer,
constraint "pk_tbl_sync_stp_lehrveranstaltung" primary key ("lv","insemester","lehrveranstaltung_id"));
Grant select on sync.tbl_synclehrveranstaltung to group "admin";
Grant update on sync.tbl_synclehrveranstaltung to group "admin";
Grant delete on sync.tbl_synclehrveranstaltung to group "admin";
Grant insert on sync.tbl_synclehrveranstaltung to group "admin";';
if (!@pg_query($conn,$sql))
$text.= "sync.tbl_synclehrveranstaltung: ".pg_last_error($conn)."\n";
else
$text.= "sync.tbl_synclehrveranstaltung wurde angelegt!\n";
}
if (!@pg_query($conn,'SELECT * FROM sync.tbl_synclehrfach LIMIT 1;'))
{
$sql='CREATE TABLE sync.tbl_synclehrfach (
lv integer,
insemester integer,
lehrfach_id integer,
constraint "pk_tbl_sync_stp_lehrfach" primary key ("lv","insemester","lehrfach_id"));
Grant select on sync.tbl_synclehrfach to group "admin";
Grant update on sync.tbl_synclehrfach to group "admin";
Grant delete on sync.tbl_synclehrfach to group "admin";
Grant insert on sync.tbl_synclehrfach to group "admin";';
if (!@pg_query($conn,$sql))
$text.= "sync.tbl_synclehrfach: ".pg_last_error($conn)."\n";
else
$text.= "sync.tbl_synclehrfach wurde angelegt!\n";
}
// ******** SYNC START ********** //
$qry = "SELECT TOP 30 * FROM lv JOIN studienplaneintrag ON(__LV=_LV)";
$qry = "SELECT
_LV, SUBSTRING(chLVNr, 0, 200) as chLVNr, SUBSTRING(chBezeichnung, 0, 200) as chBezeichnung, _Studiengang, SUBSTRING(meKommentar, 0, 200) as meKommentar, inSemester, inSWS, ECTS
FROM
lv JOIN studienplaneintrag ON(__LV=_LV)
UNION
SELECT
_LV, SUBSTRING(chLVNr, 0, 200) as chLVNr, SUBSTRING(chBezeichnung, 0, 200) as chBezeichnung, _Studiengang, SUBSTRING(meKommentar, 0, 200) as meKommentar, inSemester, inSWS, ECTS
FROM
lv JOIN semesterplaneintrag on(__LV=_LV)
WHERE
semesterplaneintrag._lv not in(SELECT _lv FROM studienplaneintrag)
UNION
SELECT
__LV as _LV, SUBSTRING(chLVNr, 0, 200) as chLVNr, SUBSTRING(chBezeichnung, 0, 200) as chBezeichnung, _Studiengang, SUBSTRING(meKommentar, 0, 200) as meKommentar, 0 as inSemester, 0 as inSWS, 0 as ECTS
FROM
lv
WHERE
__LV not in(SELECT _lv FROM studienplaneintrag) AND
__LV not in(SELECT _lv FROM semesterplaneintrag)
";
if($result_ext = mssql_query($qry, $conn_ext))
{
@@ -78,7 +146,7 @@
//Lehrveranstaltung
//Schauen ob dieser Eintrag schon vorhanden ist
$qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE ext_id='$row_ext->__StudienplanEintrag'";
$qry = "SELECT lehrveranstaltung_id FROM sync.tbl_synclehrveranstaltung WHERE lv='$row_ext->_LV' AND insemester='$row_ext->inSemester'";
if($result = pg_query($conn, $qry))
{
@@ -88,7 +156,7 @@
$lehrveranstaltung_id=$row->lehrveranstaltung_id;
else
{
$text.='Fehler beim Auslesen der Lehrveranstaltung_id bei ext_id '.$row_ext->__StudienplanEintrag."\n";
$text.="Fehler beim Auslesen der Lehrveranstaltung_id fuer lv $row_ext->_LV insemester $row_ext->inSemester\n";
continue;
}
}
@@ -140,33 +208,33 @@
if($lv_obj->sprache!='German')
$updtext.=" Sprache wurde von $lv_obj->sprache auf German geaendert\n";
if($lv_obj->ects!=round($row_ext->ECTS,2))
$updtext.=" ECTS wurde von $lv_obj->ects auf ".round($row_ext->ects,2)." geaendert\n";
if($lv_obj->semesterstunden!=($row_ext->inSWS*ANZAHL_SEMESTERWOCHEN))
$updtext.=" ECTS wurde von $lv_obj->ects auf ".round($row_ext->ECTS,2)." geaendert\n";
if($lv_obj->semesterstunden!=((int)$row_ext->inSWS*ANZAHL_SEMESTERWOCHEN))
$updtext.=" Semesterstunden wurde von $lv_obj->semesterstunden auf ".($row_ext->inSWS*ANZAHL_SEMESTERWOCHEN)." geaendert\n";
if($lv_obj->anmerkung!=$row_ext->meKommentar)
$updtext.=" Anmerkung wurde von $lv_obj->anmerkung auf $row_ext->meKommentar geaendert\n";
$updtext.=" Anmerkung wurde von $lv_obj->anmerkung auf $row_ext->meKommentar geaendert\n";
if($lv_obj->lehre != true)
$updtext.=" lehre wurde von $lv_obj->lehre auf true geaendert\n";
$updtext.=" lehre wurde von $lv_obj->lehre auf true geaendert\n";
if($lv_obj->lehreverzeichnis != strtolower(cleankurzbz($row_ext->chLVNr)))
$updtext.=" Lehreverzeichnis wurde von $lv_obj->lehreverzeichnis auf ".strtolower(cleankurzbz($row_ext->chLVNr))." geaendert\n";
$updtext.=" Lehreverzeichnis wurde von $lv_obj->lehreverzeichnis auf ".strtolower(cleankurzbz($row_ext->chLVNr))." geaendert\n";
if($lv_obj->aktiv != true)
$updtext.=" aktiv wurde von $lv_obj->aktiv auf true geaendert\n";
$updtext.=" aktiv wurde von $lv_obj->aktiv auf true geaendert\n";
if($lv_obj->planfaktor != '')
$updtext.=" planfaktor wurde von $lv_obj->planfaktor auf '' geaendert\n";
$updtext.=" planfaktor wurde von $lv_obj->planfaktor auf '' geaendert\n";
if($lv_obj->planlektoren != '')
$updtext.=" planlektoren wurde von $lv_obj->planlektoren auf '' geaendert\n";
$updtext.=" planlektoren wurde von $lv_obj->planlektoren auf '' geaendert\n";
if($lv_obj->planpersonalkosten != '')
$updtext.=" lehre wurde von $lv_obj->planpersonalkosten auf '' geaendert\n";
if($lv_obj->ext_id != $row_ext->__StudienplanEintrag)
$updtext.=" ext_id wurde von $lv_obj->ext_id auf $row_ext->__StudienplanEintrag geaendert\n";
$updtext.=" lehre wurde von $lv_obj->planpersonalkosten auf '' geaendert\n";
//if($lv_obj->ext_id != $row_ext->__StudienplanEintrag)
// $updtext.=" ext_id wurde von $lv_obj->ext_id auf $row_ext->__StudienplanEintrag geaendert\n";
if($lv_obj->sort != '')
$updtext.=" sort wurde von $sort auf '' geaendert\n";
$updtext.=" sort wurde von $sort auf '' geaendert\n";
if($lv_obj->zeugnis != true)
$updtext.=" zeugnis wurde von $lv_obj->zeugnis auf true geaendert\n";
//if($lv_obj->koordinator != '')
// $updtext.=" koordinator wurde von $lv_obj->koordinator auf '' geaendert\n";
$updtext.=" zeugnis wurde von $lv_obj->zeugnis auf true geaendert\n";
if($lv_obj->koordinator != '')
$updtext.=" koordinator wurde von $lv_obj->koordinator auf '' geaendert\n";
if($lv_obj->projektarbeit != false)
$updtext.=" projektarbeit wurde von $lv_obj->projektarbeit auf false geaendert\n";
$updtext.=" projektarbeit wurde von $lv_obj->projektarbeit auf false geaendert\n";
}
$lv_obj->kurzbz = cleankurzbz($row_ext->chLVNr);
$lv_obj->bezeichnung = $row_ext->chBezeichnung;
@@ -174,7 +242,7 @@
$lv_obj->semester = $row_ext->inSemester;
$lv_obj->sprache = 'German';
$lv_obj->ects = $row_ext->ECTS;
$lv_obj->semesterstunden = $row_ext->inSWS*ANZAHL_SEMESTERWOCHEN;
$lv_obj->semesterstunden = (int) $row_ext->inSWS*ANZAHL_SEMESTERWOCHEN;
$lv_obj->anmerkung = $row_ext->meKommentar;
$lv_obj->lehre = true;
$lv_obj->lehreverzeichnis = strtolower(cleankurzbz($row_ext->chLVNr));
@@ -182,7 +250,7 @@
$lv_obj->planfaktor = '';
$lv_obj->planlektoren = '';
$lv_obj->planpersonalkosten = '';
$lv_obj->ext_id = $row_ext->__StudienplanEintrag;
$lv_obj->ext_id = '';
$lv_obj->sort = '';
$lv_obj->zeugnis = true;
$lv_obj->koordinator = '';
@@ -195,6 +263,7 @@
if($lv_obj->new)
{
$text.= "Lehrveranstaltung $lv_obj->bezeichnung/$lv_obj->semester wurde neu angelegt\n";
synctabentry_lv($lv_obj->semester, $row_ext->_LV, $lv_obj->lehrveranstaltung_id);
$anz_insert++;
}
else
@@ -205,7 +274,7 @@
}
else
{
$text.= "Fehler beim Speichern von $lv_obj->bezeichnung/$lv_obj->semester/$lv_obj->lehrveranstaltung_id:".$lv_obj->errormsg;
$text.= "Fehler beim Speichern von $lv_obj->bezeichnung/$lv_obj->semester/$lv_obj->lehrveranstaltung_id:".$lv_obj->errormsg.' '.pg_last_error($conn);
if($lv_obj->new)
$insert_error++;
else
@@ -216,7 +285,7 @@
// *********** Lehrfach **************
//Schauen ob dieser Eintrag schon vorhanden ist
$qry = "SELECT lehrfach_id FROM lehre.tbl_lehrfach WHERE ext_id='$row_ext->__StudienplanEintrag'";
$qry = "SELECT lehrfach_id FROM sync.tbl_synclehrfach WHERE lv='$row_ext->_LV' AND insemester='$row_ext->inSemester'";
if($result = pg_query($conn, $qry))
{
@@ -226,7 +295,7 @@
$lehrfach_id=$row->lehrfach_id;
else
{
$text.='Fehler beim Auslesen der Lehrfach_id bei ext_id '.$row_ext->__StudienplanEintrag."\n";
$text.="Fehler beim Auslesen der Lehrfach_id bei lv $row_ext->_LV semester $row_ext->inSemester\n";
continue;
}
}
@@ -273,20 +342,18 @@
$updtext.=" Semester wurde von $lv_obj->semester auf $row_ext->inSemester geaendert\n";
if($lf_obj->sprache!='German')
$updtext.=" Sprache wurde von $lf_obj->sprache auf German geaendert\n";
if($lv_obj->ects!=round($row_ext->ECTS,2))
$updtext.=" ECTS wurde von $lv_obj->ects auf ".round($row_ext->ects,2)." geaendert\n";
if($lf_obj->fachbereich_kurzbz!='Dummy')
$updtext.=" Fachbereich_kurzbz wurde von $lf_obj->fachbereich_kurzbz auf 'Dummy' geaendert\n";
if($lf_obj->kurzbz != cleankurzbz($row_ext->chLVNr))
$updtext.=" Kurzbz wurde von $lf_obj->kurzbz auf ".cleankurzbz($row_ext->chLVNr)." geaendert\n";
$updtext.=" Kurzbz wurde von $lf_obj->kurzbz auf ".cleankurzbz($row_ext->chLVNr)." geaendert\n";
if($lf_obj->bezeichnung!=$row_ext->chBezeichnung)
$updtext.=" Bezeichnung wurde von $lf_obj->bezeichnung auf $row_ext->chBezeichnung geaendert\n";
if($lf_obj->farbe != '')
$updtext.=" farbe wurde von $lf_obj->farbe auf '' geaendert\n";
$updtext.=" farbe wurde von $lf_obj->farbe auf '' geaendert\n";
if($lf_obj->aktiv != true)
$updtext.=" aktiv wurde von $lf_obj->aktiv auf true geaendert\n";
if($lf_obj->ext_id != $row_ext->__StudienplanEintrag)
$updtext.=" ext_id wurde von $lf_obj->ext_id auf $row_ext->__StudienplanEintrag geaendert\n";
$updtext.=" aktiv wurde von $lf_obj->aktiv auf true geaendert\n";
//if($lf_obj->ext_id != $row_ext->__StudienplanEintrag)
// $updtext.=" ext_id wurde von $lf_obj->ext_id auf $row_ext->__StudienplanEintrag geaendert\n";
}
$lf_obj->kurzbz = cleankurzbz($row_ext->chLVNr);
@@ -297,8 +364,8 @@
$lf_obj->aktiv = true;
$lf_obj->fachbereich_kurzbz = 'Dummy';
$lf_obj->farbe = '';
$lf_obj->ext_id = $row_ext->__StudienplanEintrag;
echo "<br>Ext_id LF: $lf_obj->ext_id";
$lf_obj->ext_id = '';
if($updtext!='' || $lf_obj->new)
{
if($lf_obj->save())
@@ -306,6 +373,7 @@
if($lf_obj->new)
{
$text.= "Lehrfach $lf_obj->bezeichnung/$lf_obj->semester wurde neu angelegt\n";
synctabentry_lf($lf_obj->semester, $row_ext->_LV, $lf_obj->lehrfach_id);
$anz_lf_insert++;
}
else
@@ -316,7 +384,7 @@
}
else
{
$text.= "Fehler beim Speichern von $lf_obj->bezeichnung/$lf_obj->semester/$lf_obj->lehrfach_id:".$lf_obj->errormsg;
$text.= "Fehler beim Speichern von $lf_obj->bezeichnung/$lf_obj->semester/$lf_obj->lehrfach_id:".$lf_obj->errormsg.' '.pg_last_error($conn);
if($lf_obj->new)
$insert_lf_error++;
else
@@ -326,6 +394,8 @@
}
}
else
$text.= "Fehler beim Laden der Lehrveranstaltungen\n\n";
$statistik .="LVs Import: $lvs_gesamt\n";
$statistik .="Neue LVs: $anz_insert\n";
@@ -337,7 +407,14 @@
$statistik .="Fehler beim Anlegen von LF: $insert_lf_error\n";
$statistik .="Fehler beim Aktualisieren von LF: $update_lf_error\n\n";
$text = $statistik.'<br><br>'.$text;
$text = $statistik."\n\n".$text;
$to = 'oesi@technikum-wien.at';
//$to = $adress_ext;
if(mail($to, 'SYNC Lehrveranstaltung',$head_text.$text, "From: vilesci@technikum-wien.at"))
echo "Mail wurde an $to versandt<br><br>";
else
echo "Fehler beim Senden an $to<br><br>";
echo nl2br($text);