From 6f7e519f74d6e7f3170b78ef2b34073d5285dfc6 Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Tue, 27 Nov 2007 16:42:45 +0000 Subject: [PATCH] --- .../sync/stp/sync_stp_vilesci_prestudent.php | 209 ++++++++++++++++-- 1 file changed, 190 insertions(+), 19 deletions(-) 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"); -*/ + ?>