diff --git a/system/sync/stp/check_prestudentrolle.php b/system/sync/stp/check_prestudentrolle.php index 446bbe538..50cfc567d 100644 --- a/system/sync/stp/check_prestudentrolle.php +++ b/system/sync/stp/check_prestudentrolle.php @@ -1,5 +1,5 @@ , @@ -8,11 +8,11 @@ */ //* -//* Synchronisiert Personendatensaetze von FAS DB in PORTAL DB +//* Synchronisiert Prestudentrollendatensaetze von FAS DB in PORTAL DB //* //* //* setzt voraus: sync von sync.stp_person, sync.stp_staat -//* benoetigt: tbl_syncperson +//* benoetigt: tbl_syncperson, tbl_studiensemester require_once('sync_config.inc.php'); require_once('../../../include/functions.inc.php'); @@ -47,7 +47,8 @@ $log_qry_ins=''; $beginnsem=''; $semstart=array(); $semende=array(); - +$studiensemester=array(); +$i=0; /************************* * StP-PORTAL - Synchronisation */ @@ -61,15 +62,20 @@ $semende=array(); studiensemester_kurzbz; $semstart[$row->studiensemester_kurzbz]=$row->start; - $semende[$row->studiensemester_kurzbz]=$row->ende; + $semende[$row->studiensemester_kurzbz]=$row->ende; + $i++; } } + //*********** Neue Daten holen ***************** $qry="SELECT __Person, chtitel, chnachname, chvorname, daEintrittDat, prestudent_id FROM sync.stp_person JOIN public.tbl_prestudent ON (__Person=ext_id) @@ -84,6 +90,7 @@ if($resultall = pg_query($conn,$qry)) echo nl2br($error_log_ext); while($rowall=pg_fetch_object($resultall)) { + //echo nl2br("\n".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname)); $cont=''; if($rowall->daeintrittdat==NULL || $rowall->daeintrittdat=='') { @@ -103,58 +110,158 @@ if($resultall = pg_query($conn,$qry)) } } - echo nl2br("\n*****\n".$rowall->__person." - ".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname).": ".$rowall->daeintrittdat); - $qry_rl="SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id=".myaddslashes($rowall->prestudent_id)." ORDER BY datum desc LIMIT 1"; if($resultrl = pg_query($conn,$qry_rl)) { if($rowrl=pg_fetch_object($resultrl)) { - $beginnsem=getStudiensemesterFromDatum($conn, $rowall->daeintrittdat, true); - while ($rowrl->studiensemester_kurzbz>$beginnsem) + if($rowrl->ausbildungssemester==NULL || $rowrl->ausbildungssemester=='' || $rowrl->ausbildungssemester>49) { - $qry_chk="SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id=".myaddslashes($rowall->prestudent_id)." AND studiensemester_kurzbz=".myaddslashes($rowrl->studiensemester_kurzbz).";"; + $error_log.="\n*****\n".$rowall->__person." - ".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname)." (Prestudent ".$rowall->prestudent_id.")"; + $error_log.="\nAusbildungssemester = ".$rowrl->ausbildungssemester." !"; + $fehler++; + } + else + { + $beginnsem=getStudiensemesterFromDatum($conn, $rowall->daeintrittdat, true); + $ausgabe.="\n*****\n".$rowall->__person." - ".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname).": ".$rowall->daeintrittdat."/".$beginnsem." (Prestudent ".$rowall->prestudent_id.")"; + while (array_search($rowrl->studiensemester_kurzbz, $studiensemester)>=array_search($beginnsem, $studiensemester)) + { + $qry_chk="SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id=".myaddslashes($rowall->prestudent_id)." AND studiensemester_kurzbz=".myaddslashes($rowrl->studiensemester_kurzbz).";"; + if($resultchk = pg_query($conn,$qry_chk)) + { + if(pg_num_rows($resultchk)==0) + { + //INSERT Prestudentrolle + if($rowrl->studiensemester_kurzbz==$beginnsem) + { + $rowrl->datum=$rowall->daeintrittdat; + } + $qry_ins="INSERT INTO public.tbl_prestudentrolle (prestudent_id, rolle_kurzbz, + studiensemester_kurzbz, ausbildungssemester,datum, orgform_kurzbz, + insertamum, insertvon, updateamum, updatevon, ext_id) + VALUES (". + myaddslashes($rowall->prestudent_id).", + 'Student', ". + myaddslashes($rowrl->studiensemester_kurzbz).", ". + myaddslashes($rowrl->ausbildungssemester).", ". + myaddslashes($rowrl->datum).", ". + myaddslashes($rowrl->orgform_kurzbz).", + now(), 'SYNC', NULL, NULL, NULL)"; + if(!$resultins = pg_query($conn,$qry_ins)) + { + $fehler++; + $error_log.="\n*****\n".$rowall->__person." - ".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname).": ".$rowall->daeintrittdat; + $error_log.= "\n".$qry_ins."\n".pg_last_error($conn)."\n"; + } + else + { + $eingefuegt++; + $ausgabe.="\n---".$rowrl->studiensemester_kurzbz.", ".$rowrl->ausbildungssemester.". Semester, Student, ".$rowrl->datum; + } + } + } + //werte für voriges semester ändern!!! + //studiensemester, ausbildungssemester, datum + if(array_search($rowrl->studiensemester_kurzbz, $studiensemester)-1>=array_search($beginnsem,$studiensemester)) + { + $rowrl->studiensemester_kurzbz=$studiensemester[array_search($rowrl->studiensemester_kurzbz, $studiensemester)-1]; + //ausbildungssemester nicht kleiner als 1 + if($rowrl->ausbildungssemester>1) + { + $rowrl->ausbildungssemester=$rowrl->ausbildungssemester-1; + } + else + { + $rowrl->ausbildungssemester=1; + } + $rowrl->datum=$semstart[$rowrl->studiensemester_kurzbz]; + } + else + { + break; + } + } + //Interessent (6Mon.) und Bewerber (4Mon.) eintragen + if($rowrl->studiensemester_kurzbz==$beginnsem) + { + $rowrl->datum=$rowall->daeintrittdat; + } + $qry_chk="SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id=".myaddslashes($rowall->prestudent_id)." AND rolle_kurzbz='Bewerber';"; if($resultchk = pg_query($conn,$qry_chk)) { if(pg_num_rows($resultchk)==0) { - //INSERT Prestudentrolle $qry_ins="INSERT INTO public.tbl_prestudentrolle (prestudent_id, rolle_kurzbz, studiensemester_kurzbz, ausbildungssemester,datum, orgform_kurzbz, insertamum, insertvon, updateamum, updatevon, ext_id) VALUES (". - myaddslashes($prestudent_id).", - 'Student', ". + myaddslashes($rowall->prestudent_id).", + 'Bewerber', ". myaddslashes($rowrl->studiensemester_kurzbz).", ". - myaddslashes($rowrl->ausbildungssemester).", - now(), ". - myaddslashes($rowrl->orgform).", - now(), - 'SYNC', - NULL, - NULL, - NULL)"; + myaddslashes($rowrl->ausbildungssemester).", ". + myaddslashes($new_date = date('Y-m-d', strtotime($rowrl->datum.' -4 months'))).", ". + myaddslashes($rowrl->orgform_kurzbz).", + now(), 'SYNC', NULL, NULL, NULL)"; if(!$resultins = pg_query($conn,$qry_ins)) { $fehler++; - $error_log.= $sql."\n".pg_last_error($conn)." \n"; + $error_log.="\n*****\n".$rowall->__person." - ".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname).": ".$rowall->daeintrittdat; + $error_log.= "\n".$qry_ins."\n".pg_last_error($conn)." \n"; + } + else + { + $eingefuegt++; + $ausgabe.="\n---".$rowrl->studiensemester_kurzbz.", ".$rowrl->ausbildungssemester.". Semester, Bewerber, ".$new_date = date('Y-m-d', strtotime($rowrl->datum.' -4 months')); + } + } + } + $qry_chk="SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id=".myaddslashes($rowall->prestudent_id)." AND rolle_kurzbz='Interessent';"; + if($resultchk = pg_query($conn,$qry_chk)) + { + if(pg_num_rows($resultchk)==0) + { + $qry_ins="INSERT INTO public.tbl_prestudentrolle (prestudent_id, rolle_kurzbz, + studiensemester_kurzbz, ausbildungssemester,datum, orgform_kurzbz, + insertamum, insertvon, updateamum, updatevon, ext_id) + VALUES (". + myaddslashes($rowall->prestudent_id).", + 'Interessent', ". + myaddslashes($rowrl->studiensemester_kurzbz).", ". + myaddslashes($rowrl->ausbildungssemester).", ". + myaddslashes($new_date = date('Y-m-d', strtotime($rowrl->datum.' -6 months'))).", ". + myaddslashes($rowrl->orgform_kurzbz).", + now(), 'SYNC', NULL, NULL, NULL)"; + if(!$resultins = pg_query($conn,$qry_ins)) + { + $fehler++; + $error_log.="\n*****\n".$rowall->__person." - ".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname).": ".$rowall->daeintrittdat; + $error_log.= "\n".$qry_ins."\n".pg_last_error($conn)." \n"; + } + else + { + $eingefuegt++; + $ausgabe.="\n---".$rowrl->studiensemester_kurzbz.", ".$rowrl->ausbildungssemester.". Semester, Interessent, ".$new_date = date('Y-m-d', strtotime($rowrl->datum.' -6 months')); } } } } - //Interessent (6Mon.) und Bewerber (4Mon.) eintragen - } } else { $fehler++; - $error_log.= "\n".$sql."\n".pg_last_error($conn)." \n"; + $error_log.= "\n".$qry_rl."\n".pg_last_error($conn)."\n"; } - - } } +echo nl2br($ausgabe); + +mail($adress, 'SYNC-Fehler StP-Prestudentrollen von '.$_SERVER['HTTP_HOST'], $error_log,"From: nsc@fhstp.ac.at"); + +mail($adress, 'SYNC StP-Prestudentrollen von '.$_SERVER['HTTP_HOST'], "Sync Person\n------------\n\n" +."Personen: Gesamt: ".$anzahl_gesamt." / Fehler: ".$fehler." / Eingefügte Rollen: ".$eingefuegt +."\n\nBeginn: ".$start."\nEnde: ".date("d.m.Y H:i:s")."\n\n".$ausgabe, "From: nsc@fhstp.ac.at"); ?> \ No newline at end of file diff --git a/system/sync/stp/sync_stp_vilesci_kontakte.php b/system/sync/stp/sync_stp_vilesci_kontakte.php index f269f3e00..fa6155042 100644 --- a/system/sync/stp/sync_stp_vilesci_kontakte.php +++ b/system/sync/stp/sync_stp_vilesci_kontakte.php @@ -299,13 +299,13 @@ else echo nl2br($error_log); } echo nl2br($ausgabe); -/* + mail($adress, 'SYNC-Fehler StP-Adresse von '.$_SERVER['HTTP_HOST'], $error_log,"From: nsc@fhstp.ac.at"); mail($adress, 'SYNC StP-Adresse von '.$_SERVER['HTTP_HOST'], "Sync Person\n------------\n\n" ."Personen: Gesamt: ".$anzahl_person_gesamt." / Eingefügt: ".$eingefuegt." / Updates: ".$updates." / Fehler: ".$fehler ."\n\nBeginn: ".$start."\nEnde: ".date("d.m.Y H:i:s")."\n\n".$ausgabe.$log_updates, "From: nsc@fhstp.ac.at"); -*/ + ?>