mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 17:02:19 +00:00
This commit is contained in:
@@ -0,0 +1,271 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 Technikum-Wien
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
//*
|
||||
//* Synchronisiert Kontodatensaetze von FAS DB in PORTAL DB
|
||||
//*
|
||||
//*
|
||||
|
||||
require_once('../../../vilesci/config.inc.php');
|
||||
require_once('../../../include/konto.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
|
||||
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen");
|
||||
|
||||
$adress='ruhan@technikum-wien.at';
|
||||
//$adress='fas_sync@technikum-wien.at';
|
||||
|
||||
$error_log='';
|
||||
$text = '';
|
||||
$anzahl_quelle=0;
|
||||
$anzahl_eingefuegt=0;
|
||||
$anzahl_vorhanden=0;
|
||||
$anzahl_fehler=0;
|
||||
$ausgabe='';
|
||||
$ausgabe_adresse='';
|
||||
$update=false;
|
||||
|
||||
|
||||
/*************************
|
||||
* FAS-PORTAL - Synchronisation
|
||||
*/
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Synchro - FAS -> Vilesci - Konto</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
//konto
|
||||
|
||||
//studiensemester
|
||||
$qry="SELECT studiensemester_kurzbz, ext_id FROM public.tbl_studiensemester;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$studiensemester[$row->ext_id]=$row->studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
$qry="SELECT studiengang_kz, ext_id FROM public.tbl_studiengang WHERE ext_id IS NOT NULL;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$studiengang[$row->ext_id]=$row->studiengang_kz;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$qry="SELECT *, student_zahlung.creationuser as cuser, student_zahlung.creationdate as cdate
|
||||
FROM student_zahlung, zahlung WHERE student_zahlung.zahlung_fk=zahlung.zahlung_pk ;";
|
||||
if($result = pg_query($conn_fas, $qry))
|
||||
{
|
||||
echo "Konto Sync<br>--------------<br>";
|
||||
echo "Beginn: ".date("d.m.Y H:i:s")." von ".$_SERVER['HTTP_HOST']."<br><br>";
|
||||
$anzahl_quelle=pg_num_rows($result);
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$error=false;
|
||||
$konto =new konto($conn);
|
||||
//$konto->person_id ='';
|
||||
//$konto->studiengang_kz ='';
|
||||
$konto->studiensemester_kurzbz =getStudiensemesterFromDatum($conn, $row->bezahltam, true);
|
||||
//$konto->buchungsnr_verweis ='';
|
||||
$betrag =$row->betrag;
|
||||
$konto->buchungsdatum =$row->bezahltam;
|
||||
$konto->buchungstext =$row->name;
|
||||
$konto->buchungstyp_kurzbz ='Sonstiges';
|
||||
$konto->mahnspanne ='30';
|
||||
$konto->updateamum =date("Y-m-d H:i:s");
|
||||
$konto->updatevon ="SYNC";
|
||||
$konto->insertamum =$row->cdate;
|
||||
$konto->insertvon =$row->cuser;
|
||||
$konto->ext_id ='';
|
||||
|
||||
$konto->new=false;
|
||||
|
||||
//ext_id "basteln": soll aus student_fk und dreistelliger zahlung_fk bestehen
|
||||
if(strlen(trim($row->zahlung_fk))==1)
|
||||
{
|
||||
$konto->ext_id=trim($row->student_fk)."00".trim($row->zahlung_fk);
|
||||
}
|
||||
elseif(strlen(trim($row->zahlung_fk))==2)
|
||||
{
|
||||
$konto->ext_id=trim($row->student_fk)."0".trim($row->zahlung_fk);
|
||||
}
|
||||
elseif(strlen(trim($row->zahlung_fk))==3)
|
||||
{
|
||||
$konto->ext_id=trim($row->student_fk).trim($row->zahlung_fk);
|
||||
}
|
||||
$qry="SELECT * FROM public.tbl_konto WHERE ext_id='".$konto->ext_id."';";
|
||||
if($result3 = pg_query($conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result3)>0) //kontobewegung bereits eingetragen
|
||||
{
|
||||
//eintrag bereits vorhanden
|
||||
$konto->new=false;
|
||||
//$ausgabe.="Eintrag bereits vorhanden! ('".$row->name."' - '".$row->student_fk."')\n";
|
||||
//echo "Eintrag bereits vorhanden! ('".$row->name."' - '".$row->student_fk."')<br>";
|
||||
$anzahl_vorhanden++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//insertvon ermitteln
|
||||
$qrycu="SELECT name FROM benutzer WHERE benutzer_pk='".$row->creationuser."';";
|
||||
if($resultcu = pg_query($conn_fas, $qrycu))
|
||||
{
|
||||
if($rowcu=pg_fetch_object($resultcu))
|
||||
{
|
||||
$konto->insertvon=$rowcu->name;
|
||||
}
|
||||
}
|
||||
//person_id herausfinden
|
||||
$qry="SELECT person_fk, studiengang_fk FROM student WHERE student_pk='".$row->student_fk."';";
|
||||
if($result2 = pg_query($conn_fas, $qry))
|
||||
{
|
||||
if(pg_num_rows($result2)>0) //eintrag gefunden
|
||||
{
|
||||
if($row2=pg_fetch_object($result2))
|
||||
{
|
||||
$konto->studiengang_kz=$studiengang[$row2->studiengang_fk];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//person nicht gefunden
|
||||
$anzahl_fehler++;
|
||||
$error_log.="Person mit student_fk '".$row->student_fk."' nicht in Tabelle 'student' gefunden.\n";
|
||||
echo "Person mit student_fk '".$row->student_fk."' nicht in Tabelle 'student' gefunden.<br>";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$qry1="SELECT person_portal FROM sync.tbl_syncperson WHERE person_fas=".$row2->person_fk.";";
|
||||
if($result1 = pg_query($conn, $qry1))
|
||||
{
|
||||
if(pg_num_rows($result1)>0) //person gefunden
|
||||
{
|
||||
if($row1=pg_fetch_object($result1))
|
||||
{
|
||||
$konto->person_id=$row1->person_portal;
|
||||
$konto->new=true; //vorhandene Einträge wurden bereits übersprungen
|
||||
}
|
||||
else
|
||||
{
|
||||
$ausgabe.="Person mit person_pk '".$row2->person_fk."' in tbl_syncperson nicht gefunden.\n";
|
||||
echo "Person mit person_pk '".$row2->person_fk."' in tbl_syncperson nicht gefunden.<br>";
|
||||
$anzahl_fehler++;
|
||||
$error=true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$ausgabe.="Person mit person_pk '".$row2->person_fk."' in tbl_syncperson nicht gefunden!\n";
|
||||
echo "Person mit person_pk '".$row2->person_fk."' in tbl_syncperson nicht gefunden!<br>";
|
||||
$anzahl_fehler++;
|
||||
$error=true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error=true;
|
||||
$error_log.="Fehler beim Zugriff auf tbl_syncperson bei Person mit person_pk '".$row2->person_fk."'!\n";
|
||||
echo "Fehler beim Zugriff auf tbl_syncperson bei Person mit person_pk '".$row2->person_fk."'!<br>";
|
||||
$anzahl_fehler++;
|
||||
}
|
||||
if(!$error)
|
||||
{
|
||||
if($konto->new)
|
||||
{
|
||||
if($row->art==1)
|
||||
{
|
||||
//Buchung1 - Belastung
|
||||
$konto->buchungsnr_verweis=null;
|
||||
$konto->betrag='-'.$betrag;
|
||||
if(!$konto->save())
|
||||
{
|
||||
$error_log.=$konto->errormsg."\n";
|
||||
echo $konto->errormsg."<br>";
|
||||
$anzahl_fehler++;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Buchung2 - Zahlung
|
||||
$konto->buchungsnr_verweis=$konto->buchungsnr;
|
||||
$konto->buchungsnr='';
|
||||
$konto->betrag=$betrag;
|
||||
if(!$konto->save())
|
||||
{
|
||||
$error_log.=$konto->errormsg."\n";
|
||||
echo $konto->errormsg."<br>";
|
||||
$anzahl_fehler++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ausgabe.="Buchung (e) von Person '".$konto->person_id."' mit Zahlung '".$row->zahlung_fk."', Text '".$konto->buchungstext."' und Betrag €".$konto->betrag." eingefügt.\n";
|
||||
echo "Buchung (e) von Person '".$konto->person_id."' mit Zahlung '".$row->zahlung_fk."', Text '".$konto->buchungstext."' und Betrag €".$konto->betrag." eingefügt.<br>";
|
||||
$anzahl_eingefuegt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($row->art==2)
|
||||
{
|
||||
//Buchung1 - Gutschrift
|
||||
$konto->betrag=$betrag;
|
||||
$konto->buchungsnr_verweis=null;
|
||||
if(!$konto->save())
|
||||
{
|
||||
$error_log.=$konto->errormsg."\n";
|
||||
echo $konto->errormsg."<br>";
|
||||
$anzahl_fehler++;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Buchung2 - Zahlung
|
||||
$konto->buchungsnr_verweis=$konto->buchungsnr;
|
||||
$konto->buchungsnr='';
|
||||
$konto->betrag='-'.$betrag;
|
||||
if(!$konto->save())
|
||||
{
|
||||
$error_log.=$konto->errormsg."\n";
|
||||
echo $konto->errormsg."<br>";
|
||||
$anzahl_fehler++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ausgabe.="Buchung (a) von Person '".$konto->person_id."' mit Zahlung '".$row->zahlung_fk."', Text '".$konto->buchungstext."' und Betrag €".$betrag." eingefügt.\n";
|
||||
echo "Buchung (a) von Person '".$konto->person_id."' mit Zahlung '".$row->zahlung_fk."', Text '".$konto->buchungstext."' und Betrag €".$betrag." eingefügt.<br>";
|
||||
$anzahl_eingefuegt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "-------------------------------------------------------------------------------------------------------------------------------<br><br>";
|
||||
echo "Ende: ".date("d.m.Y H:i:s")." von ".$_SERVER['HTTP_HOST']."<br><br>";
|
||||
//echo nl2br($error_log);
|
||||
echo nl2br("\nZahlungen\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / bereits vorhanden: $anzahl_vorhanden / Fehler: $anzahl_fehler");
|
||||
$ausgabe="\nZahlungen\nGesamt: ".$anzahl_quelle." / Eingefügt: ".$anzahl_eingefuegt." / bereits vorhanden: ".$anzahl_vorhanden." / Fehler: ". $anzahl_fehler."\n\n".$ausgabe;
|
||||
if(strlen(trim($error_log))>0)
|
||||
{
|
||||
mail($adress, 'SYNC-Fehler Konto von '.$_SERVER['HTTP_HOST'], $error_log,"From: vilesci@technikum-wien.at");
|
||||
}
|
||||
mail($adress, 'SYNC Konto von '.$_SERVER['HTTP_HOST'], $ausgabe,"From: vilesci@technikum-wien.at");
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user