This commit is contained in:
Rudolf Hangl
2008-01-02 14:44:27 +00:00
parent c49603154b
commit 16c62d5230
2 changed files with 136 additions and 29 deletions
+134 -27
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2007 Technikum-Wien
/* Copyright (C) 2008 Technikum-Wien
*
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
@@ -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();
<?php
$start=date("d.m.Y H:i:s");
$qry="SELECT * FROM public.tbl_studiensemester ORDER BY start;";
if($result = pg_query($conn,$qry))
{
while($row=pg_fetch_object($result))
{
$studiensemester[$i]=$row->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<strong>".pg_last_error($conn)." </strong>\n";
$error_log.="\n*****\n".$rowall->__person." - ".trim($rowall->chtitel)." ".trim($rowall->chnachname).", ".trim($rowall->chvorname).": ".$rowall->daeintrittdat;
$error_log.= "\n".$qry_ins."\n<strong>".pg_last_error($conn)." </strong>\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<strong>".pg_last_error($conn)." </strong>\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<strong>".pg_last_error($conn)." </strong>\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");
?>
</body>
</html>
@@ -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");
*/
?>
</body>