mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-07 15:19:31 +00:00
This commit is contained in:
@@ -9,10 +9,10 @@
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
//$adress='fas_sync@technikum-wien.at';
|
||||
$adress='oesi@technikum-wien.at';
|
||||
|
||||
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
|
||||
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
@@ -27,21 +27,21 @@
|
||||
$double_lva = array();
|
||||
$stg_data = array();
|
||||
$studiensemester = array();
|
||||
|
||||
|
||||
//**** FUNCTIONS ****
|
||||
|
||||
|
||||
//Plausi checks
|
||||
function validate($row)
|
||||
{
|
||||
global $text, $plausi_error, $stg_data, $studiensemester;
|
||||
|
||||
|
||||
if($row->studiensemester_fk==0)
|
||||
{
|
||||
$stg_data[$row->kennzahl]['text'] .= ' '.$stg_data[$row->kennzahl]['kuerzel'].' Semester '.$row->semester.' '.$row->name." hat Studiensemester 0\n";
|
||||
$plausi_error++;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if($row->kurzbezeichnung == '')
|
||||
{
|
||||
//$text.= 'LVA '.$stg_data[$row->kennzahl]['kuerzel'].' Semester '.$row->semester.' LVA '.$row->name." hat keine Kurzbezeichnung\n";
|
||||
@@ -75,14 +75,14 @@
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//Liefert Bezeichnung der Lehrveranstaltung
|
||||
function getlvabez($row)
|
||||
{
|
||||
global $studiensemester, $stg_data;
|
||||
return $stg_data[$row->kennzahl]['kuerzel']." Semester $row->semester $row->kurzbezeichnung ".$studiensemester[$row->studiensemester_fk]." ($row->lehrveranstaltung_pk)";
|
||||
}
|
||||
|
||||
|
||||
// Fuegt einen Eintrag in die Synctabelle hinzu
|
||||
function synctabentry($lehrveranstaltung_id_vilesci, $lehrveranstaltung_id_fas)
|
||||
{
|
||||
@@ -90,7 +90,7 @@
|
||||
$qry = "INSERT INTO sync.tbl_synclehrveranstaltung(lva_fas,lva_vilesci) VALUES($lehrveranstaltung_id_fas, $lehrveranstaltung_id_vilesci);";
|
||||
pg_query($conn, $qry);
|
||||
}
|
||||
|
||||
|
||||
//Schaut welche Felder aktualisiert gehoeren und liefert den Update Befehl
|
||||
function getupdateqry($row_found, $row_fas_alle)
|
||||
{
|
||||
@@ -135,15 +135,15 @@
|
||||
$qry.=" anmerkung='".addslashes($row_fas_alle->beschreibung)."'";
|
||||
$update=true;
|
||||
}
|
||||
|
||||
|
||||
$qry.=" WHERE lehrveranstaltung_id='$row_found->lehrveranstaltung_id'";
|
||||
|
||||
|
||||
if($update)
|
||||
return $qry;
|
||||
else
|
||||
else
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
//**** BEGIN OF SYNCRONISATION ****
|
||||
// Assistenz-Email holen
|
||||
$sql_query="SELECT studiengang_kz, email, UPPER(typ::varchar(1) || kurzbz) as kuerzel FROM public.tbl_studiengang";
|
||||
@@ -156,7 +156,7 @@
|
||||
}
|
||||
//Fehler fuer die Freifaecher an Augustin schicken
|
||||
$stg_data[0]['mail']='caugust@technikum-wien.at';
|
||||
|
||||
|
||||
//Studiensemester holen
|
||||
$sql_query="SELECT studiensemester_pk,
|
||||
CASE WHEN art=1 THEN 'WS'
|
||||
@@ -167,7 +167,7 @@
|
||||
{
|
||||
$studiensemester[$row->studiensemester_pk]=$row->stsem;
|
||||
}
|
||||
|
||||
|
||||
// Lehreinheiten ohne Lehrveranstaltung suchen
|
||||
$qry = "SELECT bezeichnung, semester, kennzahl, studiensemester_fk FROM lehreinheit, studiengang, ausbildungssemester WHERE ausbildungssemester_fk=ausbildungssemester_pk AND lehreinheit.studiengang_fk=studiengang_pk AND lehrveranstaltung_fk NOT IN(SELECT lehrveranstaltung_pk FROM lehrveranstaltung)";
|
||||
$result = pg_query($conn_fas, $qry);
|
||||
@@ -176,27 +176,27 @@
|
||||
$stg_data[$row->kennzahl]['text'] .= ' Lehreinheit '.$stg_data[$row->kennzahl]['kuerzel'].' '.$row->semester.' ('.$studiensemester[$row->studiensemester_fk].') '.$row->bezeichnung." hat keine zugehoerige Lehrveranstaltung\n";
|
||||
$missing_lva++;
|
||||
}
|
||||
|
||||
|
||||
// Anzahl der Lehrveranstaltungen in VileSci
|
||||
$sql_query="SELECT count(*) AS anz FROM lehre.tbl_lehrveranstaltung";
|
||||
$result=pg_query($conn, $sql_query);
|
||||
$row=pg_fetch_object($result);
|
||||
$vilesci_anz_lva = $row->anz;
|
||||
|
||||
|
||||
// Start LVA Synchro
|
||||
$sql_query="SELECT lehrveranstaltung.*, ausbildungssemester.semester, studiengang.kennzahl
|
||||
FROM lehrveranstaltung, ausbildungssemester, studiengang
|
||||
WHERE ausbildungssemester_fk=ausbildungssemester_pk AND
|
||||
lehrveranstaltung.studiengang_fk=studiengang_pk AND
|
||||
$sql_query="SELECT lehrveranstaltung.*, ausbildungssemester.semester, studiengang.kennzahl
|
||||
FROM lehrveranstaltung, ausbildungssemester, studiengang
|
||||
WHERE ausbildungssemester_fk=ausbildungssemester_pk AND
|
||||
lehrveranstaltung.studiengang_fk=studiengang_pk AND
|
||||
studiensemester_fk<>0 AND
|
||||
lehrveranstaltung.lehrveranstaltung_pk NOT IN(
|
||||
SELECT lv1.lehrveranstaltung_pk
|
||||
FROM lehrveranstaltung lv1, lehrveranstaltung lv2
|
||||
WHERE lv1.lehrveranstaltung_pk<>lv2.lehrveranstaltung_pk AND
|
||||
lv1.ausbildungssemester_fk=lv2.ausbildungssemester_fk AND
|
||||
lv1.kurzbezeichnung=lv2.kurzbezeichnung AND
|
||||
lv1.name<>lv2.name AND lv1.kurzbezeichnung is not null AND
|
||||
lv1.kurzbezeichnung<>'' AND lv2.kurzbezeichnung is not null AND lv2.kurzbezeichnung<>'')
|
||||
SELECT lv1.lehrveranstaltung_pk
|
||||
FROM lehrveranstaltung lv1, lehrveranstaltung lv2
|
||||
WHERE lv1.lehrveranstaltung_pk<>lv2.lehrveranstaltung_pk AND
|
||||
lv1.ausbildungssemester_fk=lv2.ausbildungssemester_fk AND
|
||||
lv1.kurzbezeichnung=lv2.kurzbezeichnung AND
|
||||
lv1.name<>lv2.name AND lv1.kurzbezeichnung is not null AND
|
||||
lv1.kurzbezeichnung<>'' AND lv2.kurzbezeichnung is not null AND lv2.kurzbezeichnung<>'')
|
||||
ORDER BY kennzahl, semester, studiensemester_fk";
|
||||
flush();
|
||||
$result_fas_alle=pg_query($conn_fas, $sql_query);
|
||||
@@ -205,13 +205,13 @@
|
||||
$headtext.="Es wurde eine Synchronisation mit FAS durchgeführt.\n";
|
||||
$headtext.="Anzahl der Lehrveranstaltungen vom FAS: $num_rows \n";
|
||||
$headtext.="Anzahl der Lehrveranstaltungen in Vilesci: $vilesci_anz_lva \n\n";
|
||||
|
||||
|
||||
for ($i=0;$row_fas_alle=pg_fetch_object($result_fas_alle);$i++)
|
||||
{
|
||||
//btec auf 0 umlenken (Freifaecher)
|
||||
if($row_fas_alle->kennzahl==203 && $row_fas_alle->studiensemester_fk>5)
|
||||
$row_fas_alle->kennzahl='0';
|
||||
|
||||
|
||||
// Plausibilitaetscheck
|
||||
if(validate($row_fas_alle))
|
||||
{
|
||||
@@ -222,21 +222,21 @@
|
||||
{
|
||||
//WEITERSUCHEN
|
||||
//Gleicher /Stg/Sem/Kurzbz
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE
|
||||
studiengang_kz='$row_fas_alle->kennzahl' AND
|
||||
semester='$row_fas_alle->semester' AND
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE
|
||||
studiengang_kz='$row_fas_alle->kennzahl' AND
|
||||
semester='$row_fas_alle->semester' AND
|
||||
kurzbz='$row_fas_alle->kurzbezeichnung'";
|
||||
$result = pg_query($conn, $qry);
|
||||
|
||||
|
||||
if(pg_num_rows($result)==1)
|
||||
{
|
||||
//$text.='FOUND on Kurzbz LVA '.getlvabez($row_fas_alle)." -> UPDATE & SYNCTAB-Insert\n";
|
||||
|
||||
|
||||
if($row_found = pg_fetch_object($result))
|
||||
{
|
||||
//Datensatz aktualisieren
|
||||
$qry = getupdateqry($row_found, $row_fas_alle);
|
||||
|
||||
|
||||
if($qry!='')
|
||||
{
|
||||
if(pg_query($conn, $qry))
|
||||
@@ -246,14 +246,14 @@
|
||||
$text.="LVA wurde aktualisiert: $qry\n";
|
||||
$anz_update++;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.="Fehler beim Update einer LVA: $qry\n";
|
||||
$update_error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Lesen des Datensatzes:'.getlvabez($row_fas_alle)."\n";
|
||||
$update_error++;
|
||||
@@ -263,12 +263,12 @@
|
||||
{
|
||||
//WEITERSUCHEN
|
||||
//Gleicher /Stg/Sem/Bezeichnung
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE
|
||||
studiengang_kz='$row_fas_alle->kennzahl' AND
|
||||
semester='$row_fas_alle->semester' AND
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE
|
||||
studiengang_kz='$row_fas_alle->kennzahl' AND
|
||||
semester='$row_fas_alle->semester' AND
|
||||
bezeichnung='$row_fas_alle->name'";
|
||||
$result = pg_query($conn, $qry);
|
||||
|
||||
|
||||
if(pg_num_rows($result)==1)
|
||||
{
|
||||
if($row_found = pg_fetch_object($result))
|
||||
@@ -276,7 +276,7 @@
|
||||
//Gefunden->Update und Synctab-Eintrag
|
||||
//$text.='FOUND on Name LVA '.getlvabez($row_fas_alle)." -> UPDATE & SYNCTAB-Insert\n";
|
||||
$qry = getupdateqry($row_found, $row_fas_alle);
|
||||
|
||||
|
||||
if($qry!='')
|
||||
{
|
||||
if(pg_query($conn, $qry))
|
||||
@@ -286,18 +286,18 @@
|
||||
$text.="LVA wurde aktualisiert: $qry\n";
|
||||
$anz_update++;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.="Fehler beim Update einer LVA: $qry\n";
|
||||
$update_error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Lesen des Datensatzes:'.getlvabez($row_fas_alle)."\n";
|
||||
$update_error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif(pg_num_rows($result)==0)
|
||||
{
|
||||
@@ -323,25 +323,25 @@
|
||||
$lv->updatevon = 'Sync';
|
||||
$lv->insertamum = date('Y-m-d H:i:s');
|
||||
$lv->insertvon = 'Sync';
|
||||
|
||||
|
||||
if($lv->save(true))
|
||||
{
|
||||
synctabentry($lv->lehrveranstaltung_id, $row_fas_alle->lehrveranstaltung_pk);
|
||||
$text.="Eine neue Lehrveranstaltung wurde angelegt: ".getlvabez($row_fas_alle)."\n";
|
||||
$anz_insert++;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.="Fehler beim Anlegen der LVA ".getlvabez($row_fas_alle).": $lv->errormsg\n";
|
||||
$insert_error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.="MULTIFOUND Bezeichnung".getlvabez($row_fas_alle)."-> BREAK\n";
|
||||
$text.="MULTIFOUND Bezeichnung".getlvabez($row_fas_alle)."-> BREAK\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.="MULTIFOUND kurzbz ".getlvabez($row_fas_alle)."-> BREAK\n";
|
||||
if(!isset($double_lva[$row_fas_alle->lehrveranstaltung_pk]))
|
||||
@@ -351,48 +351,48 @@
|
||||
}
|
||||
elseif(pg_num_rows($result)==1)
|
||||
{
|
||||
$row_id = pg_fetch_object($result);
|
||||
$row_id = pg_fetch_object($result);
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='$row_id->lva_vilesci'";
|
||||
$result = pg_query($conn, $qry);
|
||||
|
||||
|
||||
//UPDATE
|
||||
if($row_found = pg_fetch_object($result))
|
||||
{
|
||||
//Datensatz aktualisieren
|
||||
$qry = getupdateqry($row_found, $row_fas_alle);
|
||||
|
||||
|
||||
if($qry!='')
|
||||
{
|
||||
if(pg_query($conn, $qry))
|
||||
{
|
||||
{
|
||||
$text.="LVA wurde aktualisiert: $qry\n";
|
||||
$anz_update++;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.="Fehler beim Update einer LVA: $qry\n";
|
||||
$update_error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Lesen des Datensatzes:'.getlvabez($row_fas_alle);
|
||||
$update_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$text.="\nLVA ".getlvabez($row_fas_alle)." hat mehrere Eintraege in tbl_synclehrveranstaltung\n";
|
||||
$double_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
//$text.="\nLVA ".getlvabez($row_fas_alle)." hat nicht plausible Daten\n";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$headtext.="\n$plausi_error Fehler beim Plausibilitaetscheck!\n";
|
||||
$headtext.="$update_error Fehler bei LVA-Update!\n";
|
||||
$headtext.="$insert_error Fehler bei LVA-Insert!\n";
|
||||
@@ -401,30 +401,30 @@
|
||||
$headtext.="$anz_update LVAs wurden aktualisiert.\n";
|
||||
$headtext.="$anz_insert LVAs wurden neu angelegt.\n";
|
||||
$headtext.="$missing_lva Lehreinheiten haben keine LV.\n";
|
||||
|
||||
$qry = "Select count(*) as anzahl FROM (SELECT distinct lv1.lehrveranstaltung_pk
|
||||
FROM lehrveranstaltung lv1, lehrveranstaltung lv2
|
||||
WHERE lv1.lehrveranstaltung_pk<>lv2.lehrveranstaltung_pk AND
|
||||
lv1.ausbildungssemester_fk=lv2.ausbildungssemester_fk AND
|
||||
lv1.kurzbezeichnung=lv2.kurzbezeichnung AND
|
||||
lv1.name<>lv2.name AND lv1.kurzbezeichnung is not null AND
|
||||
|
||||
$qry = "Select count(*) as anzahl FROM (SELECT distinct lv1.lehrveranstaltung_pk
|
||||
FROM lehrveranstaltung lv1, lehrveranstaltung lv2
|
||||
WHERE lv1.lehrveranstaltung_pk<lv2.lehrveranstaltung_pk AND
|
||||
lv1.ausbildungssemester_fk=lv2.ausbildungssemester_fk AND
|
||||
lv1.kurzbezeichnung=lv2.kurzbezeichnung AND
|
||||
lv1.name<>lv2.name AND lv1.kurzbezeichnung is not null AND
|
||||
lv1.kurzbezeichnung<>'' AND lv2.kurzbezeichnung is not null AND lv2.kurzbezeichnung<>'') as a";
|
||||
$result = pg_query($conn_fas, $qry);
|
||||
$row = pg_fetch_object($result);
|
||||
if($row->anzahl>0)
|
||||
{
|
||||
{
|
||||
$headtext.="$row->anzahl LVAs haben verschiedene Bezeichnungen";
|
||||
$text.="Gleiche LVAs mit unterschiedlicher Bezeichnung vorhanden: \n\nSELECT distinct lv1.lehrveranstaltung_pk FROM lehrveranstaltung lv1, lehrveranstaltung lv2 WHERE lv1.lehrveranstaltung_pk<>lv2.lehrveranstaltung_pk AND lv1.ausbildungssemester_fk=lv2.ausbildungssemester_fk AND lv1.kurzbezeichnung=lv2.kurzbezeichnung AND lv1.name<>lv2.name AND lv1.kurzbezeichnung is not null AND lv1.kurzbezeichnung<>'' AND lv2.kurzbezeichnung is not null AND lv2.kurzbezeichnung<>''\n";
|
||||
}
|
||||
|
||||
|
||||
if(count($double_lva)>0)
|
||||
{
|
||||
$headtext.="\nDoppelte Lehrveranstaltungen:\n\n";
|
||||
foreach ($double_lva as $bez)
|
||||
$headtext.=$bez."\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
foreach ($stg_data as $stg=>$trash)
|
||||
{
|
||||
$msg = $stg_data[$stg]['text'];
|
||||
@@ -433,13 +433,13 @@
|
||||
$text.="\nMails an Studiengang ".$stg_data[$stg]['kuerzel'].'('.$stg_data[$stg]['mail'].") ... ";
|
||||
if(mail('oesi@technikum-wien.at',"FAS - Vilesci (Lehrveranstaltungen) ".$stg_data[$stg]['kuerzel'],$head_stg_text.$msg,"From: vilesci@technikum-wien.at"))
|
||||
$text.="gesendet\n\n$msg";
|
||||
else
|
||||
else
|
||||
$text.="FEHLER beim senden\n\n$msg";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$text.="\nEND OF SYNCHRONISATION\n";
|
||||
|
||||
|
||||
if (mail($adress,"FAS - Vilesci (Lehrveranstaltungen)",$headtext."\n\n".$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user