diff --git a/system/sync/stp/sync_stp_vilesci_prestudent.php b/system/sync/stp/sync_stp_vilesci_prestudent.php
index e4d2b5bbd..9478e1777 100644
--- a/system/sync/stp/sync_stp_vilesci_prestudent.php
+++ b/system/sync/stp/sync_stp_vilesci_prestudent.php
@@ -11,8 +11,8 @@
//* Synchronisiert Prestudentdatensaetze von StP DB in PORTAL DB
//*
//*
-//* setzt voraus: sync von sync.stp_person
-//* benoetigt: tbl_syncperson
+//* setzt voraus: sync von sync.stp_person, tbl_syncperson, tbl_zgv, tbl_zgvmaster
+//*
require_once('sync_config.inc.php');
@@ -47,7 +47,10 @@ $dublette=0;
$plausi='';
$start='';
$stg='';
-$staat=array();
+$aufmerksam=array();
+$zgv=array();
+$Kalender='';
+$rolle='';
/*************************
* StP-PORTAL - Synchronisation
@@ -62,11 +65,34 @@ $staat=array();
ext_id]=$row->aufmerksamdurch_kurzbz;
+ }
+}
+$qry="SELECT * FROM sync.stp_zugang";
+if($result = pg_query($conn, $qry))
+{
+ while($row = pg_fetch_object($result))
+ {
+ $zgv[$row->cxzugang]=$row->zgv_code;
+ }
+}
+$zgv[2]=99;
+$zgv['']=99;
+
+$ststat=array(2=>'Bewerber', 3=>'Student', 4=>'Ausserordentlicher', 5=>'Unterbrecher', 6=>'Absolvent', 7=>'Abbrecher', 8=>'Abgewiesener',
+ 10=>'Diplomand', 11=>'Diplomand', 12=>'Incoming');
//*********** Neue Daten holen *****************
$qry="SELECT __Person, datenquelle, inAusmassBesch, HoechsteAusbildung, _cxZugang, daMaturaDat,
- _cxZugangFHMag, daZugangFHMagDat, chtitel, chnachname, chvorname
- FROM sync.stp_person
+ _cxZugangFHMag, daZugangFHMagDat, chtitel, chnachname, chvorname, studiengang_kz,
+ chKalenderSemStatAend, inStudiensemester, _cxStudStatus, _StgOrgForm
+ FROM sync.stp_person JOIN sync.stp_stgvertiefung ON (_stgvertiefung=__stgvertiefung)
+ JOIN public.tbl_studiengang ON (_studiengang=ext_id)
WHERE __Person IN (SELECT ext_id FROM tbl_person WHERE ext_id IS NOT NULL) AND
(_cxPersonTyp='1' OR _cxPersonTyp='2');";
@@ -82,6 +108,57 @@ if($result = pg_query($conn, $qry))
{
$cont='';
//plausi
+ if($row->datenquelle=='' || $row->datenquelle==NULL)
+ {
+ $datenquelle=0;
+ }
+ else
+ {
+ $datenquelle==$row->datenquelle;
+ }
+ if($row->studiengang_kz=='' || $row->studiengang_kz==NULL)
+ {
+ $error_log1.="\nKein zugeordneter Studiengang gefunden";
+ $cont=true;
+ $error=true;
+ }
+ if($row->_cxzugang=='' || $row->_cxzugang==NULL)
+ {
+ $error_log1.="\nZugangsvoraussetzung nicht eingetragen";
+ $error=true;
+ }
+ if($row->damaturadat=='' || $row->damaturadat==NULL)
+ {
+ $error_log1.="\nDatum der Zugangsvoraussetzung nicht eingetragen";
+ $error=true;
+ }
+ if($row->_cxzugangfhmag=='' || $row->_cxzugangfhmag==NULL)
+ {
+ $error_log1.="\nZugangsvoraussetzung Mag. nicht eingetragen";
+ $error=true;
+ }
+ if($row->dazugangfhmagdat=='' || $row->dazugangfhmagdat==NULL)
+ {
+ $error_log1.="\nDatum der Zugangsvoraussetzung Mag. nicht eingetragen";
+ $error=true;
+ }
+ if($row->_stgorgform=='' || $row->_stgorgform==NULL)
+ {
+ $error_log1.="\nOrganisationsform nicht eingetragen";
+ $error=true;
+ }
+ if($row->_cxstudstatus=='' || $row->_cxstudstatus==NULL)
+ {
+ $error_log1.="\nStudentenstatus nicht eingetragen";
+ $cont=true;
+ $error=true;
+ }
+ if($row->chkalendersemstataend=='' || $row->chkalendersemstataend==NULL)
+ {
+ $error_log1.="\nKalenderSemStatAend (Studiensemester) nicht eingetragen";
+ $cont=true;
+ $error=true;
+ }
if($error)
{
$error_log.="\n*****\n".$row->__person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname).": ".$error_log1;
@@ -93,23 +170,115 @@ if($result = pg_query($conn, $qry))
continue;
}
}
-//Studiengang ermitteln
- $qry_stg = "SELECT *
- FROM cxWebPage JOIN PersonGrp ON(_cxWebPage=__cxWebPage)
- JOIN _Person_PersonGrp ON(_PersonGrp=__PersonGrp)
- WHERE _Person=".myaddslashes($row->__person).";";
- if($result_stg = mssql_query($qry_stg, $conn_ext))
+
+ if($row->_stgorgform==1)
{
- if($row_stg=mssql_fetch_object($result_stg))
- {
- $stg=$row_stg->_Studiengang;
- }
+ $orgform="VZ";
+ }
+ elseif($row->_stgorgform==2)
+ {
+ $orgform="BB";
+ }
+ elseif($row->_stgorgform==4)
+ {
+ $orgform="ZGS";
}
else
{
- echo "
nix gfundn!";
+ $orgform="VZ";
}
- echo "
*****
".$row->__person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname).", Studiengang ".$stg;
+ $rolle=$ststat[$row->_cxstudstatus];
+ $Kalender=ucwords(substr($row->chkalendersemstataend,0,1)).'S'.((integer)substr($row->chkalendersemstataend,1,2)<11?'20':'19').substr($row->chkalendersemstataend,1,2);
+ //echo substr($row->chkalendersemstataend,2,2)."/".$row->chkalendersemstataend."--->".$Kalender;
+
+ $qry_synk="SELECT * FROM sync.tbl_syncperson where __person=".$row->__person.";";
+ $row_synk=pg_fetch_object(pg_query($conn, $qry_synk));
+ $qry_chk="SELECT * FROM public.tbl_prestudent WHERE person_id=".myaddslashes($row_synk->person_id)." AND studiengang_kz=".myaddslashes($row->studiengang_kz).";";
+ if($result_chk = pg_query($conn, $qry_chk))
+ {
+ if(pg_num_rows($result_chk)==0)
+ {
+ pg_query($conn, "BEGIN");
+ $qry_ins="INSERT INTO public.tbl_prestudent (aufmerksamdurch_kurzbz, person_id, studiengang_kz,
+ berufstaetigkeit_code, ausbildungcode, zgv_code, zgvort, zgvdatum, zgvmas_code, zgvmaort,
+ zgvmadatum, aufnahmeschluessel, facheinschlberuf, reihungstest_id, anmeldungreihungstest,
+ reihungstestangetreten, punkte, bismelden, anmerkung, insertamum, insertvon, updateamum,
+ updatevon, ext_id)
+ VALUES (".
+ myaddslashes($aufmerksam[$datenquelle]).", ".
+ myaddslashes($row_synk->person_id).", ".
+ myaddslashes($row->studiengang_kz).",
+ NULL, ".
+ myaddslashes($row->hoechsteausbildung).", ".
+ myaddslashes($zgv[$row->_cxzugang]).",
+ NULL, ".
+ myaddslashes($row->damaturadat).", ".
+ myaddslashes($row->_cxzugangfhmag).",
+ NULL, ".
+ myaddslashes($row->dazugangfhmagdat).",
+ NULL,
+ FALSE,
+ NULL,
+ NULL,
+ FALSE, ".
+ myaddslashes(0).",
+ TRUE,
+ '',
+ now(),
+ 'SYNC',
+ NULL,
+ NULL, ".
+ myaddslashes($row->__person).");";
+
+ if(!$result_neu = pg_query($conn, $qry_ins))
+ {
+ $error_log.= $qry_ins."\n".pg_last_error($conn)." \n";
+ $fehler++;
+ pg_query($conn, "ROLLBACK");
+ }
+ else
+ {
+ //Prestudent_id ermitteln
+
+
+ $ausgabe.="\n------------------\nÜbertragen: ".$row->__person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname).", Stg: ".$row->studiengang_kz;
+ $qry_ins="INSERT INTO public.tbl_prestudentrolle (rolle_kurzbz, studiensemester_kurzbz,
+ ausbildungssemester,datum, orgform_kurzbz, insertamum, insertvon, updateamum,
+ updatevon, ext_id)
+ VALUES (".
+ myaddslashes($rolle).", ".
+ myaddslashes($Kalender).", ".
+ myaddslashes($row->instudiensemester).",
+ now(), ".
+ myaddslashes($orgform).",
+ now(),
+ 'SYNC',
+ NULL,
+ NULL, ".
+ myaddslashes($row->__person).")";
+ if(!$result_neu = pg_query($conn, $qry_ins))
+ {
+ $error_log.= $qry_ins."\n".pg_last_error($conn)." \n";
+ $fehler++;
+ pg_query($conn, "ROLLBACK");
+ }
+ else
+ {
+ pg_query($conn, "COMMIT");
+ $eingefuegt++;
+ }
+ }
+
+
+ }
+ else
+ {
+ $dublette++;
+ }
+ }
+
+ //echo "
*****
".$row->__person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname).", Studiengang ".$row->studiengang_kz;
+
}
}
else
@@ -123,13 +292,15 @@ echo "
Fehler: ".$fehler;
echo "
";
echo nl2br($error_log);
echo nl2br($ausgabe);
-/*
+
+echo "
".date("d.m.Y H:i:s")."
";
+
mail($adress, 'SYNC-Fehler StP-Prestudent von '.$_SERVER['HTTP_HOST'], $error_log,"From: vilesci@technikum-wien.at");
mail($adress, 'SYNC StP-Prestudent von '.$_SERVER['HTTP_HOST'], "Sync Student\n------------\n\n"
."Personen: Gesamt: ".$anzahl_person_gesamt." / Eingefügt: ".$eingefuegt." / Fehler: ".$fehler." / Doppelt: ".$dublette
."\n\n".$dateiausgabe."Beginn: ".$start."\nEnde: ".date("d.m.Y H:i:s")."\n\n".$ausgabe, "From: vilesci@technikum-wien.at");
-*/
+
?>