mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 09:52:22 +00:00
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
include ('../../vilesci/config.inc.php');
|
||||
$adress='fas_sync@technikum-wien.at, baier@technikum-wien.at';
|
||||
mail($adress,"FAS Synchro mit VILESCI","BEGIN OF SYNCHRONISATION","From: vilesci@technikum-wien.at");
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
|
||||
// Anzahl der Studenten in VILESCI
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_student";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vilesci_anz_std=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Start Studenten Synchro
|
||||
$sql_query="SELECT DISTINCT uid FROM fas_view_vilesci_abbrecher WHERE uid IS NOT NULL AND uid NOT LIKE '' ORDER BY uid"; // LIMIT 5";
|
||||
//echo $sql_query."<br>";
|
||||
flush();
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der Ex-Studenten vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der Studenten in VILESCI: $vilesci_anz_std \r\r";
|
||||
echo $text.'<BR>';
|
||||
flush();
|
||||
$update_error=0;
|
||||
$anz_update=0;
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$uid=str_replace(' ','',$row->uid);
|
||||
// SQL vorbereiten (jeden Studenten vom FAS im vilesci suchen
|
||||
$sql_query="SELECT uid,titel,vornamen,nachname, semester FROM tbl_person NATURAL JOIN tbl_student WHERE uid LIKE '$uid'";
|
||||
//echo $sql_query;
|
||||
$res_std=pg_query($conn, $sql_query);
|
||||
$num_rows_std=pg_numrows($res_std);
|
||||
// neue Studenten
|
||||
if ($num_rows_std>=1)
|
||||
{
|
||||
$row_std=pg_fetch_object($res_std);
|
||||
if ($row_std->semester!=10)
|
||||
{
|
||||
$text.="Der Student $row_std->vornamen $row_std->nachname ($row_std->uid) wird verschoben.\r";
|
||||
$sql_query="UPDATE tbl_student SET semester=10, updateamum=now(), updatevon='auto' WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
}
|
||||
}
|
||||
}
|
||||
$text.="$update_error Fehler bei Student-Update!\r";
|
||||
$text.="$anz_update Studenten wurden ins 10te Semester verschoben.\r";
|
||||
$text.="\rEND OF SYNCHRONISATION\r";
|
||||
if (mail($adress,"FAS Synchro mit VILESCI (Ex-Studenten)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VILESCI (Ex-Studenten)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<LINK rel="stylesheet" href="../../include/styles.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo $text;
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
include ('../../vilesci/config.inc.php');
|
||||
|
||||
function clean_string($string)
|
||||
{
|
||||
$trans = array("ä" => "ae",
|
||||
"ö" => "oe",
|
||||
"ü" => "ue",
|
||||
"Ä" => "ae",
|
||||
"Ö" => "oe",
|
||||
"Ü" => "ue",
|
||||
"á" => "a",
|
||||
"à" => "a",
|
||||
"é" => "e",
|
||||
"è" => "e",
|
||||
"ó" => "o",
|
||||
"ò" => "o",
|
||||
"í" => "i",
|
||||
"ì" => "i",
|
||||
"ú" => "u",
|
||||
"ù" => "u",
|
||||
"ß" => "ss",
|
||||
"´" => "",
|
||||
"`" => "",
|
||||
);
|
||||
$string = strtr($string, $trans);
|
||||
return $string;
|
||||
}
|
||||
|
||||
$adress='fas_sync@technikum-wien.at';
|
||||
//mail($adress,"FAS Synchro mit VILESCI (Lektoren)","BEGIN OF SYNCHRONISATION","From: vilesci@technikum-wien.at");
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
|
||||
// Anzahl der Mitarbeiter in VILESCI
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_mitarbeiter WHERE uid NOT LIKE '\\\\_%'";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vil_anz_mta=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Start Studenten Synchro
|
||||
$sql_query="SELECT * FROM vw_vilesci_mitarbeiter_aktiv WHERE uid IS NOT NULL AND uid NOT LIKE ''"; // LIMIT 5";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der Mitarbeiter vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der Mitarbeiter in der VILESCI: $vil_anz_mta \r\r";
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$row->gebort=substr($row->gebort,0,30);
|
||||
//$row->titel=substr($row->titel,0,15);
|
||||
$uid=str_replace(' ','',$row->uid);
|
||||
// Plausibilitaetscheck
|
||||
if (strlen($row->titel)>64)
|
||||
$text.="Der Mitarbeiter $row->titel $row->vornamen $row->nachname ($row->uid) hat einen zu langen Titel.\r";
|
||||
if (strlen($row->titel)<=64)
|
||||
{
|
||||
// SQL vorbereiten (jeden Mitarbeiter vom FAS in VILESCI suchen
|
||||
$sql_query="SELECT uid,titel,vornamen,nachname,gebdatum,gebort,";
|
||||
$sql_query.="personalnummer";
|
||||
$sql_query.=" FROM tbl_person NATURAL JOIN tbl_mitarbeiter WHERE uid LIKE '$uid'";
|
||||
//echo $sql_query;
|
||||
$res_std=pg_exec($conn, $sql_query);
|
||||
$num_rows_std=pg_numrows($res_std);
|
||||
|
||||
// neue Lektoren
|
||||
if ($num_rows_std==0)
|
||||
{
|
||||
$text.="Der Lektor $row->vornamen $row->nachname ($row->uid) wird neu angelegt.\r";
|
||||
// person
|
||||
$qry="INSERT INTO tbl_person(uid,titel,vornamen, nachname, gebdatum, gebort) ".
|
||||
"VALUES('$uid','$row->titel','$row->vornamen','$row->nachname','$row->gebdatum','$row->gebort')";
|
||||
echo $qry.'<BR>';
|
||||
if(!$res_insert=pg_exec($conn, $qry))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
|
||||
//Alias erstellen
|
||||
$vn = split('[- .,]',strtolower($row->vornamen));
|
||||
$vn = clean_string($vn[0]);
|
||||
|
||||
$nn = split('[- .,]',strtolower($row->nachname));
|
||||
$nn = clean_string($nn[0]);
|
||||
$alias = $vn.".".$nn;
|
||||
$qry = "UPDATE tbl_person set alias='$alias' where uid='$uid'";
|
||||
if(!$res_insert=pg_exec($conn, $qry))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: Alias existiert bereits: $alias";
|
||||
$insert_error++;
|
||||
}
|
||||
// lektor
|
||||
$sql_query="INSERT INTO tbl_mitarbeiter (uid,personalnummer,kurzbz,lektor,telefonklappe,fixangestellt) ".
|
||||
"VALUES('$row->uid','$row->persnr','$row->kurzbez',true,'$row->teltw',".($row->fixangestellt?'true':'false').")";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_insert=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
else
|
||||
$anz_insert++;
|
||||
}
|
||||
// bestehende Lektoren
|
||||
elseif ($num_rows_std==1)
|
||||
{
|
||||
$update=0;
|
||||
$row_std=pg_fetch_object($res_std,0);
|
||||
if ($row->gruppe==NULL)
|
||||
$row->gruppe=1;
|
||||
if ($row->titel!=$row_std->titel)
|
||||
$update=1;
|
||||
elseif ($row->vornamen!=$row_std->vornamen)
|
||||
$update=2;
|
||||
elseif ($row->nachname!=$row_std->nachname)
|
||||
$update=3;
|
||||
elseif ($row->gebdatum!=$row_std->gebdatum)
|
||||
$update=4;
|
||||
elseif ($row->gebort!=$row_std->gebort)
|
||||
$update=5;
|
||||
elseif ($row->persnr!=$row_std->personalnummer)
|
||||
$update=6;
|
||||
if ($update)
|
||||
{
|
||||
$text.="Der Lektor $row->vornamen $row->nachname ($row->uid) [$update] wird upgedatet.\r";
|
||||
// person
|
||||
$sql_query="UPDATE tbl_person SET titel='$row->titel', vornamen='$row->vornamen', ".
|
||||
" nachname='$row->nachname', gebdatum='$row->gebdatum', gebort='$row->gebort'".
|
||||
" WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
|
||||
$sql_query="UPDATE tbl_mitarbeiter SET personalnummer='$row->persnr',fixangestellt=".($row->fixangestellt?'TRUE':'FALSE');
|
||||
$sql_query.=" WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>'; // kurzbz='$row->kurzbez',
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
}
|
||||
}
|
||||
// Lektor kommt mehrmals vor ->Warnung
|
||||
elseif ($num_rows_std>1)
|
||||
{
|
||||
$text.="\r!!! Der Lektor $row->vornamen $row->nachname ($row->uid) kommt mehrfach vor!\r";
|
||||
$double_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
$plausi_error++;
|
||||
}
|
||||
$text.="\r$plausi_error Fehler beim Plausibilitaetscheck!\r";
|
||||
$text.="$update_error Fehler bei Lektor-Update!\r";
|
||||
$text.="$insert_error Fehler bei Lektor-Insert!\r";
|
||||
$text.="$double_error Lektoren kommen in VileSci doppelt vor!\r\r";
|
||||
$text.="$anz_update Lektoren wurden upgedatet.\r";
|
||||
$text.="$anz_insert Lektoren wurden neu angelegt.\r\r";
|
||||
$text.="\rEND OF SYNCHRONISATION\r";
|
||||
if (mail($adress,"FAS Synchro mit VileSci (Lektoren)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci (Lektoren)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo $text;
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/***************************************************************
|
||||
Script zur Feststellung, welche Daten im FAS nicht durchkommen.
|
||||
***************************************************************/
|
||||
$adress='pam@technikum-wien.at';
|
||||
include('../../vilesci/config.inc.php');
|
||||
$conn=pg_connect($conn_string);
|
||||
$conn_fas=pg_connect($conn_string_fas);
|
||||
|
||||
$headers ="MIME-Version: 1.0\r\n";
|
||||
$headers.="Content-type: text/html; charset=iso-8859-1\r\n";
|
||||
$headers.="From: vilesci@technikum-wien.at";
|
||||
|
||||
$bgcolor[0]="#CCCCCC";
|
||||
$bgcolor[1]="#DDDDDD";
|
||||
|
||||
$text='<html><head><title>FAS-Synchro mit TEMPUS fehlende Lektoren</title></head>';
|
||||
$text.='<body>';
|
||||
|
||||
// Start Check
|
||||
//Daten aus vilesci holen
|
||||
$sql_query="SELECT tbl_person.*,tbl_mitarbeiter.personalnummer,tbl_mitarbeiter.kurzbz,tbl_mitarbeiter.fixangestellt FROM tbl_person join tbl_mitarbeiter using(uid) WHERE uid NOT LIKE '\\\\_%' ORDER BY nachname";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
// Daten aus dem FAS
|
||||
$sql_query="SELECT * FROM fas_view_lektoren_vilesci";
|
||||
//echo $sql_query."<br>";
|
||||
$result_fas=pg_exec($conn_fas, $sql_query);
|
||||
$fehlend=$num_rows-$num_rows_fas;
|
||||
$num_rows_fas=pg_numrows($result_fas);
|
||||
$text.="Dies ist eine automatische eMail!<BR><BR>";
|
||||
$text.="Es wurde eine Ueberpruefung der Daten in der FAS-View fuer Lektoren durchgeführt.<BR>";
|
||||
$text.='Anzahl der fehlenden Daten: $fehlend <BR><BR>';
|
||||
$text.="Folgende Lektoren scheinen in der FAS-View nicht auf";
|
||||
$text.='<TABLE border="0"><TR bgcolor="#D3DCE3"><TH>uid</TH><TH>Titel</TH><TH>Vornamen</TH><TH>Nachname</TH></TR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$sql_query="SELECT uid FROM fas_view_lektoren_vilesci WHERE uid LIKE '$row->uid'";
|
||||
$result_fas=pg_exec($conn_fas, $sql_query);
|
||||
if (pg_numrows($result_fas)!=1)
|
||||
$text.='<TR bgcolor="'.$bgcolor[$i%2].'"'."><TD>$row->uid</TD><TD>$row->titel</TD><TD>$row->vornamen</TD><TD>$row->nachname</TD></TR>";
|
||||
}
|
||||
$text.='</TABLE></BODY></HTML>';
|
||||
|
||||
echo $text;
|
||||
|
||||
if (mail($adress,"FAS Synchro mit TEMPUS fehlende Lektoren",$text,$headers))
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
|
||||
?>
|
||||
|
||||
|
||||
@@ -0,0 +1,594 @@
|
||||
<?php
|
||||
include('../../vilesci/config.inc.php');
|
||||
include('../../include/functions.inc.php');
|
||||
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';
|
||||
|
||||
|
||||
// error log für jeden Studiengang
|
||||
$error_log=array();
|
||||
$missing_lehrfaecher=array();
|
||||
$missing_einheit=array();
|
||||
$missing_raumtyp=array();
|
||||
$missing_lehrform=array();
|
||||
|
||||
function printLVA($row)
|
||||
{
|
||||
return 'lvnr='.$row->lvnr.' '.$row->bezeichnung;
|
||||
}
|
||||
|
||||
function getSemesterWhereClause()
|
||||
{
|
||||
global $conn;
|
||||
$qry="select * from tbl_studiensemester where ende>now()";
|
||||
$result=pg_exec($conn, $qry);
|
||||
$where='';
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$where.= ((strlen($where)>0)?' or ':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."' ";
|
||||
}
|
||||
if (strlen($where)>0) $where=" ($where) ";
|
||||
return $where;
|
||||
}
|
||||
|
||||
function validate($row)
|
||||
{
|
||||
global $error_log,$einheit,$missing_einheit,$missing_raumtyp,$missing_lehrform,$raumtyp,$lehrform;
|
||||
$valid=true;
|
||||
if ($row->raumtyp==null)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Raumtyp fehlt';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->semester>8 || $row->semester<1)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semester bei '.$row->semester.$row->verband.$row->gruppe.' größer als 8';
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->verband==null || $row->verband=='' || $row->verband=='A' || $row->verband=='B' || $row->verband=='C' || $row->verband=='D'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Verband bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (A bis D)';
|
||||
//print_r($row);
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->gruppe==null || $row->gruppe=='' || $row->gruppe=='1' || $row->gruppe=='2' || $row->gruppe=='3' || $row->gruppe=='4'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Gruppe bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (1 bis 4)';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->stundenblockung>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Stundenblockung ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->semesterstunden>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semesterstunden sind nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->wochenrythmus>0)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Wochenrythmus ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->start_kw<=0 || $row->start_kw>53)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Start-KW außerhalb des gültigen Bereichs (1 bis 53)';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->einheit_kurzbz)>0 && !isset($einheit[$row->einheit_kurzbz]) && !isset($missing_einheit[$row->einheit_kurzbz]))
|
||||
{
|
||||
$missing_einheit[$row->einheit_kurzbz]=1;
|
||||
}
|
||||
if (strlen($row->raumtyp)>0 && !isset($raumtyp[$row->raumtyp]) && !isset($missing_raumtyp[$row->raumtyp]))
|
||||
{
|
||||
$missing_raumtyp[$row->raumtyp]=1;
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->raumtypalternativ)>0 && !isset($raumtyp[$row->raumtypalternativ]) && !isset($missing_raumtyp[$row->raumtypalternativ])) {
|
||||
$missing_raumtyp[$row->raumtypalternativ]=1;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtyp))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtyp.': Raumtyp bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtypalternativ))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtypalternativ.': Raumtypalternative bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->lehrform)>0 && !isset($lehrform[$row->lehrform]) && !isset($missing_lehrform[$row->lehrform])) {
|
||||
$missing_lehrform[$row->lehrform]=1;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,5}[0-9]{0,1}$",$row->lehrfach_kurzbz))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrfach-Kuerzel bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,3}$",$row->lehrform))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrform bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
return $valid;
|
||||
}
|
||||
|
||||
/**
|
||||
* FAS-Lehrfach auf interne Lehrfach-Nr übersetzen
|
||||
*/
|
||||
function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, $fachbereich_id, $ects, $conn)
|
||||
{
|
||||
global $lehrfach;
|
||||
global $text;
|
||||
|
||||
if (isset($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']))
|
||||
{
|
||||
//echo 'Nummer:'.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'].'Bez: '.$lehrfach_bezeichnung.'<BR>';
|
||||
|
||||
// Nebenbei die Lehrfachbezeichnung kontrollieren
|
||||
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'];
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!<BR>';
|
||||
$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.'<BR>';
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo ' Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!<BR>';
|
||||
$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!<BR>';
|
||||
$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'];
|
||||
if (!$result=@pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']=$fachbereich_id;
|
||||
}
|
||||
}
|
||||
return $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
}
|
||||
//echo 'missing getLehrfachNr: '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.'<br>';
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/*************************
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
|
||||
// E-Mails der Studiengänge
|
||||
$stg_mail=array();
|
||||
$qry="select studiengang_kz,email,kurzbz from tbl_studiengang";
|
||||
$result=pg_exec($conn, $qry);
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$stg_mail[$row->studiengang_kz] = $row->email;
|
||||
$stg_kurzbz[$row->studiengang_kz]=$row->kurzbz;
|
||||
}
|
||||
|
||||
// Anzahl der LVA in VileSci
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_lehrveranstaltung";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vil_anz_lva=pg_fetch_result($result,0,'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);
|
||||
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]['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;
|
||||
}
|
||||
//print_r($lehrfach);
|
||||
// Einheiten holen
|
||||
$sql_query="SELECT einheit_kurzbz,bezeichnung FROM tbl_einheit";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$einheit[$row->einheit_kurzbz] = $row->bezeichnung;
|
||||
// Raumtypen holen
|
||||
$sql_query="SELECT raumtyp_kurzbz,beschreibung FROM tbl_raumtyp";
|
||||
$result=pg_exec($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);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$lehrform[$row->lehrform_kurzbz] = $row->bezeichnung;
|
||||
//print_r($lehrfach);
|
||||
echo 'FAS-Datenbank wird abgefragt!<BR><i>';
|
||||
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,
|
||||
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."</i><br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($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";
|
||||
$text.="Anzahl der LVA in der VileSci: $vil_anz_lva \r\r";
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
echo $num_rows.' Datensaetze<BR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
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);
|
||||
// Einheit vollstaendiger Name
|
||||
if (count($row->einheit_kurzbz)>0)
|
||||
$row->einheit_kurzbz=$stg_kurzbz[$row->studiengang_kz].'-'.$row->einheit_kurzbz;
|
||||
|
||||
// Plausibilitaetscheck
|
||||
//if ($row->gruppe==NULL)
|
||||
// $row->gruppe='1';
|
||||
|
||||
//
|
||||
if (!$row->stundenblockung>0)
|
||||
$row->stundenblockung=1;
|
||||
if (!$row->start_kw>0)
|
||||
$row->start_kw=1;
|
||||
if (!$row->wochenrythmus>0)
|
||||
$row->wochenrythmus=1;
|
||||
|
||||
if ($row->lehrfach_nr==-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 (validate($row) && $row->lehrfach_nr>-1)
|
||||
{
|
||||
// SQL vorbereiten (jede LVA vom FAS im VileSci suchen)
|
||||
$sql_query="SELECT * from tbl_lehrveranstaltung where fas_id=".$row->fas_id;
|
||||
//echo $sql_query;
|
||||
$res_lva=pg_query($conn, $sql_query);
|
||||
$num_rows_lva=pg_numrows($res_lva);
|
||||
|
||||
// neue LVA
|
||||
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.'<BR>';
|
||||
if(!$res_insert=@pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\nFehler: ".pg_errormessage($conn)."\n";
|
||||
$insert_error++;
|
||||
}
|
||||
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.'-<BR>';
|
||||
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.'<BR>';
|
||||
if(!$res_update=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
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.'<BR>';
|
||||
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 '<BR>STPL-ID:'.$row_upd_stpl->stundenplandev_id.'<BR>';
|
||||
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."<BR>";
|
||||
}
|
||||
}
|
||||
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++;
|
||||
}
|
||||
}
|
||||
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)";
|
||||
echo $sql_query.'<BR>';
|
||||
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";
|
||||
}
|
||||
else
|
||||
{
|
||||
$anz_delete=pg_numrows($res_delete);
|
||||
}
|
||||
|
||||
//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.="\nEND OF SYNCHRONISATION\n";
|
||||
|
||||
// Validation error hinzufügen
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
$text.="\n\nStudiengang $k:\n";
|
||||
foreach($v as $txt)
|
||||
$text.=" $txt\n";
|
||||
}
|
||||
// fehlende lehrfächer
|
||||
$text.="\n\nFehlende Lehrfächer: \n";
|
||||
while(list($k,$v)=each($missing_lehrfaecher))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende einheiten
|
||||
$text.="\n\nFehlende Einheiten: \n";
|
||||
while(list($k,$v)=each($missing_einheit))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende raumtypen
|
||||
$text.="\n\nFehlende Raumtypen: \n";
|
||||
while(list($k,$v)=each($missing_raumtyp))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende lehrformen
|
||||
$text.="\n\nFehlende Lehrformen: \n";
|
||||
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
|
||||
$sendmail=false;
|
||||
|
||||
//print "debug: ";print_r($stg_mail);
|
||||
|
||||
// Einzelnen Mails an Studiengänge verschicken
|
||||
reset($error_log);
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
echo "<br>Mail an Studiengang $k ".$stg_mail[$k].":<br>";
|
||||
$stg_text="Dies ist eine automatische Mail!\nFolgende Fehler sind bei der Synchronisation der Lehrveranstaltungen aufgetreten:\n\n";
|
||||
foreach($v as $txt)
|
||||
$stg_text.="$txt\n";
|
||||
echo $stg_text.'<br>';
|
||||
// Studiengang
|
||||
if (!mail($stg_mail[$k],"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo "Mail an '".$stg_mail[$k]."' konnte nicht verschickt werden!<br>";
|
||||
// Stundenplanstelle
|
||||
echo "<br>Mail an Studiengang $k ($adress_stpl)<br>";
|
||||
if (!mail($adress_stpl,"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo 'Mail an "'.$adress_stpl.'" konnte nicht verschickt werden!<br>';
|
||||
|
||||
}
|
||||
|
||||
// Doppelte IDs im FAS prüfen
|
||||
$sql_query="SELECT count(*) AS anzahl, fas_id FROM fas_view_alle_lehreinheiten_vilesci
|
||||
GROUP BY fas_id HAVING count(*)>1";
|
||||
//echo $sql_query."</i><br>";
|
||||
$result=pg_query($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$mail_text="Folgende $num_rows IDs kommen in der View fas_view_alle_lehreinheiten_vilesci (fas_id) mehrfach vor:\n\n";
|
||||
$mail_text_false='';
|
||||
if ($num_rows>0)
|
||||
while ($row=pg_fetch_object($result))
|
||||
$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"))
|
||||
echo "Mail an '".$adress_fas."' konnte nicht verschickt werden!<br>";
|
||||
else
|
||||
echo 'Mail wurde verschickt an '.$adress_fas.'!<br>';
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo nl2br($text);
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,233 @@
|
||||
<?php
|
||||
/**
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
|
||||
include ('../../vilesci/config.inc.php');
|
||||
$adress='fas_sync@technikum-wien.at';
|
||||
|
||||
function clean_string($string)
|
||||
{
|
||||
$trans = array("ä" => "ae",
|
||||
"ö" => "oe",
|
||||
"ü" => "ue",
|
||||
"Ä" => "ae",
|
||||
"Ö" => "oe",
|
||||
"Ü" => "ue",
|
||||
"á" => "a",
|
||||
"à" => "a",
|
||||
"é" => "e",
|
||||
"è" => "e",
|
||||
"ó" => "o",
|
||||
"ò" => "o",
|
||||
"í" => "i",
|
||||
"ì" => "i",
|
||||
"ú" => "u",
|
||||
"ù" => "u",
|
||||
"ß" => "ss",
|
||||
"´" => "",
|
||||
"`" => "",
|
||||
);
|
||||
$string = strtr($string, $trans);
|
||||
return $string;
|
||||
}
|
||||
|
||||
//mail($adress,"FAS Synchro mit VileSci (Studenten)","BEGIN OF SYNCHRONISATION","From: vilesci@technikum-wien.at");
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
|
||||
// Anzahl der Studenten in VileSci
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_student";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vilesci_anz_std=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Start Studenten Synchro
|
||||
$sql_query="SELECT DISTINCT * FROM fas_view_student_vilesci WHERE semester >0 AND semester <9 AND";
|
||||
$sql_query.=" verband IS NOT NULL AND uid IS NOT NULL AND uid NOT LIKE ''"; // LIMIT 5";
|
||||
echo $sql_query."<br>";
|
||||
flush();
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der Studenten vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der Studenten in VileSci: $vilesci_anz_std \r\r";
|
||||
echo $text.'<BR>';
|
||||
flush();
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$row->gebort=substr($row->gebort,0,30);
|
||||
$row->titel=substr($row->titel,0,15);
|
||||
$uid=str_replace(' ','',$row->uid);
|
||||
// Plausibilitaetscheck
|
||||
if ($row->gruppe==null)
|
||||
$row->gruppe='1';
|
||||
if ($row->verband>='A' && $row->verband<='D' && $row->semester<=8 && $row->gruppe>'0' && $row->gruppe<='2')
|
||||
{
|
||||
// SQL vorbereiten (jeden Studenten vom FAS im VileSci suchen
|
||||
$sql_query="SELECT uid,titel,vornamen,nachname,gebdatum,gebort,";
|
||||
$sql_query.="trim(both ' ' from matrikelnr) AS matrikelnr,";
|
||||
$sql_query.=" studiengang_kz,semester,verband,gruppe";
|
||||
$sql_query.=" FROM tbl_person NATURAL JOIN tbl_student WHERE uid LIKE '$uid'";
|
||||
// echo $sql_query;
|
||||
$res_std=pg_exec($conn, $sql_query);
|
||||
$num_rows_std=pg_numrows($res_std);
|
||||
|
||||
// neue Studenten
|
||||
if ($num_rows_std==0)
|
||||
{
|
||||
$text.="Der Student $row->vornamen $row->nachname ($row->uid) wird neu angelegt.\r";
|
||||
// tbl_person
|
||||
$sql_query="INSERT INTO tbl_person(uid,titel,vornamen, nachname, gebdatum, gebort) ".
|
||||
"VALUES('$row->uid','$row->titel','$row->vornamen','$row->nachname','$row->gebdatum','$row->gebort')";
|
||||
echo $sql_query.'<BR>';
|
||||
flush();
|
||||
|
||||
//Alias erstellen
|
||||
$vn = split('[- .,]',strtolower($row->vornamen));
|
||||
$vn = clean_string($vn[0]);
|
||||
|
||||
$nn = split('[- .,]',strtolower($row->nachname));
|
||||
$nn = clean_string($nn[0]);
|
||||
$alias = $vn.".".$nn;
|
||||
$qry = "UPDATE tbl_person set alias='$alias' where uid='$row->uid'";
|
||||
if(!$res_insert=pg_exec($conn, $qry))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: Alias existiert bereits: $alias";
|
||||
$insert_error++;
|
||||
}
|
||||
|
||||
// tbl_student
|
||||
if(!$res_insert=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
$sql_query="INSERT INTO tbl_student (uid,matrikelnr, studiengang_kz, semester, verband, gruppe) ".
|
||||
"VALUES('$row->uid','$row->perskz',$row->kennzahl,$row->semester,'$row->verband','$row->gruppe')";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_insert=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
else
|
||||
$anz_insert++;
|
||||
}
|
||||
// bestehende Studenten
|
||||
elseif ($num_rows_std==1)
|
||||
{
|
||||
$update=0;
|
||||
$row_std=pg_fetch_object($res_std,0);
|
||||
if ($row->gruppe==NULL)
|
||||
$row->gruppe=1;
|
||||
if ($row->titel!=$row_std->titel)
|
||||
$update=1;
|
||||
elseif ($row->vornamen!=$row_std->vornamen)
|
||||
$update=2;
|
||||
elseif ($row->nachname!=$row_std->nachname)
|
||||
$update=3;
|
||||
elseif ($row->gebdatum!=$row_std->gebdatum)
|
||||
$update=4;
|
||||
elseif ($row->gebort!=$row_std->gebort)
|
||||
$update=5;
|
||||
elseif ($row->perskz!=$row_std->matrikelnr)
|
||||
$update=6;
|
||||
elseif ($row->semester!=$row_std->semester)
|
||||
$update=7;
|
||||
elseif ($row->verband!=$row_std->verband)
|
||||
$update=8;
|
||||
elseif ($row->gruppe!=$row_std->gruppe)
|
||||
$update=9;
|
||||
elseif ($row->kennzahl!=$row_std->studiengang_kz)
|
||||
$update=10;
|
||||
if ($update)
|
||||
{
|
||||
$text.="Der Student $row->vornamen $row->nachname ($row->uid) wird upgedatet.\r";
|
||||
// person
|
||||
$sql_query="UPDATE tbl_person SET titel='$row->titel', vornamen='$row->vornamen', ".
|
||||
" nachname='$row->nachname', gebdatum='$row->gebdatum', gebort='$row->gebort'".
|
||||
" WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
// student
|
||||
$sql_query="UPDATE tbl_student SET matrikelnr='$row->perskz', semester=$row->semester";
|
||||
if ($row->verband==NULL)
|
||||
$sql_query.=", verband=NULL";
|
||||
else
|
||||
$sql_query.=", verband='$row->verband'";
|
||||
if ($row->gruppe==NULL)
|
||||
$sql_query.=", gruppe=NULL";
|
||||
else
|
||||
$sql_query.=", gruppe='$row->gruppe'";
|
||||
$sql_query.=", studiengang_kz=".$row->kennzahl;
|
||||
$sql_query.=", updateamum=now(), updatevon='auto' WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
}
|
||||
}
|
||||
// Student kommt mehrmals vor ->Warnung
|
||||
elseif ($num_rows_std>1)
|
||||
{
|
||||
$text.="\r!!! Der Student $row->vornamen $row->nachname ($row->uid) kommt mehrfach vor!\r";
|
||||
$double_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$plausi_error++;
|
||||
$text.="\r!!! Der Student $row->vornamen $row->nachname ($row->uid) STG:$row->kennzahl S:$row->semester V:$row->verband G:$row->gruppe hat nicht plausible Daten!";
|
||||
}
|
||||
}
|
||||
$text.="\r$plausi_error Fehler beim Plausibilitaetscheck!\r";
|
||||
$text.="$update_error Fehler bei Student-Update!\r";
|
||||
$text.="$insert_error Fehler bei Student-Insert!\r";
|
||||
$text.="$double_error Studenten kommen in VileSci doppelt vor!\r\r";
|
||||
$text.="$anz_update Studenten wurden upgedatet.\r";
|
||||
$text.="$anz_insert Studenten wurden neu angelegt.\r\r";
|
||||
$text.="\rEND OF SYNCHRONISATION\r";
|
||||
if (mail($adress,"FAS Synchro mit VileSci (Studenten)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci (Studenten)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo $text;
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/***************************************************************
|
||||
Script zur Feststellung, welche Daten im FAS nicht durchkommen.
|
||||
***************************************************************/
|
||||
$adress='pam@technikum-wien.at';
|
||||
include('../../vilesci/config.inc.php');
|
||||
$conn=pg_connect($conn_string);
|
||||
$conn_fas=pg_connect($conn_string_fas);
|
||||
|
||||
$headers ="MIME-Version: 1.0\r\n";
|
||||
$headers.="Content-type: text/html; charset=iso-8859-1\r\n";
|
||||
$headers.="From: vilesci@technikum-wien.at";
|
||||
|
||||
$bgcolor[0]="#CCCCCC";
|
||||
$bgcolor[1]="#DDDDDD";
|
||||
|
||||
$text='<html><head><title>FAS-Synchro mit TEMPUS fehlerhafte Studenten</title></head>';
|
||||
$text.='<body>';
|
||||
// Start Check
|
||||
$sql_query="SELECT * FROM fas_view_student_vilesci WHERE uid NOT IN ";
|
||||
$sql_query.="(SELECT uid FROM fas_view_student_vilesci WHERE semester >0 AND semester <8 AND";
|
||||
$sql_query.=" verband IS NOT NULL AND uid IS NOT NULL AND uid NOT LIKE '') ORDER BY kennzahl,nachname"; // LIMIT 5";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$num_fields=pg_numfields($result);
|
||||
$text.="Dies ist eine automatische eMail!<BR><BR>";
|
||||
$text.="Es wurde eine Ueberpruefung der Daten in der FAS-View fuer Studenten durchgeführt.<BR>";
|
||||
$text.="Anzahl der fehlerhaften Daten: $num_rows <BR><BR>";
|
||||
$text.="Folgende Studenten haben fehlerhafte Daten im FAS<BR><BR>";
|
||||
$text.='<TABLE border="0"><TR><TH>STG_KZ</TH><TH>uid</TH><TH>Titel</TH><TH>Vornamen</TH><TH>Nachname</TH><TH>Matrikelnr</TH>';
|
||||
$text.='<TH>Semester</TH><TH>Verband</TH><TH>Gruppe</TH></TR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$text.='<TR bgcolor="'.$bgcolor[$i%2].'"'."><TD>$row->kennzahl</TD><TD>$row->uid</TD><TD>$row->titel</TD><TD>$row->vornamen</TD><TD>$row->nachname</TD><TD>$row->perskz</TD>";
|
||||
$text.="<TD>$row->semester</TD><TD>$row->verband</TD><TD>$row->gruppe</TD></TR>";
|
||||
}
|
||||
$text.='</TABLE></BODY></HTML>';
|
||||
|
||||
echo $text;
|
||||
|
||||
if (mail($adress,"FAS Synchro mit TEMPUS fehlerhafte Studenten",$text,$headers))
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
include("../../vilesci/config.inc.php");
|
||||
|
||||
//Connection öffnen
|
||||
if(!$conn = pg_pconnect(CONN_STRING))
|
||||
die("Fehler beim oeffnen der DB Connection");
|
||||
|
||||
/**
|
||||
*Schaut nach ob dieser Feedbackeintrag bereits in der Datenbank existiert.
|
||||
* @param $datum Datum des Eintrages
|
||||
* $betreff Betreff des Eintrages
|
||||
* $text Text des Eintrages
|
||||
* $uid Uid des Eintrages
|
||||
*/
|
||||
function isInTab($datum,$betreff,$text,$uid)
|
||||
{
|
||||
$sql = "Select * from tbl_feedback where datum='$datum' AND betreff='$betreff' AND text='$text' and uid='$uid'";
|
||||
$checkresult=pg_exec($sql);
|
||||
if(pg_num_rows($checkresult)>0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * from lehre.tbl_feedback_lehrfach";
|
||||
$result = pg_exec($conn,$qry);
|
||||
|
||||
echo "Uebernahme von tbl_feedback_lehrfach";
|
||||
flush();
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_qry = "Select * from tbl_lehrfach where studiengang_kz =$row->studiengang_kz AND semester=$row->semester AND lehrevz=$lehrfachzuteilung_kurzbz";
|
||||
|
||||
$lf_result=pg_exec($conn,$sql_qry);
|
||||
if($lf_row=pg_fetch_object($conn,$qry))
|
||||
{
|
||||
if(!isInTab($row->datum,$row->betreff,$row->text,$row->uid))
|
||||
{
|
||||
$insert = "INSERT INTO tbl_feedback(datum,betreff,text,lfnr,uid) VALUES('$row->datum','$row->betreff','$row->text',$lf_row->lehrfach_nr,'$row->uid')";
|
||||
pg_exec($conn,$insert);
|
||||
echo "+";
|
||||
flush();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Lehrfachaufloesung nicht moeglich"; //Oder Formular ausgeben
|
||||
}
|
||||
}
|
||||
|
||||
$qry = "SELECT * from lehre.tbl_feedback_lehrfach";
|
||||
$result = pg_exec($conn,$qry);
|
||||
|
||||
echo "Uebernahme von tbl_feedback_freifach";
|
||||
flush();
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_qry = "Select * from tbl_lehrfach where lehrevz=$lehrfachzuteilung_kurzbz AND studiengang_kz=0 AND semester is null";
|
||||
|
||||
$lf_result=pg_exec($conn,$sql_qry);
|
||||
if($lf_row=pg_fetch_object($conn,$qry))
|
||||
{
|
||||
$insert = "INSERT INTO tbl_feedback(datum,betreff,text,lfnr,uid) VALUES('$row->datum','$row->betreff','$row->text',$lf_row->lehrfach_nr,'$row->uid')";
|
||||
pg_exec($conn,$insert);
|
||||
echo "+";
|
||||
flush();
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Lehrfachaufloesung nicht moeglich"; //Oder Formular ausgeben
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,406 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title>Stundenplan-Synchro (stpldev-stpl)</title>
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
include('../../vilesci/config.inc.php');
|
||||
include('../../include/functions.inc.php');
|
||||
include('../../include/lehrstunde.class.php');
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
|
||||
// Startvariablen setzen
|
||||
$adress='pam@technikum-wien.at';
|
||||
$adress_stpl='stpl@technikum-wien.at';
|
||||
if (isset($_GET['sendmail']))
|
||||
{
|
||||
if ($_GET['sendmail']=='true')
|
||||
$sendmail=(boolean)true;
|
||||
else
|
||||
$sendmail=(boolean)false;
|
||||
}
|
||||
else
|
||||
$sendmail=(boolean)true;
|
||||
|
||||
$count_del=0;
|
||||
$count_ins=0;
|
||||
$count_upd=0;
|
||||
$count_err=0;
|
||||
|
||||
// error log fuer jeden Studiengang
|
||||
$error_log=array();
|
||||
// Mails an die Lektoren und Verbaende
|
||||
$message=array();
|
||||
// Nachrichten fuer die Stundenplanstelle
|
||||
$message_stpl='';
|
||||
// error_log
|
||||
$message_sync='';
|
||||
|
||||
|
||||
// Mail Headers festlegen
|
||||
$headers= "MIME-Version: 1.0\r\n";
|
||||
$headers.="Content-Type: text/html; charset=iso-8859-1\r\n";
|
||||
|
||||
// Anfangsdatum festlegen
|
||||
$datum_begin=date("Y-m-d");
|
||||
// Endedatum festlegen
|
||||
$sql_query="SELECT * FROM tbl_studiensemester WHERE ende>=now() ORDER BY start;";
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($row=pg_fetch_object($result))
|
||||
$datum_ende=$row->ende;
|
||||
else
|
||||
$message_sync.='Kein aktuelles Studiensemester gefunden! '.$sql_query.'<BR>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
$message_begin='Dies ist eine automatische Mail!<BR>Es haben sich folgende Aenderungen in Ihrem Stundenplan ergeben:<BR>';
|
||||
|
||||
|
||||
/**************************************************
|
||||
* Datensaetze holen die neu sind
|
||||
*/
|
||||
echo 'Neue Datensätze werden angelegt.<BR>';flush();
|
||||
$sql_query="SELECT * FROM vw_stundenplandev WHERE datum>='$datum_begin' AND datum<='$datum_ende' AND
|
||||
stundenplandev_id NOT IN
|
||||
(SELECT stundenplan_id FROM tbl_stundenplan WHERE datum>='$datum_begin');";
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
else
|
||||
{
|
||||
flush();
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_query='INSERT INTO tbl_stundenplan
|
||||
(stundenplan_id,unr,uid,datum,stunde,ort_kurzbz,lehrfach_nr,lehrform_kurzbz,studiengang_kz,semester,verband,gruppe,
|
||||
einheit_kurzbz,titel,anmerkung,fix,updateamum,updatevon,lehrveranstaltung_id) VALUES';
|
||||
$sql_query.="($row->stundenplandev_id,$row->unr,'$row->uid','$row->datum',$row->stunde,'$row->ort_kurzbz',
|
||||
$row->lehrfach_nr,'$row->lehrform',$row->studiengang_kz,$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'";
|
||||
if ($row->einheit_kurzbz==null)
|
||||
$sql_query.=',NULL';
|
||||
else
|
||||
$sql_query.=",'$row->einheit_kurzbz'";
|
||||
$sql_query.=",'$row->titel','$row->anmerkung'";
|
||||
if ($row->fix=='t')
|
||||
$sql_query.=',TRUE';
|
||||
else
|
||||
$sql_query.=',FALSE';
|
||||
$sql_query.=",'$row->updateamum','$row->updatevon'";
|
||||
if ($row->lehrveranstaltung_id==null)
|
||||
$sql_query.=',NULL';
|
||||
else
|
||||
$sql_query.=",$row->lehrveranstaltung_id";
|
||||
$sql_query.=');';
|
||||
//echo $sql_query;
|
||||
if (!$result_insert=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$count_err++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$count_ins++;
|
||||
if ($count_ins%10==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
// Mails vorbereiten
|
||||
// Lektoren
|
||||
if (substr($row->uid,0,1)!='_')
|
||||
{
|
||||
if (!isset($message[$row->uid]->isneu));
|
||||
{
|
||||
$message[$row->uid]->isneu=true;
|
||||
$message[$row->uid]->mailadress=$row->uid.'@technikum-wien.at';
|
||||
$message[$row->uid]->message=$message_begin.'<BR>Neue Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$row->uid]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
// Verband
|
||||
$verband=$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe;
|
||||
$verband=trim($verband);
|
||||
$verband=strtolower($verband);
|
||||
if (!isset($message[$verband]->isneu));
|
||||
{
|
||||
$message[$verband]->isneu=true;
|
||||
$message[$verband]->mailadress=$verband.'@technikum-wien.at';
|
||||
$message[$verband]->message=$message_begin.'<BR>Neue Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$verband]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
}
|
||||
foreach($message as $msg)
|
||||
if($msg->isneu)
|
||||
$msg->message.='</table>';
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Datensaetze holen die alt sind
|
||||
*/
|
||||
|
||||
echo '<BR>Alte Datensätze werden gelöscht.<BR>';flush();
|
||||
$sql_query="SELECT * FROM vw_stundenplan WHERE stundenplan_id NOT IN
|
||||
(SELECT stundenplandev_id FROM tbl_stundenplandev WHERE datum>='$datum_begin')
|
||||
AND datum>='$datum_begin';";
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_query='DELETE FROM tbl_stundenplan WHERE stundenplan_id='.$row->stundenplan_id;
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result_delete=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$count_err++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$count_del++;
|
||||
if ($count_del%10==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
// Mails vorbereiten
|
||||
// Lektoren
|
||||
if (substr($row->uid,0,1)!='_')
|
||||
{
|
||||
if (!isset($message[$row->uid]->isalt));
|
||||
{
|
||||
$message[$row->uid]->isalt=true;
|
||||
$message[$row->uid]->mailadress=$row->uid.'@technikum-wien.at';
|
||||
$message[$row->uid]->message.=$message_begin.'<BR>Gelöeschte Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$row->uid]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
// Verband
|
||||
$verband=$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe;
|
||||
$verband=trim($verband);
|
||||
$verband=strtolower($verband);
|
||||
if (!isset($message[$verband]->isalt));
|
||||
{
|
||||
$message[$verband]->isalt=true;
|
||||
$message[$verband]->mailadress=$verband.'@technikum-wien.at';
|
||||
$message[$verband]->message.=$message_begin.'<BR>Geaenderte Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$verband]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
foreach($message as $msg)
|
||||
if($msg->isalt)
|
||||
$msg->message.='</table>';
|
||||
}
|
||||
|
||||
|
||||
/**************************************************
|
||||
* Datensaetze holen die anders sind
|
||||
*/
|
||||
|
||||
echo '<BR>Datensätze werden geändert.<BR>';flush();
|
||||
$sql_query="SELECT vw_stundenplandev.*, vw_stundenplan.datum AS old_datum, vw_stundenplan.stunde AS old_stunde,
|
||||
vw_stundenplan.ort_kurzbz AS old_ort_kurzbz, vw_stundenplan.lektor AS old_lektor
|
||||
FROM vw_stundenplandev, vw_stundenplan
|
||||
WHERE vw_stundenplan.stundenplan_id=vw_stundenplandev.stundenplandev_id AND (
|
||||
vw_stundenplandev.unr!=vw_stundenplan.unr OR
|
||||
vw_stundenplandev.uid!=vw_stundenplan.uid OR
|
||||
vw_stundenplandev.datum!=vw_stundenplan.datum OR
|
||||
vw_stundenplandev.stunde!=vw_stundenplan.stunde OR
|
||||
vw_stundenplandev.ort_kurzbz!=vw_stundenplan.ort_kurzbz OR
|
||||
vw_stundenplandev.lehrfach_nr!=vw_stundenplan.lehrfach_nr OR
|
||||
vw_stundenplandev.lehrform!=vw_stundenplan.lehrform OR
|
||||
vw_stundenplandev.studiengang_kz!=vw_stundenplan.studiengang_kz OR
|
||||
vw_stundenplandev.semester!=vw_stundenplan.semester OR
|
||||
vw_stundenplandev.verband!=vw_stundenplan.verband OR
|
||||
vw_stundenplandev.gruppe!=vw_stundenplan.gruppe OR
|
||||
vw_stundenplandev.einheit_kurzbz!=vw_stundenplan.einheit_kurzbz OR
|
||||
vw_stundenplandev.titel!=vw_stundenplan.titel OR
|
||||
vw_stundenplandev.anmerkung!=vw_stundenplan.anmerkung OR
|
||||
vw_stundenplandev.fix!=vw_stundenplan.fix OR
|
||||
vw_stundenplandev.lehrveranstaltung_id!=vw_stundenplan.lehrveranstaltung_id )
|
||||
AND vw_stundenplandev.datum>='$datum_begin';";
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
// Alten Eintrag aus tbl_stundenplan holen
|
||||
$sql_query="SELECT * FROM tbl_stundenplandev WHERE stundenplandev_id=$row->stundenplandev_id;";
|
||||
if (!$result_old=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
else
|
||||
$row_old=pg_fetch_object($result_old);
|
||||
|
||||
// Datensaetze aendern
|
||||
$sql_query="UPDATE tbl_stundenplan SET
|
||||
unr=$row->unr,uid='$row->uid',datum='$row->datum',stunde=$row->stunde,
|
||||
ort_kurzbz='$row->ort_kurzbz',lehrfach_nr=$row->lehrfach_nr, lehrform_kurzbz='$row->lehrform',
|
||||
studiengang_kz=$row->studiengang_kz,semester=$row->semester";
|
||||
if ($row->verband==null)
|
||||
$sql_query.=',verband=NULL';
|
||||
else
|
||||
$sql_query.=",verband='$row->verband'";
|
||||
if ($row->gruppe==null)
|
||||
$sql_query.=',gruppe=NULL';
|
||||
else
|
||||
$sql_query.=",gruppe='$row->gruppe'";
|
||||
if ($row->einheit_kurzbz==null)
|
||||
$sql_query.=',einheit_kurzbz=NULL';
|
||||
else
|
||||
$sql_query.=",einheit_kurzbz='$row->einheit_kurzbz'";
|
||||
$sql_query.=",titel='$row->titel',anmerkung='$row->anmerkung'";
|
||||
if ($row->fix=='t')
|
||||
$sql_query.=',fix=TRUE';
|
||||
else
|
||||
$sql_query.=',fix=FALSE';
|
||||
$sql_query.=",updateamum='$row->updateamum',updatevon='$row->updatevon'";
|
||||
if ($row->lehrveranstaltung_id==null)
|
||||
$sql_query.=',lehrveranstaltung_id=NULL';
|
||||
else
|
||||
$sql_query.=",lehrveranstaltung_id=$row->lehrveranstaltung_id";
|
||||
$sql_query.=" WHERE stundenplan_id=$row->stundenplandev_id;";
|
||||
echo $sql_query.'<BR>';
|
||||
if (!$result_update=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$count_err++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$count_upd++;
|
||||
if ($count_upd%10==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
// Mails vorbereiten
|
||||
// Lektoren
|
||||
if (substr($row->uid,0,1)!='_')
|
||||
{
|
||||
if (!isset($message[$row->uid]->isset));
|
||||
{
|
||||
$message[$row->uid]->isset=true;
|
||||
$message[$row->uid]->mailadress=$row->uid.'@technikum-wien.at';
|
||||
$message[$row->uid]->message.=$message_begin.'<BR>Geänderte Stunden:<BR>
|
||||
<TABLE><TR><TD>Status</TD><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$row->uid]->message.='<TR><TH>Vorher: </TH><TH>'.$row->old_ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->old_lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->old_datum.'/'.$row->old_stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
|
||||
$message[$row->uid]->message.='<TR><TH>Jetzt: </TH><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
// Verband
|
||||
$verband=$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe;
|
||||
$verband=trim($verband);
|
||||
$verband=strtolower($verband);
|
||||
if (!isset($message[$verband]->isset));
|
||||
{
|
||||
$message[$verband]->isset=true;
|
||||
$message[$verband]->mailadress=$verband.'@technikum-wien.at';
|
||||
$message[$verband]->message.=$message_begin.'<BR>Geänderte Stunden:<BR>
|
||||
<TABLE><TR><TD>Status</TD><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$verband]->message.='<TR><TH>Vorher: </TH><TH>'.$row->old_ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->old_lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->old_datum.'/'.$row->old_stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
|
||||
$message[$verband]->message.='<TR><TH>Jetzt: </TH><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
foreach($message as $msg)
|
||||
if($msg->isset)
|
||||
$msg->message.='</table>';
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Mails an Lektoren und Verbaende schicken
|
||||
*/
|
||||
if ($sendmail)
|
||||
foreach ($message as $msg)
|
||||
//if (mail('pam@technikum-wien.at',"Stundenplan update",$msg->message,$headers."From: stpl@technikum-wien.at"))
|
||||
if (mail($msg->mailadress,"Stundenplan update",$msg->message,$headers."From: stpl@technikum-wien.at"))
|
||||
{
|
||||
echo 'Mail an '.$msg->mailadress.' wurde verschickt!<BR>';
|
||||
$message_stpl.='Mail an '.$msg->mailadress.' wurde verschickt!<BR>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Mail an '.$msg->mailadress.' konnte nicht verschickt werden!<BR>';
|
||||
$message_sync.='Mail an '.$msg->mailadress.' konnte ***nicht*** verschickt werden!<BR>';
|
||||
}
|
||||
// Mail an Admin
|
||||
$message_tmp=$count_upd.' Datensätze wurden geändert.<BR>
|
||||
'.$count_ins.' Datensätze wurden hinzugefügt.<BR>
|
||||
'.$count_del.' Datensätze wurden gelöscht.<BR>
|
||||
'.$count_err.' Fehler sind dabei aufgetreten!<BR><BR>';
|
||||
echo '<BR>'.$message_tmp;
|
||||
$message_sync='<HTML><BODY>'.$message_tmp.$message_sync.$message_stpl.'</BODY></HTML>';
|
||||
mail('pam@technikum-wien.at',"Stundenplan update",$message_sync,$headers."From: stpl@technikum-wien.at");
|
||||
$message_stpl='<HTML><BODY>'.$message_tmp.$message_stpl.'</BODY></HTML>';
|
||||
mail('stpl@technikum-wien.at',"Stundenplan update",$message_stpl,$headers."From: stpl@technikum-wien.at");
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,594 @@
|
||||
<?php
|
||||
include('../../vilesci/config.inc.php');
|
||||
include('../../include/functions.inc.php');
|
||||
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';
|
||||
|
||||
|
||||
// error log für jeden Studiengang
|
||||
$error_log=array();
|
||||
$missing_lehrfaecher=array();
|
||||
$missing_einheit=array();
|
||||
$missing_raumtyp=array();
|
||||
$missing_lehrform=array();
|
||||
|
||||
function printLVA($row)
|
||||
{
|
||||
return 'lvnr='.$row->lvnr.' '.$row->bezeichnung;
|
||||
}
|
||||
|
||||
function getSemesterWhereClause()
|
||||
{
|
||||
global $conn;
|
||||
$qry="select * from tbl_studiensemester where ende>now()";
|
||||
$result=pg_exec($conn, $qry);
|
||||
$where='';
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$where.= ((strlen($where)>0)?' or ':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."' ";
|
||||
}
|
||||
if (strlen($where)>0) $where=" ($where) ";
|
||||
return $where;
|
||||
}
|
||||
|
||||
function validate($row)
|
||||
{
|
||||
global $error_log,$einheit,$missing_einheit,$missing_raumtyp,$missing_lehrform,$raumtyp,$lehrform;
|
||||
$valid=true;
|
||||
if ($row->raumtyp==null)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Raumtyp fehlt';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->semester>8 || $row->semester<1)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semester bei '.$row->semester.$row->verband.$row->gruppe.' größer als 8';
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->verband==null || $row->verband=='' || $row->verband=='A' || $row->verband=='B' || $row->verband=='C' || $row->verband=='D'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Verband bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (A bis D)';
|
||||
//print_r($row);
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->gruppe==null || $row->gruppe=='' || $row->gruppe=='1' || $row->gruppe=='2' || $row->gruppe=='3' || $row->gruppe=='4'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Gruppe bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (1 bis 4)';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->stundenblockung>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Stundenblockung ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->semesterstunden>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semesterstunden sind nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->wochenrythmus>0)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Wochenrythmus ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->start_kw<=0 || $row->start_kw>53)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Start-KW außerhalb des gültigen Bereichs (1 bis 53)';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->einheit_kurzbz)>0 && !isset($einheit[$row->einheit_kurzbz]) && !isset($missing_einheit[$row->einheit_kurzbz]))
|
||||
{
|
||||
$missing_einheit[$row->einheit_kurzbz]=1;
|
||||
}
|
||||
if (strlen($row->raumtyp)>0 && !isset($raumtyp[$row->raumtyp]) && !isset($missing_raumtyp[$row->raumtyp]))
|
||||
{
|
||||
$missing_raumtyp[$row->raumtyp]=1;
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->raumtypalternativ)>0 && !isset($raumtyp[$row->raumtypalternativ]) && !isset($missing_raumtyp[$row->raumtypalternativ])) {
|
||||
$missing_raumtyp[$row->raumtypalternativ]=1;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtyp))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtyp.': Raumtyp bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtypalternativ))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtypalternativ.': Raumtypalternative bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->lehrform)>0 && !isset($lehrform[$row->lehrform]) && !isset($missing_lehrform[$row->lehrform])) {
|
||||
$missing_lehrform[$row->lehrform]=1;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,5}[0-9]{0,1}$",$row->lehrfach_kurzbz))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrfach-Kuerzel bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,3}$",$row->lehrform))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrform bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
return $valid;
|
||||
}
|
||||
|
||||
/**
|
||||
* FAS-Lehrfach auf interne Lehrfach-Nr übersetzen
|
||||
*/
|
||||
function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, $fachbereich_id, $ects, $conn)
|
||||
{
|
||||
global $lehrfach;
|
||||
global $text;
|
||||
|
||||
if (isset($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']))
|
||||
{
|
||||
//echo 'Nummer:'.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'].'Bez: '.$lehrfach_bezeichnung.'<BR>';
|
||||
|
||||
// Nebenbei die Lehrfachbezeichnung kontrollieren
|
||||
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'];
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!<BR>';
|
||||
$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.'<BR>';
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo ' Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!<BR>';
|
||||
$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!<BR>';
|
||||
$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'];
|
||||
if (!$result=@pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']=$fachbereich_id;
|
||||
}
|
||||
}
|
||||
return $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
}
|
||||
//echo 'missing getLehrfachNr: '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.'<br>';
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/*************************
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
|
||||
// E-Mails der Studiengänge
|
||||
$stg_mail=array();
|
||||
$qry="select studiengang_kz,email,kurzbz from tbl_studiengang";
|
||||
$result=pg_exec($conn, $qry);
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$stg_mail[$row->studiengang_kz] = $row->email;
|
||||
$stg_kurzbz[$row->studiengang_kz]=$row->kurzbz;
|
||||
}
|
||||
|
||||
// Anzahl der LVA in VileSci
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_lehrveranstaltung";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vil_anz_lva=pg_fetch_result($result,0,'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);
|
||||
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]['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;
|
||||
}
|
||||
//print_r($lehrfach);
|
||||
// Einheiten holen
|
||||
$sql_query="SELECT einheit_kurzbz,bezeichnung FROM tbl_einheit";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$einheit[$row->einheit_kurzbz] = $row->bezeichnung;
|
||||
// Raumtypen holen
|
||||
$sql_query="SELECT raumtyp_kurzbz,beschreibung FROM tbl_raumtyp";
|
||||
$result=pg_exec($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);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$lehrform[$row->lehrform_kurzbz] = $row->bezeichnung;
|
||||
//print_r($lehrfach);
|
||||
echo 'FAS-Datenbank wird abgefragt!<BR><i>';
|
||||
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,
|
||||
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."</i><br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($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";
|
||||
$text.="Anzahl der LVA in der VileSci: $vil_anz_lva \r\r";
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
echo $num_rows.' Datensaetze<BR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
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);
|
||||
// Einheit vollstaendiger Name
|
||||
if (count($row->einheit_kurzbz)>0)
|
||||
$row->einheit_kurzbz=$stg_kurzbz[$row->studiengang_kz].'-'.$row->einheit_kurzbz;
|
||||
|
||||
// Plausibilitaetscheck
|
||||
//if ($row->gruppe==NULL)
|
||||
// $row->gruppe='1';
|
||||
|
||||
//
|
||||
if (!$row->stundenblockung>0)
|
||||
$row->stundenblockung=1;
|
||||
if (!$row->start_kw>0)
|
||||
$row->start_kw=1;
|
||||
if (!$row->wochenrythmus>0)
|
||||
$row->wochenrythmus=1;
|
||||
|
||||
if ($row->lehrfach_nr==-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 (validate($row) && $row->lehrfach_nr>-1)
|
||||
{
|
||||
// SQL vorbereiten (jede LVA vom FAS im VileSci suchen)
|
||||
$sql_query="SELECT * from tbl_lehrveranstaltung where fas_id=".$row->fas_id;
|
||||
//echo $sql_query;
|
||||
$res_lva=pg_query($conn, $sql_query);
|
||||
$num_rows_lva=pg_numrows($res_lva);
|
||||
|
||||
// neue LVA
|
||||
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.'<BR>';
|
||||
if(!$res_insert=@pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\nFehler: ".pg_errormessage($conn)."\n";
|
||||
$insert_error++;
|
||||
}
|
||||
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.'-<BR>';
|
||||
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.'<BR>';
|
||||
if(!$res_update=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
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.'<BR>';
|
||||
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 '<BR>STPL-ID:'.$row_upd_stpl->stundenplandev_id.'<BR>';
|
||||
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."<BR>";
|
||||
}
|
||||
}
|
||||
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++;
|
||||
}
|
||||
}
|
||||
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)";
|
||||
echo $sql_query.'<BR>';
|
||||
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";
|
||||
}
|
||||
else
|
||||
{
|
||||
$anz_delete=pg_numrows($res_delete);
|
||||
}
|
||||
|
||||
//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.="\nEND OF SYNCHRONISATION\n";
|
||||
|
||||
// Validation error hinzufügen
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
$text.="\n\nStudiengang $k:\n";
|
||||
foreach($v as $txt)
|
||||
$text.=" $txt\n";
|
||||
}
|
||||
// fehlende lehrfächer
|
||||
$text.="\n\nFehlende Lehrfächer: \n";
|
||||
while(list($k,$v)=each($missing_lehrfaecher))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende einheiten
|
||||
$text.="\n\nFehlende Einheiten: \n";
|
||||
while(list($k,$v)=each($missing_einheit))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende raumtypen
|
||||
$text.="\n\nFehlende Raumtypen: \n";
|
||||
while(list($k,$v)=each($missing_raumtyp))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende lehrformen
|
||||
$text.="\n\nFehlende Lehrformen: \n";
|
||||
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
|
||||
$sendmail=false;
|
||||
|
||||
//print "debug: ";print_r($stg_mail);
|
||||
|
||||
// Einzelnen Mails an Studiengänge verschicken
|
||||
reset($error_log);
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
echo "<br>Mail an Studiengang $k ".$stg_mail[$k].":<br>";
|
||||
$stg_text="Dies ist eine automatische Mail!\nFolgende Fehler sind bei der Synchronisation der Lehrveranstaltungen aufgetreten:\n\n";
|
||||
foreach($v as $txt)
|
||||
$stg_text.="$txt\n";
|
||||
echo $stg_text.'<br>';
|
||||
// Studiengang
|
||||
if (!mail($stg_mail[$k],"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo "Mail an '".$stg_mail[$k]."' konnte nicht verschickt werden!<br>";
|
||||
// Stundenplanstelle
|
||||
echo "<br>Mail an Studiengang $k ($adress_stpl)<br>";
|
||||
if (!mail($adress_stpl,"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo 'Mail an "'.$adress_stpl.'" konnte nicht verschickt werden!<br>';
|
||||
|
||||
}
|
||||
|
||||
// Doppelte IDs im FAS prüfen
|
||||
$sql_query="SELECT count(*) AS anzahl, fas_id FROM fas_view_alle_lehreinheiten_vilesci
|
||||
GROUP BY fas_id HAVING count(*)>1";
|
||||
//echo $sql_query."</i><br>";
|
||||
$result=pg_query($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$mail_text="Folgende $num_rows IDs kommen in der View fas_view_alle_lehreinheiten_vilesci (fas_id) mehrfach vor:\n\n";
|
||||
$mail_text_false='';
|
||||
if ($num_rows>0)
|
||||
while ($row=pg_fetch_object($result))
|
||||
$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"))
|
||||
echo "Mail an '".$adress_fas."' konnte nicht verschickt werden!<br>";
|
||||
else
|
||||
echo 'Mail wurde verschickt an '.$adress_fas.'!<br>';
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo nl2br($text);
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user