diff --git a/admin/sync/fas/sync_fas_portal_adresse.php b/admin/sync/fas/sync_fas_portal_adresse.php index df1761067..f49d08bee 100644 --- a/admin/sync/fas/sync_fas_portal_adresse.php +++ b/admin/sync/fas/sync_fas_portal_adresse.php @@ -187,7 +187,9 @@ if($result = pg_query($conn_fas, $qry)) echo nl2br($error_log); echo nl2br("\nAdresse\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); echo nl2br("\nFirma\nGesamt: $anzahl_quelle2 / Eingefügt: $anzahl_eingefuegt2 / Fehler: $anzahl_fehler2"); - +$error_log.="\nAdresse\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +$error_log.="\nFirma\nGesamt: $anzahl_quelle2 / Eingefügt: $anzahl_eingefuegt2 / Fehler: $anzahl_fehler2"; +mail($adress, 'SYNC Adresse', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_aufmerksamdurch.php b/admin/sync/fas/sync_fas_portal_aufmerksamdurch.php index 17af700f2..2f259c884 100644 --- a/admin/sync/fas/sync_fas_portal_aufmerksamdurch.php +++ b/admin/sync/fas/sync_fas_portal_aufmerksamdurch.php @@ -114,7 +114,8 @@ if($result = pg_query($conn_fas, $qry)) //echo nl2br($text); echo nl2br($error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Aufmerksamdurch', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_email.php b/admin/sync/fas/sync_fas_portal_email.php index 46cbffe82..c4c48d5d4 100644 --- a/admin/sync/fas/sync_fas_portal_email.php +++ b/admin/sync/fas/sync_fas_portal_email.php @@ -137,7 +137,8 @@ if($result = pg_query($conn_fas, $qry)) //echo nl2br($text); echo nl2br("\n".$error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Email', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_fachbereich.php b/admin/sync/fas/sync_fas_portal_fachbereich.php index ab8719bba..2e651a624 100644 --- a/admin/sync/fas/sync_fas_portal_fachbereich.php +++ b/admin/sync/fas/sync_fas_portal_fachbereich.php @@ -120,7 +120,8 @@ else //echo nl2br($text); echo nl2br($error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Fachbereich', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_mitarbeiter.php b/admin/sync/fas/sync_fas_portal_mitarbeiter.php index 976a6456a..a49a281b6 100644 --- a/admin/sync/fas/sync_fas_portal_mitarbeiter.php +++ b/admin/sync/fas/sync_fas_portal_mitarbeiter.php @@ -31,21 +31,34 @@ require_once('../../../include/mitarbeiter.class.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_fehler=0; // *********************************** // * VILESCI->PORTAL - Synchronisation // *********************************** +?> + + +Synchro - Vilesci -> Portal - Mitarbeiter + + + + - - -Synchro - Vilesci -> Portal - Mitarbeiter - - - - diff --git a/admin/sync/fas/sync_fas_portal_nation.php b/admin/sync/fas/sync_fas_portal_nation.php index 01388a619..5c1087514 100644 --- a/admin/sync/fas/sync_fas_portal_nation.php +++ b/admin/sync/fas/sync_fas_portal_nation.php @@ -94,7 +94,8 @@ if($result = pg_query($conn_fas, $qry)) //echo nl2br($text); echo nl2br($error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Personen', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_person.php b/admin/sync/fas/sync_fas_portal_person.php new file mode 100644 index 000000000..198f56373 --- /dev/null +++ b/admin/sync/fas/sync_fas_portal_person.php @@ -0,0 +1,227 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Synchronisiert Personendatensaetze von FAS DB in PORTAL DB +//* +//* +//* setzt voraus: sync von tbl_nation, tbl_sprache +//* benötigt: tbl_syncperson + +include('../../../vilesci/config.inc.php'); +include('../../../include/person.class.php'); + +$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen"); +//$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die("Connection zur Vilesci Datenbank fehlgeschlagen"); +$conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen"); + +//set_time_limit(60); + +$adress='ruhan@technikum-wien.at; oesi@technikum-wien.at; pam@technikum-wien.at'; +//$adress='fas_sync@technikum-wien.at'; + +$error_log=''; +$text = ''; +$anzahl_quelle=0; +$anzahl_eingefuegt=0; +$anzahl_fehler=0; + + +/************************* + * FAS-PORTAL - Synchronisation + */ +?> + + +Synchro - FAS -> Portal - Person + + + + +geburtsnation=$row->gebnation; + $person->anrede=trim($row->anrede); + $person->titelpost=trim($row->postnomentitel); + $person->titelpre=trim($row->titel); + $person->nachname=trim($row->familienname); + $person->vorname=trim($row->vorname); + $person->vornamen=trim($row->vornamen); + $person->gebdatum=$row->gebdat; + $person->gebort=$row->gebort; + $person->anmerkungen=$row->bemerkung; + $person->svnr=$row->svnr; + $person->ersatzkennzeichen=$row->ersatzkennzeichen; + $person->familienstand=$row->familienstand; + $person->anzahlkinder=$row->anzahlderkinder; + $person->staatsbuergerschaft=$row->staatsbuergerschaft; + $person->geschlecht=strtolower($row->geschlecht); + $person->ext_id=$row->person_pk; + $person->aktiv=true; + $person->updatevon='SYNC'; + $person->insertvon='SYNC'; + + + if($row->familienstand==1) + { + $person->familienstand='l'; + } + elseif($row->familienstand==2) + { + $person->familienstand=='v'; + } + elseif($row->familienstand==3) + { + $person->familienstand=='g'; + } + elseif($row->familienstand==4) + { + $person->familienstand=='w'; + } + else + { + $person->familienstand=null; + } + if ($person->geschlecht=='') + { + $person->geschlecht='m'; + } + + $error=false; + + $qry="SELECT person_id FROM public.tbl_benutzer WHERE uid='$row->uid'"; + if($resultu = pg_query($conn, $qry)) + { + if(pg_num_rows($resultu)>0 && $row->uid!='') //wenn dieser eintrag schon vorhanden ist + { + if($rowu=pg_fetch_object($resultu)) + { + //update + $person->person_id=$rowu->person_id; + $person->new=false; + } + else + { + $error=true; + $error_log.="benutzer von $row->uid konnte nicht ermittelt werden\n"; + } + } + else + { + $qry="SELECT person_fas, person_portal FROM public.tbl_syncperson WHERE person_fas='$row->person_pk'"; + if($result1 = pg_query($conn, $qry)) + { + if(pg_num_rows($result1)>0) //wenn dieser eintrag schon vorhanden ist + { + if($row1=pg_fetch_object($result1)) + { + //update + $person->person_id=$row1->person_portal; + $person->new=false; + } + else + { + $error=true; + $error_log.="person von $row->person_pk konnte nicht ermittelt werden\n"; + } + } + else + { + //vergleich svnr und ersatzkennzeichen + $qry="SELECT person_id, nachname, vorname FROM public.tbl_person + WHERE ('$row->svnr' is not null AND '$row->svnr' <> '' AND svnr = '$row->svnr') + OR ('$row->ersatzkennzeichen' is not null AND '$row->ersatzkennzeichen' <> '' AND ersatzkennzeichen = '$row->ersatzkennzeichen')"; + if($resultz = pg_query($conn, $qry)) + { + if(pg_num_rows($resultz)>0) //wenn dieser eintrag schon vorhanden ist + { + if($rowz=pg_fetch_object($resultz)) + { + $person->new=false; + $person->person_id=$rowz->person_id; + if($rowz->nachname!=$row->nachname || $rowz->vorname!=$row-vorname) + { + $error=true; + $error_log.="Person mit SVNr: ".$row->svnr." oder Ersatzkennzeichen: ".$row->ersatzkennzeichen." heißt ".$row->vorname." ".$row->nachname."."; + $error_log.="\nPerson in der Datenbank heißt aber: ".$rowz->vorname." ".$rowz->nachname."."; + } + + } + else + { + $error=true; + $error_log.="person mit svnr: $row->svnr bzw. ersatzkennzeichen: $row->ersatzkennzeichen konnte nicht ermittelt werden (".pg_num_rows($resultz).")\n"; + } + } + else + { + //insert + $person->new=true; + //echo nl2br("insert von ".$row->uid.", ".$row->familienname."\n"); + } + } + } + } + } + + if(!$error) + { + if(!$person->save()) + { + $error_log.=$person->errormsg."\n"; + $anzahl_fehler++; + } + else + { + //überprüfen, ob eintrag schon vorhanden + $qryz="SELECT person_fas FROM tbl_syncperson WHERE person_fas='$row->person_pk' AND person_portal='$person->person_id'"; + if($resultz = pg_query($conn, $qryz)) + { + if(pg_num_rows($resultz)==0) //wenn dieser eintrag noch nicht vorhanden ist + { + $qry='INSERT INTO tbl_syncperson (person_fas, person_portal)'. + 'VALUES ('.$row->person_pk.', '.$person->person_id.');'; + pg_query($conn, $qry); + } + } + $anzahl_eingefuegt++; + echo "- "; + ob_flush(); + flush(); + } + } + else + { + $anzahl_fehler++; + } + } + } + echo nl2br("abgeschlossen\n\n"); +} +else + $error_log .= 'Personendatensaetze konnten nicht geladen werden'; + + + +//echo nl2br($text); +echo nl2br("\n".$error_log); +echo nl2br("\n\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); +$error_log="Person Sync\n-------------\n\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler\n\n".$error_log; +mail($adress, 'SYNC Personen', $error_log); +?> + + \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_reihungstest.php b/admin/sync/fas/sync_fas_portal_reihungstest.php index 441a728c9..c706a1996 100644 --- a/admin/sync/fas/sync_fas_portal_reihungstest.php +++ b/admin/sync/fas/sync_fas_portal_reihungstest.php @@ -128,7 +128,8 @@ if($result = pg_query($conn_fas, $qry)) //echo nl2br($text); echo nl2br($error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Reihungstest', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_schluessel.php b/admin/sync/fas/sync_fas_portal_schluessel.php index dd9e69507..da3d3258a 100644 --- a/admin/sync/fas/sync_fas_portal_schluessel.php +++ b/admin/sync/fas/sync_fas_portal_schluessel.php @@ -1,19 +1,5 @@ , * Andreas Oesterreicher and @@ -26,7 +12,8 @@ //* include('../../../vilesci/config.inc.php'); -include('../../../include/schluessel.class.php'); +include('../../../include/betriebsmittel.class.php'); +include('../../../include/betriebsmittelperson.class.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"); @@ -34,12 +21,14 @@ $conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlg $adress='ruhan@technikum-wien.at'; //$adress='fas_sync@technikum-wien.at'; -$error_log=''; +$error_log = ''; $text = ''; -$anzahl_quelle=0; -$anzahl_eingefuegt=0; -$anzahl_fehler=0; -$krit=''; +$anzahl_quelle = 0; +$anzahl_eingefuegt = 0; +$anzahl_eingefuegt2 = 0; +$anzahl_fehler = 0; +$anzahl_fehler2 = 0; +$krit = ''; function validate($row) { @@ -71,16 +60,28 @@ if($result = pg_query($conn_fas, $qry)) flush(); $error=false; - $schluessel =new schluessel($conn); - $schluessel->person_id =''; - $schluessel->schluesseltyp =''; - $schluessel->nummer =$row->nummer; - $schluessel->kaution =$row->betrag; - $schluessel->ausgegebenam =date('Y-m-d',strtotime(strftime($row->verliehenam))); - $schluessel->updatevon ="SYNC"; - $schluessel->insertvon ="SYNC"; - $schluessel->ext_id =$row->schluessel_fk; + $betriebsmittel =new betriebsmittel($conn); + //$betriebsmittel->betriebsmittel_id =''; + $betriebsmittel->beschreibung =''; + //$betriebsmittel->betriebsmitteltyp =''; + $betriebsmittel->nummer =$row->nummer; + $betriebsmittel->reservieren =false; + $betriebsmittel->ort_kurzbz =null; + $betriebsmittel->updatevon ="SYNC"; + $betriebsmittel->insertvon ="SYNC"; + $betriebsmittel->ext_id =$row->schluessel_fk; + $betriebsmittelperson =new betriebsmittelperson($conn); + //$betriebsmittelperson->betriebsmittel_id =''; + //$betriebsmittelperson->person_id =''; + $betriebsmittelperson->anmerkung =''; + $betriebsmittelperson->kaution =$row->betrag; + $betriebsmittelperson->ausgegebenam =date('Y-m-d',strtotime(strftime($row->verliehenam))); + $betriebsmittelperson->retouram =''; + $betriebsmittelperson->updatevon ="SYNC"; + $betriebsmittelperson->insertvon ="SYNC"; + $betriebsmittelperson->ext_id =$row->schluessel_fk; + //Person_id feststellen $qry1="SELECT person_portal FROM public.tbl_syncperson WHERE person_fas=".$row->person_fk.";"; if($result1 = pg_query($conn, $qry1)) @@ -89,18 +90,18 @@ if($result = pg_query($conn_fas, $qry)) { if($row1=pg_fetch_object($result1)) { - $schluessel->person_id=$row1->person_portal; + $betriebsmittelperson->person_id=$row1->person_portal; //Schlüsseltyp feststellen - $qry2="SELECT * FROM tbl_syncschluesseltyp WHERE fas_typ='".$row->schluessel_fk."';"; + $qry2="SELECT * FROM public.tbl_syncschluesseltyp WHERE fas_typ='".$row->schluessel_fk."';"; if($result2 = pg_query($conn, $qry2)) { if(pg_num_rows($result2)>0) //eintrag gefunden { if($row2=pg_fetch_object($result2)) { - $schluessel->schluesseltyp=$row2->portal_typ; + $betriebsmittel->betriebsmitteltyp=$row2->portal_typ; //Insert oder Update - $qry3="SELECT schluessel_id FROM tbl_schluessel WHERE ext_id=".$row->schluessel_fk.";"; + $qry3="SELECT betriebsmittel_id FROM public.tbl_betriebsmittel WHERE ext_id=".$row->schluessel_fk.";"; if($result3 = pg_query($conn, $qry3)) { if(pg_num_rows($result3)>0) //eintrag gefunden @@ -108,14 +109,23 @@ if($result = pg_query($conn_fas, $qry)) if($row3=pg_fetch_object($result3)) { // update , wenn datensatz bereits vorhanden - $schluessel->schluessel_id=$row3->schluessel_id; - $schluessel->new=false; + $betriebsmittel->betriebsmittel_id=$row3->betriebsmittel_id; + $betriebsmittelperson->betriebsmittel_id=$row3->betriebsmittel_id; + $betriebsmittel->new=false; } } else { // insert, wenn datensatz noch nicht vorhanden - $schluessel->new=true; + $betriebsmittel->new=true; + $qry = "SELECT nextval('public.tbl_betriebsmittel_betriebsmittel_id_seq') as id;"; + if(!$row = pg_fetch_object(pg_query($conn, $qry))) + { + $error_log.= '\nFehler beim Auslesen der Betriebsmittel-Sequence'; + $error=true; + } + $betriebsmittel->betriebsmittel_id=$row->id; + $betriebsmittelperson->betriebsmittel_id=$row->id; } } } @@ -123,13 +133,13 @@ if($result = pg_query($conn_fas, $qry)) else { // insert, wenn datensatz noch nicht vorhanden - $schluessel->new=true; + $betriebsmittel->new=true; } } else { $error=true; - $error_log.="schluesseltyp mit schluessel_fk: $row->schluessel_fk konnte in tbl_schluesseltyp nicht gefunden werden! (".pg_num_rows($result1).")\n"; + $error_log.="betriebsmitteltyp mit schluessel_fk: $row->schluessel_fk konnte in tbl_betriebsmitteltyp nicht gefunden werden! \n"; $anzahl_fehler++; } } @@ -137,20 +147,63 @@ if($result = pg_query($conn_fas, $qry)) else { $error=true; - $error_log.="person mit person_fk: $row->person_fk konnte in tbl_syncperson nicht gefunden werden! (".pg_num_rows($result1).")\n"; + $error_log.="\nperson mit person_fk: $row->person_fk konnte in tbl_syncperson nicht gefunden werden! "; $anzahl_fehler++; } } If (!$error) { - if(!$schluessel->save()) + pg_query($conn,"BEGIN"); + if(!$betriebsmittel->save()) { - $error_log.=$schluessel->errormsg."\n"; + $error_log.=$betriebsmittel->errormsg."\n"; $anzahl_fehler++; + pg_query($conn,"ROLLBACK"); } else { $anzahl_eingefuegt++; + //insert oder update? + $qry3="SELECT betriebsmittel_id, person_id FROM public.tbl_betriebsmittelperson WHERE betriebsmittel_id=".$betriebsmittel->betriebsmittel_id." AND person_id=".$betriebsmittelperson->person_id.";"; + if($result3 = pg_query($conn, $qry3)) + { + if(pg_num_rows($result3)>0) //eintrag gefunden + { + if($row3=pg_fetch_object($result3)) + { + // update , wenn datensatz bereits vorhanden + $betriebsmittelperson->new=false; + } + } + else + { + // insert, wenn datensatz noch nicht vorhanden + $betriebsmittelperson->new=true; + } + } + else + { + $error=true; + $error_log.="\nFehler beim Zugriff auf tbl_betreibsmittelperson."; + } + if (!$error) + { + if(!$betriebsmittelperson->save()) + { + $error_log.=$betriebsmittel->errormsg."\n"; + $anzahl_fehler2++; + pg_query($conn,"ROLLBACK"); + } + else + { + $anzahl_eingefuegt2++; + pg_query($conn,"COMMIT"); + } + } + else + { + pg_query($conn, "ROLLBACK"); + } } } } @@ -159,9 +212,13 @@ if($result = pg_query($conn_fas, $qry)) //echo nl2br($text); -echo nl2br($error_log); +echo nl2br("\n\n".$error_log); +echo nl2br("\n"."Betriebsmittel:"); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +echo nl2br("\n"."Betriebsmittelperson:"); +echo nl2br("\nGesamt: $anzahl_eingefügt / Eingefügt: $anzahl_eingefuegt2 / Fehler: $anzahl_fehler2"); +$error_log="\nBetriebsmittel: \nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler\nBetriebsmittelperson: \nGesamt: $anzahl_eingefügt / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler\n".$error_log; +mail($adress, 'SYNC Schluessel', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_schluesseltyp.php b/admin/sync/fas/sync_fas_portal_schluesseltyp.php index db764482f..eb1bbbb12 100644 --- a/admin/sync/fas/sync_fas_portal_schluesseltyp.php +++ b/admin/sync/fas/sync_fas_portal_schluesseltyp.php @@ -1,19 +1,5 @@ , * Andreas Oesterreicher and @@ -26,12 +12,12 @@ //* include('../../../vilesci/config.inc.php'); -include('../../../include/schluesseltyp.class.php'); +include('../../../include/betriebsmitteltyp.class.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='ruhan@technikum-wien.at; oesi@technikum-wien.at; pam@technikum-wien.at'; //$adress='fas_sync@technikum-wien.at'; $error_log=''; @@ -70,38 +56,38 @@ if($result = pg_query($conn_fas, $qry)) flush(); $error=false; - $schluesseltyp =new schluesseltyp($conn); - $schluesseltyp->beschreibung =$row->name; - $schluesseltyp->anzahl =$row->anzahl==''?'0':$row->anzahl; - $schluesseltyp->kaution =$row->betrag==''?'0':$row->betrag; + $betriebsmitteltyp =new betriebsmitteltyp($conn); + $betriebsmitteltyp->beschreibung =$row->name; + $betriebsmitteltyp->anzahl =$row->anzahl==''?'0':$row->anzahl; + $betriebsmitteltyp->kaution =$row->betrag==''?'0':$row->betrag; if($row->name=='Gaderobenschlüssel') { - $schluesseltyp->schluesseltyp='Gaderobe'; + $betriebsmitteltyp->betriebsmitteltyp='Gaderobe'; } else { - $schluesseltyp->schluesseltyp=$row->name; + $betriebsmitteltyp->betriebsmitteltyp=$row->name; } - $schluesseltyp->new=true; - if(!$schluesseltyp->save()) + $betriebsmitteltyp->new=true; + if(!$betriebsmitteltyp->save()) { - $error_log.=$schluesseltyp->errormsg."\n"; + $error_log.=$betriebsmitteltyp->errormsg."\n"; $anzahl_fehler++; } else { //überprüfen, ob sync-eintrag schon vorhanden - $qryz="SELECT * FROM tbl_syncschluesseltyp WHERE fas_typ='$row->schluessel_pk' AND portal_typ='$schluesseltyp->schluesseltyp'"; + $qryz="SELECT * FROM tbl_syncschluesseltyp WHERE fas_typ='$row->schluessel_pk' AND portal_typ='$betriebsmitteltyp->betriebsmitteltyp'"; if($resultz = pg_query($conn, $qryz)) { if(pg_num_rows($resultz)==0) //wenn dieser eintrag noch nicht vorhanden ist { $qry="INSERT INTO tbl_syncschluesseltyp (fas_typ, portal_typ)". - "VALUES ('".$row->schluessel_pk."', '".$schluesseltyp->schluesseltyp."');"; + "VALUES ('".$row->schluessel_pk."', '".$betriebsmitteltyp->betriebsmitteltyp."');"; $resulti = pg_query($conn, $qry); } } @@ -115,7 +101,8 @@ if($result = pg_query($conn_fas, $qry)) //echo nl2br($text); echo nl2br($error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Schluesseltyp', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_student.php b/admin/sync/fas/sync_fas_portal_student.php index cecf41ae8..ab846ef71 100644 --- a/admin/sync/fas/sync_fas_portal_student.php +++ b/admin/sync/fas/sync_fas_portal_student.php @@ -38,6 +38,10 @@ $anzahl_nichtstudenten=0; $rolle_kurzbz=array(1=>"Interessent", 2=>"Bewerber", 3=>"Student", 4=>"Ausserordentlicher", 5=>"Abgewiesener", 6=>"Aufgenommener", 7=>"Wartender", 8=>"Abbrecher", 9=>"Unterbrecher", 10=>"Outgoing", 11=>"Incoming", 12=>"Praktikant", 13=>"Diplomant", 14=>"Absolvent"); $studiensemester_kurzbz=array(2=>"wS2002",3=>"SS2003",4=>"WS2003",5=>"SS2004",6=>"WS2004",7=>"SS2005",8=>"WS2005",9=>"SS2006",10=>"WS2006",11=>"SS2007",12=>"WS2007",13=>"SS2008",14=>"WS2008"); + +$adress='ruhan@technikum-wien.at'; +//$adress='fas_sync@technikum-wien.at'; + function myaddslashes($var) { return ($var!=''?"'".addslashes($var)."'":'null'); @@ -199,7 +203,7 @@ if($result = pg_query($conn_fas, $qry)) } else { - $text.="Kein Reihungstest von Student $row->familienname, $row->vorname gefunden!\n"; + $error_log.="Kein Reihungstest von Student $row->familienname, $row->vorname gefunden!\n"; $reihungstest_id=''; $anmeldungreihungstest=''; $notest++; @@ -438,7 +442,7 @@ if($result = pg_query($conn_fas, $qry)) else { $error=true; - $error_log.='Fehler beim Speichern des Person-Datensatzes:'.$nachname.' '.$qry; + $error_log.='Fehler beim Speichern des Person-Datensatzes:'.$nachname.' '.$qry."\n".pg_errormessage($conn)."\n"; } if(!$error) @@ -612,7 +616,7 @@ if($result = pg_query($conn_fas, $qry)) else { $error=true; - $error_log.='Fehler beim Speichern des Prestudent-Datensatzes:'.$nachname.' '.$qry; + $error_log.='Fehler beim Speichern des Prestudent-Datensatzes:'.$nachname.' '.$qry."\n".pg_errormessage($conn)."\n"; } if(!$error) @@ -817,7 +821,7 @@ if($result = pg_query($conn_fas, $qry)) $anzahl_student++; if(pg_query($conn,$qry)) { - if($new_student) + /*if($new_student) { $qry = "SELECT currval('public.tbl_student_student_id_seq') AS id;"; if($rowz=pg_fetch_object(pg_query($conn,$qry))) @@ -827,12 +831,12 @@ if($result = pg_query($conn_fas, $qry)) $error=true; $error_log.='Student-Sequence konnte nicht ausgelesen werden'; } - } + }*/ } else { $error=true; - $error_log.='Fehler beim Speichern des Student-Datensatzes:'.$nachname.' / '.$qry; + $error_log.='Fehler beim Speichern des Student-Datensatzes:'.$nachname.' / '.$qry."\n".pg_errormessage($conn)."\n"; } if(!$error) @@ -886,8 +890,8 @@ if($result = pg_query($conn_fas, $qry)) if(!is_numeric($person_id)) { $error=true; - echo nl2br('person_id muss eine gueltige Zahl sein'); - $error_log.= 'person_id muss eine gueltige Zahl sein'; + $text.='person_id muss eine gueltige Zahl sein\n'; + $error_log.= 'person_id muss eine gueltige Zahl sein\n'; } @@ -915,24 +919,10 @@ if($result = pg_query($conn_fas, $qry)) } } } - if(pg_query($conn,$qry)) - { - if($new_student) - { - $qry = "SELECT currval('public.tbl_student_student_id_seq') AS id;"; - if($rows=pg_fetch_object(pg_query($conn,$qry))) - $benutzer_id=$rows->id; - else - { - $error=true; - $error_log.='Benutzer-Sequence konnte nicht ausgelesen werden'; - } - } - } - else + if(!pg_query($conn,$qry)) { $error=true; - $error_log.='Fehler beim Speichern des Benutzer-Datensatzes:'.$nachname.' '.$qry; + $error_log.='Fehler beim Speichern des Benutzer-Datensatzes:'.$nachname.' '.$qry."\n".pg_errormessage($conn)."\n"; } $anzahl_benutzer++; if(!$error) @@ -944,67 +934,61 @@ if($result = pg_query($conn_fas, $qry)) else { $anzahl_fehler_benutzer++; - /*echo nl2br("\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"); - echo nl2br($text."\n"); - echo nl2br($error_log); - echo nl2br("\n".$qry." R1\n"); - echo nl2br("**********\n\n");*/ + $text.="\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"; + $text.=$error_log; + $text.="\n".$qry." R1\n"; + $text.="**********\n\n"; pg_query($conn,'ROLLBACK;'); } } else { $anzahl_fehler_benutzer++; - /*echo nl2br("\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"); - echo nl2br($text."\n"); - echo nl2br($error_log); - echo nl2br("\n".$qry." R2\n"); - echo nl2br("**********\n\n");*/ + $text.="\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"; + $text.=$error_log; + $text.="\n".$qry." R2\n"; + $text.="**********\n\n"; pg_query($conn,'ROLLBACK;'); } } else { $anzahl_fehler_student++; - /*echo nl2br("\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"); - echo nl2br($text."\n"); - echo nl2br($error_log); - echo nl2br("\n".$qry." R3\n"); - echo nl2br("**********\n\n");*/ + $text.="\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"; + $text.=$error_log; + $text.="\n".$qry." R3\n"; + $text.="**********\n\n"; pg_query($conn,'ROLLBACK;'); } } else { $anzahl_nichtstudenten++; - /*echo nl2br("\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"); - echo nl2br("Semester: ".$semester."/Verband: ".$verband."/Gruppe: ".$gruppe."/ Stg:".$studiengang_kz."\n"); - echo nl2br($text."\n"); - echo nl2br($error_log); - echo nl2br("\n".$qry." C1\n"); - echo nl2br("**********\n\n");*/ + /*$text.="\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"; + $text.="Semester: ".$semester."/Verband: ".$verband." /Gruppe: ".$gruppe." / Stg:".$studiengang_kz."\n"; + $text.=$error_log; + $text.="\n".$qry." C1\n"; + $text.="**********\n\n";*/ pg_query($conn,'COMMIT;'); //Commit, wenn kein Gruppeneintrag gefunden (Interessent, Bewerber) => nur Person und Prestudent werden angelegt } } else { $anzahl_fehler_pre++; - /*echo nl2br("\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"); - echo nl2br($text."\n"); - echo nl2br($error_log); - echo nl2br("\n".$qry." R4\n"); - echo nl2br("**********\n\n");*/ + $text.="\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"; + $text.=$error_log; + $text.="\n".$qry." R4\n"; + $text.="**********\n\n"; pg_query($conn,'ROLLBACK;'); } } else { $anzahl_fehler_person++; - /*echo nl2br("\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"); - echo nl2br($text."\n"); - echo nl2br($error_log); - echo nl2br("\n".$qry." R5\n"); - echo nl2br("**********\n\n");*/ + $text.="\n***********".$student_uid."/".$nachname.", ".$vorname."/".$matrikelnr."\n"; + $text.=$error_log; + $text.=" R5\n"; + $text.="**********\n\n"; pg_query($conn,'ROLLBACK;'); } @@ -1012,15 +996,23 @@ if($result = pg_query($conn_fas, $qry)) } -echo nl2br("\n".$text); -echo nl2br($error_log); +//echo nl2br("\n".$text); +echo nl2br("\n".$error_log); Echo nl2br("\n\nPersonen ohne Reihungstest: ".$notest." \n"); Echo nl2br("Personen: Übertragen: ".$anzahl_person." Fehler: ".$anzahl_fehler_person."\n"); Echo nl2br("Prestudenten: Übertragen: ".$anzahl_pre." Fehler: ".$anzahl_fehler_pre."\n"); Echo nl2br("Nicht-Studenten: ".$anzahl_nichtstudenten."\n"); Echo nl2br("Studenten: Übertragen: ".$anzahl_student." Fehler: ".$anzahl_fehler_student."\n"); Echo nl2br("Benutzer: Übertragen: ".$anzahl_benutzer." Fehler: ".$anzahl_fehler_benutzer."\n"); +$error_log=$text; +$error_log.="\n\nPersonen ohne Reihungstest: ".$notest." \n"; +$error_log.="Personen: Übertragen: ".$anzahl_person." Fehler: ".$anzahl_fehler_person."\n"; +$error_log.="Prestudenten: Übertragen: ".$anzahl_pre." Fehler: ".$anzahl_fehler_pre."\n"; +$error_log.="Nicht-Studenten: ".$anzahl_nichtstudenten."\n"; +$error_log.="Studenten: Übertragen: ".$anzahl_student." Fehler: ".$anzahl_fehler_student."\n"; +$error_log.="Benutzer: Übertragen: ".$anzahl_benutzer." Fehler: ".$anzahl_fehler_benutzer."\n"; +mail($adress, 'SYNC Student', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_studiengang.php b/admin/sync/fas/sync_fas_portal_studiengang.php index d05ca3f3d..8ce6f1bae 100644 --- a/admin/sync/fas/sync_fas_portal_studiengang.php +++ b/admin/sync/fas/sync_fas_portal_studiengang.php @@ -1,19 +1,5 @@ , * Andreas Oesterreicher and @@ -164,7 +150,8 @@ else //echo nl2br($text); echo nl2br($error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Studiengang', $error_log); ?> \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_portal_telefon.php b/admin/sync/fas/sync_fas_portal_telefon.php index 14de12757..040fb6848 100644 --- a/admin/sync/fas/sync_fas_portal_telefon.php +++ b/admin/sync/fas/sync_fas_portal_telefon.php @@ -155,7 +155,8 @@ if($result = pg_query($conn_fas, $qry)) //echo nl2br($text); echo nl2br("\n".$error_log); echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"); - +$error_log.="\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler"; +mail($adress, 'SYNC Telefon', $error_log); ?> \ No newline at end of file diff --git a/include/adresse.class.php b/include/adresse.class.php index 48abe1247..981c5f5f1 100644 --- a/include/adresse.class.php +++ b/include/adresse.class.php @@ -220,12 +220,12 @@ class adresse //Zahlenfelder pruefen if(!is_numeric($this->person_id)) { - $this->errormsg='person_id enthaelt ungueltige Zeichen:'.$this->person_id.' - person: '.$row->adresse_id; + $this->errormsg='person_id enthaelt ungueltige Zeichen:'.$this->person_id.' - adresse: '.$row->adresse_id."\n"; return false; } if(!is_numeric($this->typ)) { - $this->errormsg='Typ enthaelt ungueltige Zeichen - person: '.$row->adresse_id; + $this->errormsg='Typ enthaelt ungueltige Zeichen - adresse: '.$row->adresse_id."\n"; return false; } @@ -233,32 +233,32 @@ class adresse //$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten'; if(strlen($this->name)>255) { - $this->errormsg = 'Name darf nicht länger als 255 Zeichen sein - person: '.$row->adresse_id; + $this->errormsg = 'Name darf nicht länger als 255 Zeichen sein - adresse: '.$row->adresse_id."\n"; return false; } if(strlen($this->strasse)>255) { - $this->errormsg = 'Strasse darf nicht länger als 255 Zeichen sein - person: '.$row->adresse_id; + $this->errormsg = 'Strasse darf nicht länger als 255 Zeichen sein - adresse: '.$row->adresse_id."\n"; return false; } if(strlen($this->plz)>10) { - $this->errormsg = 'Plz darf nicht länger als 10 Zeichen sein - person: '.$row->adresse_id; + $this->errormsg = 'Plz darf nicht länger als 10 Zeichen sein - adresse: '.$row->adresse_id."\n"; return false; } if(strlen($this->ort)>255) { - $this->errormsg = 'Ort darf nicht länger als 255 Zeichen sein - person: '.$row->adresse_id; + $this->errormsg = 'Ort darf nicht länger als 255 Zeichen sein - adresse: '.$row->adresse_id."\n"; return false; } if(strlen($this->nation)>3) { - $this->errormsg = 'Nation darf nicht länger als 3 Zeichen sein - person: '.$row->adresse_id; + $this->errormsg = 'Nation darf nicht länger als 3 Zeichen sein - adresse: '.$row->adresse_id."\n"; return false; } if(strlen($this->gemeinde)>255) { - $this->errormsg = 'Gemeinde darf nicht länger als 255 Zeichen sein - person: '.$row->adresse_id; + $this->errormsg = 'Gemeinde darf nicht länger als 255 Zeichen sein - adresse: '.$row->adresse_id."\n"; return false; } @@ -296,7 +296,7 @@ class adresse $qry="SELECT nextval('tbl_adresse_adresse_id_seq') as id;"; if(!$row = pg_fetch_object(pg_query($this->conn,$qry))) { - $this->errormsg = 'Fehler beim auslesen der Sequence'; + $this->errormsg = 'Fehler beim auslesen der Sequence'."\n"; return false; } $this->adresse_id = $row->id; @@ -327,7 +327,7 @@ class adresse //Pruefen ob adresse_id eine gueltige Zahl ist if(!is_numeric($this->adresse_id)) { - $this->errormsg = 'adresse_id muss eine gueltige Zahl sein: '.$this->adresse_id; + $this->errormsg = 'adresse_id muss eine gueltige Zahl sein: '.$this->adresse_id."\n"; return false; } $qryz="SELECT * FROM tbl_adresse WHERE adresse_id='$this->adresse_id';"; @@ -394,7 +394,7 @@ class adresse } else { - $this->errormsg = 'Fehler beim Speichern der Daten'; + $this->errormsg = "*****\nFehler beim Speichern des Adress-Datensatzes: ".$this->person_id."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n"; return false; } } @@ -414,7 +414,7 @@ class adresse //Pruefen ob adresse_id eine gueltige Zahl ist if(!is_numeric($adress_id) || $adress_id == '') { - $this->errormsg = 'adresse_id muss eine gueltige Zahl sein'; + $this->errormsg = 'adresse_id muss eine gueltige Zahl sein'."\n"; return false; } @@ -437,13 +437,13 @@ class adresse return true; else { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; + $this->errormsg = "Fehler beim Speichern des Log-Eintrages\n"; return false; } } else { - $this->errormsg = 'Fehler beim loeschen der Daten'; + $this->errormsg = 'Fehler beim loeschen der Daten'."\n"; return false; } } diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php new file mode 100644 index 000000000..3c8cb5a1c --- /dev/null +++ b/include/betriebsmittel.class.php @@ -0,0 +1,196 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Klasse Betriebsmittel + * @create 22-12-2006 + */ + +class betriebsmittel +{ + var $conn; // @var resource DB-Handle + var $new; // @var boolean + var $errormsg; // @var string + var $done=false; // @var boolean + + //Tabellenspalten + var $betriebsmittel_id; // @var integer + var $betriebsmitteltyp; // @var string + var $nummer; // @var string + var $reservieren; // @var boolean + var $ort_kurzbz; // @var string + var $ext_id; // @var integer + var $insertamum; // @var timestamp + var $insertvon; // @var bigint + var $updateamum; // @var timestamp + var $updatevon; // @var bigint + + /** + * Konstruktor + * @param $conn Connection + * $betriebsmittel_id ID des Betrtiebsmittels, das geladen werden soll (Default=null) + */ + function betriebsmittel($conn,$betriebsmittel_id=null, $unicode=false) + { + $this->conn = $conn; + if ($unicode) + { + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + } + else + { + $qry="SET CLIENT_ENCODING TO 'LATIN9';"; + } + if(!pg_query($conn,$qry)) + { + $this->errormsg= "Encoding konnte nicht gesetzt werden"; + return false; + } + } + + /** + * Laedt das Betriebsmittel mit der ID $betriebsmittel_id + * @param $betriebsmittel_id ID des zu ladenden Betriebsmittel + * @return true wenn ok, false im Fehlerfall + */ + function load($betriebsmittel_id) + { + //noch nicht implementiert + } + + // ************************************************ + // * wenn $var '' ist wird "null" zurueckgegeben + // * wenn $var !='' ist werden datenbankkritische + // * Zeichen mit backslash versehen und das Ergebnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + /** + * Speichert den aktuellen Datensatz in die Datenbank + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + function save() + { + $this->done=false; + + if($this->new) + { + //Neuen Datensatz einfuegen + + $qry='INSERT INTO public.tbl_betriebsmittel (betriebsmittel_id, beschreibung, betriebsmitteltyp, nummer, reservieren, ort_kurzbz, + ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('. + $this->addslashes($this->betriebsmittel_id).', '. + $this->addslashes($this->beschreibung).', '. + $this->addslashes($this->betriebsmitteltyp).', '. + $this->addslashes($this->nummer).', '. + ($this->reservieren?'true':'false').', '. + $this->addslashes($this->ort_kurzbz).', '. + $this->addslashes($this->ext_id).', now(), '. + $this->addslashes($this->insertvon).', now(), '. + $this->addslashes($this->updatevon).');'; + $this->done=true; + } + else + { + $qryz="SELECT * FROM public.tbl_betriebsmittel WHERE betriebsmittel_id='$this->betriebsmittel_id';"; + if($resultz = pg_query($this->conn, $qryz)) + { + while($rowz = pg_fetch_object($resultz)) + { + $update=false; + if($rowz->beschreibung!=$this->beschreibung) $update=true; + if($rowz->betriebsmitteltyp!=$this->betriebsmitteltyp) $update=true; + if($rowz->nummer!=$this->nummer) $update=true; + if($rowz->reservieren!=$this->reservieren) $update=true; + if($rowz->ort_kurzbz!=$this->ort_kurzbz) $update=true; + if($rowz->ext_id!=$this->ext_id) $update=true; + + if($update) + { + $qry='UPDATE public.tbl_betriebsmittel SET '. + 'betriebsmitteltyp='.$this->addslashes($this->betriebsmitteltyp).', '. + 'nummer='.$this->addslashes($this->nummer).', '. + 'reservieren='.($this->reservieren?'true':'false').', '. + 'ort_kurzbz='.$this->addslashes($this->ort_kurzbz).', '. + 'ext_id='.$this->addslashes($this->ext_id).', '. + 'updateamum= now(), '. + 'updatevon='.$this->addslashes($this->updatevon).' '. + 'WHERE betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).';'; + $this->done=true; + } + } + } + else + { + return false; + } + } + if ($this->done) + { + if(pg_query($this->conn, $qry)) + { + //Log schreiben + /*$sql = $qry; + $qry = "SELECT nextval('log_seq') as id;"; + if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) + { + $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; + return false; + } + + $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; + if(pg_query($this->conn, $qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; + return false; + } */ + return true; + } + else + { + $this->errormsg = "*****\nFehler beim Speichern des Betriebsmittel-Datensatzes: ID:".$this->betriebsmittel_id." Schlüsseltyp: ".$this->betriebsmitteltyp."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n"; + return false; + } + } + else + { + return true; + } + } + + /** + * Loescht den Datenensatz mit der ID die uebergeben wird + * @param $betriebsmittel_id ID die geloescht werden soll + * @return true wenn ok, false im Fehlerfall + */ + function delete($betriebsmittel_id) + { + //noch nicht implementiert! + } +} +?> \ No newline at end of file diff --git a/include/betriebsmittelperson.class.php b/include/betriebsmittelperson.class.php new file mode 100644 index 000000000..862c15628 --- /dev/null +++ b/include/betriebsmittelperson.class.php @@ -0,0 +1,212 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Klasse Betriebsmittelperson + * @create 13-01-2007 + */ + +class betriebsmittelperson +{ + var $conn; // @var resource DB-Handle + var $new; // @var boolean + var $errormsg; // @var string + var $done=false; // @var boolean + + //Tabellenspalten + Var $betriebsmittel_id; // @var integer + var $person_id; // @var integer + var $anmerkung; // @var string + var $kaution; // @var numeric(5,2) + var $ausgegebenam; // @var date + var $retouram; // @var date + var $ext_id; // @var integer + var $insertamum; // @var timestamp + var $insertvon; // @var bigint + var $updateamum; // @var timestamp + var $updatevon; // @var bigint + + /** + * Konstruktor + * @param $conn Connection + * + */ + function betriebsmittelperson($conn,$betriebsmittel_id=null, $unicode=false) + { + $this->conn = $conn; + if ($unicode) + { + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + } + else + { + $qry="SET CLIENT_ENCODING TO 'LATIN9';"; + } + if(!pg_query($conn,$qry)) + { + $this->errormsg = "Encoding konnte nicht gesetzt werden"; + return false; + } + } + + /** + * Laedt das Betriebsmittel mit der ID $betriebsmittel_id, person_id + * @param $betriebsmittel_id ID des zu ladenden Betriebsmittels + * @param $person_id ID der zu ladenden Person + * @return true wenn ok, false im Fehlerfall + */ + function load($betriebsmittel_id, $person_id) + { + //noch nicht implementiert + } + + // ************************************************ + // * wenn $var '' ist wird "null" zurueckgegeben + // * wenn $var !='' ist werden datenbankkritische + // * Zeichen mit backslash versehen und das Ergebnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + /** + * Speichert den aktuellen Datensatz in die Datenbank + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id, $person_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + function save() + { + $this->done=false; + + if($this->new) + { + //Neuen Datensatz einfuegen + + $qry='INSERT INTO public.tbl_betriebsmittelperson (betriebsmittel_id, person_id, anmerkung, kaution, + ausgegebenam, retouram, ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('. + $this->addslashes($this->betriebsmittel_id).', '. + $this->addslashes($this->person_id).', '. + $this->addslashes($this->anmerkung).', '. + $this->addslashes($this->kaution).', '. + $this->addslashes($this->ausgegebenam).', '. + $this->addslashes($this->retouram).', '. + $this->addslashes($this->ext_id).', now(), '. + $this->addslashes($this->insertvon).', now(), '. + $this->addslashes($this->updatevon).');'; + $this->done=true; + } + else + { + //Pruefen ob betriebsmittel_id eine gueltige Zahl ist + if(!is_numeric($this->betriebsmittel_id)) + { + $this->errormsg = 'betriebsmittel_id muss eine gueltige Zahl sein: '.$this->betriebsmittel_id.' ('.$this->person_id.')'; + return false; + } + + $qryz="SELECT * FROM public.tbl_betriebsmittelperson WHERE betriebsmittel_id='$this->betriebsmittel_id' AND person_id='$this->person_id';"; + if($resultz = pg_query($this->conn, $qryz)) + { + while($rowz = pg_fetch_object($resultz)) + { + $update=false; + if($rowz->betriebsmittel_id!=$this->betriebsmittel_id) $update=true; + if($rowz->person_id!=$this->person_id) $update=true; + if($rowz->anmerkung!=$this->anmerkung) $update=true; + if($rowz->kaution!=$this->kaution) $update=true; + if($rowz->ausgegebenam!=$this->ausgegebenam) $update=true; + if($rowz->retouram!=$this->retouram) $update=true; + if($rowz->ext_id!=$this->ext_id) $update=true; + + if($update) + { + $qry='UPDATE public.tbl_schluessel SET '. + 'betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).', '. + 'person_id='.$this->addslashes($this->person_id).', '. + 'schluesseltyp='.$this->addslashes($this->schluesseltyp).', '. + 'nummer='.$this->addslashes($this->nummer).', '. + 'kaution='.$this->addslashes($this->kaution).', '. + 'ausgegebenam='.$this->addslashes($this->ausgegebenam).', '. + 'retouram='.$this->addslashes($this->retouram).', '. + 'ext_id='.$this->addslashes($this->ext_id).', '. + 'updateamum= now(), '. + 'updatevon='.$this->addslashes($this->updatevon).' '. + 'WHERE betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).' + AND person_id='.$this->addslashes($this->person_id).';'; + $this->done=true; + } + } + } + else + { + return false; + } + } + if ($this->done) + { + if(pg_query($this->conn, $qry)) + { + //Log schreiben + /*$sql = $qry; + $qry = "SELECT nextval('log_seq') as id;"; + if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) + { + $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; + return false; + } + + $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; + if(pg_query($this->conn, $qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; + return false; + } */ + return true; + } + else + { + $this->errormsg = "*****\nFehler beim Speichern des Betriebsmittelperson-Datensatzes: ID:".$this->person_id." Betriebsmittel-ID: ".$this->betriebsmittel_id."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n"; + + return false; + } + } + else + { + return true; + } + } + + /** + * Loescht den Datenensatz mit der ID die uebergeben wird + * @param $betriebsmittel_id ID die geloescht werden soll + * @param $person_id ID die geloescht werden soll + * @return true wenn ok, false im Fehlerfall + */ + function delete($betriebsmittel_id, $person_id) + { + //noch nicht implementiert! + } +} +?> \ No newline at end of file diff --git a/include/betriebsmitteltyp.class.php b/include/betriebsmitteltyp.class.php new file mode 100644 index 000000000..5c3f55336 --- /dev/null +++ b/include/betriebsmitteltyp.class.php @@ -0,0 +1,130 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +/** + * Klasse betriebsmitteltyp (FAS-Online) + * @create 13-01-2007 + */ + +class betriebsmitteltyp +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + //var $schluesseltyp = array(); // schluesseltyp Objekt + + //Tabellenspalten + var $betriebsmitteltyp; //string + var $beschreibung; //string + var $anzahl; //smallint + var $kaution; //numeric(5,2) + + /** + * Konstruktor + * @param $conn Connection + * $code Zu ladende Betriebsmitteltyp + */ + function betriebsmitteltyp($conn, $code=null, $unicode=false) + { + $this->conn = $conn; + + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + } + + + /** + * Laedt die Funktion mit der ID $betriebsmitteltyp + * @param $code code des zu ladenden betriebsmitteltyps + * @return true wenn ok, false im Fehlerfall + */ + function load($code) + { + $this->errormsg = 'Noch nicht implementiert'; + return false; + } + + /** + * Laedt alle betriebsmitteltypen + */ + function getAll() + { + $this->errormsg = 'Noch nicht implementiert'; + return false; + } + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + // ************************************************************ + // * Speichert die Daten in die Datenbank + // * @return true wenn erfolgreich, false im Fehlerfall + // ************************************************************ + function save() + { + + $qry1='SELECT * FROM public.tbl_betriebsmitteltyp WHERE beschreibung='.$this->addslashes($this->beschreibung).';'; + if($result1=pg_query($this->conn,$qry1)) + { + if(pg_num_rows($result1)>0) //eintrag gefunden + { + if($row1 = pg_fetch_object($result1)) + { + $qry='UPDATE public.tbl_betriebsmitteltyp SET '. + 'anzahl =anzahl+'.$this->anzahl.' '. + 'WHERE beschreibung='.$this->addslashes($this->beschreibung).';'; + } + } + else + { + $qry='INSERT INTO public.tbl_betriebsmitteltyp (betriebsmitteltyp, beschreibung, anzahl, kaution) VALUES('. + $this->addslashes($this->betriebsmitteltyp).', '. + $this->addslashes($this->beschreibung).', '. + $this->addslashes($this->anzahl).', '. + $this->addslashes($this->kaution).');'; + } + if(pg_query($this->conn,$qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Betriebsmitteltypen-Datensatzes: '.$this->betriebsmitteltyp.' '.$qry; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Zugriff auf den Betriebsmitteltypen-Datensatz: '.$this->betriebsmitteltyp.' '.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/firma.class.php b/include/firma.class.php index 3018a2391..8e14800c7 100644 --- a/include/firma.class.php +++ b/include/firma.class.php @@ -187,7 +187,7 @@ class firma } else { - $this->errormsg = 'Fehler beim Speichern der Daten'; + $this->errormsg = "*****\nFehler beim Speichern des Firma-Datensatzes.\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n"; return false; } } diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index b55f6ad7e..150a780af 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -51,7 +51,7 @@ class mitarbeiter extends benutzer if(!pg_query($conn,$qry)) { - $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + $this->errormsg= "Encoding konnte nicht gesetzt werden\n"; return false; } @@ -82,13 +82,13 @@ class mitarbeiter extends benutzer } else { - $this->errormsg = "Kein Eintrag gefunden fuer $uid"; + $this->errormsg = "Kein Eintrag gefunden fuer $uid\n"; return false; } } else { - $this->errormsg = "Fehler beim Laden: $qry"; + $this->errormsg = "Fehler beim Laden: $qry\n"; return false; } } @@ -101,52 +101,52 @@ class mitarbeiter extends benutzer { if(strlen($this->uid)>16) { - $this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein'; + $this->errormsg = "ID darf nicht laenger als 16 Zeichen sein\n"; return false; } if($this->uid=='') { - $this->errormsg = 'UID muss eingegeben werden '.$this->uid; + $this->errormsg = "UID muss eingegeben werden ".$this->personalnummer."\n"; return false; } if($this->ausbildungcode!='' && !is_numeric($this->ausbildungcode)) { - $this->errormsg = 'Ausbildungscode ist ungueltig'; + $this->errormsg = "Ausbildungscode ist ungueltig\n"; return false; } if($this->personalnummer!='' && !is_numeric($this->personalnummer)) { - $this->errormsg = 'Personalnummer muss eine gueltige Zahl sein'; + $this->errormsg = "Personalnummer muss eine gueltige Zahl sein\n"; return false; } if(strlen($this->kurzbz)>8) { - $this->errormsg = 'kurzbz darf nicht laenger als 8 Zeichen sein'; + $this->errormsg = "kurzbz darf nicht laenger als 8 Zeichen sein\n"; return false; } if(strlen($this->ort_kurzbz)>8) { - $this->errormsg = 'Ort_kurzbz darf nicht laenger als 8 Zeichen sein'; + $this->errormsg = "Ort_kurzbz darf nicht laenger als 8 Zeichen sein\n"; return false; } if(!is_bool($this->lektor)) { - $this->errormsg = 'lektor muss boolean sein '.$this->lektor; + $this->errormsg = "Lektor muss boolean sein ".$this->lektor."\n"; return false; } if(!is_bool($this->fixangestellt)) { - $this->errormsg = 'fixangestellt muss boolean sein'; + $this->errormsg = "fixangestellt muss boolean sein\n"; return false; } if(strlen($this->telefonklappe)>25) { - $this->errormsg = 'telefonklappe darf nicht laenger als 25 Zeichen sein'; + $this->errormsg = "telefonklappe darf nicht laenger als 25 Zeichen sein\n"; return false; } if(strlen($this->updatevon)>32) { - $this->errormsg = 'updatevon darf nicht laenger als 32 Zeichen sein'; + $this->errormsg = "updatevon darf nicht laenger als 32 Zeichen sein\n"; return false; } @@ -217,7 +217,7 @@ class mitarbeiter extends benutzer else { pg_query($this->conn,'ROLLBACK;'); - $this->errormsg = 'Fehler beim Speichern des Mitarbeiter-Datensatzes'.$qry; + $this->errormsg = "*****\nFehler beim Speichern des Mitarbeiter-Datensatzes: ".$this->uid."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n"; return false; } } @@ -244,8 +244,8 @@ class mitarbeiter extends benutzer $sql_query.=' AND studiengang_kz='.$stg_kz; if ($fachbereich_id!=null) $sql_query.=' AND fachbereich_id='.$fachbereich_id; - $sql_query.=' ORDER BY nachname, vornamen, kurzbz'; - //echo $sql_query; + $sql_query.=' ORDER BY nachname, vornamen, kurzbz'; + //echo $sql_query; if(!($erg=pg_query($this->conn, $sql_query))) { $this->errormsg=pg_errormessage($conn); diff --git a/include/person.class.php b/include/person.class.php index 73fd29785..b9495c816 100644 --- a/include/person.class.php +++ b/include/person.class.php @@ -75,7 +75,7 @@ class person if(!pg_query($conn,$qry)) { - $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + $this->errormsg = "Encoding konnte nicht gesetzt werden\n"; return false; } @@ -100,7 +100,7 @@ class person if(!$result=pg_query($this->conn,$qry)) { - $this->errormsg = 'Fehler beim lesen der Personendaten'; + $this->errormsg = "Fehler beim lesen der Personendaten\n"; return false; } @@ -136,7 +136,7 @@ class person } else { - $this->errormsg = 'Es ist kein Personendatensatz mit der ID '.$person_id.' vorhanden'; + $this->errormsg = "Es ist kein Personendatensatz mit der ID ".$person_id." vorhanden\n"; return false; } @@ -144,7 +144,7 @@ class person } else { - $this->errormsg = 'Die person_id muss eine gueltige Zahl sein'; + $this->errormsg = "Die person_id muss eine gueltige Zahl sein\n"; return false; } } @@ -158,124 +158,125 @@ class person { if(strlen($this->sprache)>16) { - $this->errormsg = 'Sprache darf nicht laenger als 16 Zeichen sein'; + $this->errormsg = "*****\nSprache darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->anrede)>16) { - $this->errormsg = 'Anrede darf nicht laenger als 16 Zeichen sein'; + $this->errormsg = "*****\nAnrede darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->titelpost)>32) { - $this->errormsg = 'Titelpost darf nicht laenger als 32 Zeichen sein'; + $this->errormsg = "*****\nTitelpost darf nicht laenger als 32 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->titelpre)>64) { - $this->errormsg = 'Titelpre darf nicht laenger als 64 Zeichen sein'; + $this->errormsg = "*****\nTitelpre darf nicht laenger als 64 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->nachname)>64) { - $this->errormsg = 'Nachname darf nicht laenger als 64 Zeichen sein'; + $this->errormsg = "*****\nNachname darf nicht laenger als 64 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if($this->nachname=='' || is_null($this->nachname)) { - $this->errormsg = 'Nachname muss eingegeben werden'; + $this->errormsg = "*****\nNachname muss eingegeben werden: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->vorname)>32) { - $this->errormsg = 'Vorname darf nicht laenger als 32 Zeichen sein'; + $this->errormsg = "*****\nVorname darf nicht laenger als 32 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->vornamen)>128) { - $this->errormsg = 'Vornamen darf nicht laenger als 128 Zeichen sein'; + $this->errormsg = "*****\nVornamen darf nicht laenger als 128 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } //ToDo Gebdatum pruefen -> laut bis muss student aelter als 10 Jahre sein /*if(strlen($this->gebdatum)==0 || is_null($this->gebdatum)) { - $this->errormsg = 'Geburtsdatum muss eingegeben werden'; + $this->errormsg = "Geburtsdatum muss eingegeben werden\n"; return false; }*/ if(strlen($this->gebort)>128) { - $this->errormsg = 'Geburtsort darf nicht laenger als 128 Zeichen sein'; + $this->errormsg = "*****\nGeburtsort darf nicht laenger als 128 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if($this->foto!='' && !is_numeric($this->foto)) { - $this->errormsg = 'FotoOID ist ungueltig'; + $this->errormsg = "FotoOID ist ungueltig\n"; return false; } if(strlen($this->homepage)>256) { - $this->errormsg = 'Homepage darf nicht laenger als 256 Zeichen sein'; + $this->errormsg = "*****\nHomepage darf nicht laenger als 256 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->svnr)>10) { - $this->errormsg = 'SVNR darf nicht laenger als 10 Zeichen sein'; + $this->errormsg = "*****\nSVNR darf nicht laenger als 10 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->ersatzkennzeichen)>10) { - $this->errormsg = 'Ersatzkennzeichen darf nicht laenger als 10 Zeichen sein'; + $this->errormsg = "*****\nErsatzkennzeichen darf nicht laenger als 10 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->familienstand)>1) { - $this->errormsg = 'Familienstand ist ungueltig'; + $this->errormsg = "*****\nFamilienstand ist ungueltig: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if($this->anzahlkinder!='' && !is_numeric($this->anzahlkinder)) { - $this->errormsg = 'Anzahl der Kinder ist ungueltig'; + $this->errormsg = "*****\nAnzahl der Kinder ist ungueltig: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(!is_bool($this->aktiv)) { - $this->errormsg = 'Aktiv ist ungueltig'; + $this->errormsg = "*****\nAktiv ist ungueltig: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->insertvon)>16) { - $this->errormsg = 'Insertvon darf nicht laenger als 16 Zeichen sien'; + $this->errormsg = "*****\nInsertvon darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->updatevon)>16) { - $this->errormsg = 'Updatevon darf nicht laenger als 16 Zeichen sein'; + $this->errormsg = "*****\nUpdatevon darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if($this->ext_id!='' && !is_numeric($this->ext_id)) { - $this->errormsg = 'Ext_ID ist keine gueltige Zahl'; + $this->errormsg = "*****\nExt_ID ist keine gueltige Zahl: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->geschlecht)>1) { - $this->errormsg = 'geschlecht darf nicht laenger als 1 Zeichen sein'; + $this->errormsg = "*****\ngeschlecht darf nicht laenger als 1 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->geburtsnation)>3) { - $this->errormsg = 'Geburtsnation darf nicht laenger als 3 Zeichen sein'; + $this->errormsg = "*****\nGeburtsnation darf nicht laenger als 3 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if(strlen($this->staatsbuergerschaft)>3) { - $this->errormsg = 'Staatsbuergerschaft darf nicht laenger als 3 Zeichen sein'; + $this->errormsg = "*****\nStaatsbuergerschaft darf nicht laenger als 3 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n"; return false; } if($this->geschlecht!='m' && $this->geschlecht!='w') { - $this->errormsg = 'Geschlecht muß entweder w oder m sein!'; + $this->errormsg = "*****\nGeschlecht muß entweder w oder m sein!: ".$this->nachname.", ".$this->vorname."\n*****\n"; + return false; } return true; @@ -328,9 +329,9 @@ class person $this->addslashes($this->familienstand).','. $this->addslashes($this->anzahlkinder).','. ($this->aktiv?'true':'false').','. - $this->addslashes($this->insertamum).','. + 'now(),'. $this->addslashes($this->insertvon).','. - $this->addslashes($this->updateamum).','. + 'now(),'. $this->addslashes($this->updatevon).','. $this->addslashes($this->geschlecht).','. $this->addslashes($this->geburtsnation).','. @@ -343,7 +344,7 @@ class person //person_id auf gueltigkeit pruefen if(!is_numeric($this->person_id)) { - $this->errormsg = 'person_id muss eine gueltige Zahl sein'; + $this->errormsg = "person_id muss eine gueltige Zahl sein\n"; return false; } @@ -398,7 +399,9 @@ class person ' familienstand='.$this->addslashes($this->familienstand).','. ' anzahlkinder='.$this->addslashes($this->anzahlkinder).','. ' aktiv='.($this->aktiv?'true':'false').','. - ' updateamum='.$this->addslashes($this->updateamum).','. + ' insertamum=now(),'. + ' insertvon='.$this->addslashes($this->insertvon).','. + ' updateamum=now(),'. ' updatevon='.$this->addslashes($this->updatevon).','. ' geschlecht='.$this->addslashes($this->geschlecht).','. ' geburtsnation='.$this->addslashes($this->geburtsnation).','. @@ -421,7 +424,7 @@ class person $this->person_id=$row->id; else { - $this->errormsg = 'Sequence konnte nicht ausgelesen werden'; + $this->errormsg = "Sequence konnte nicht ausgelesen werden\n"; return false; } } @@ -431,7 +434,7 @@ class person } else { - $this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$this->nachname.' '.$qry; + $this->errormsg = "*****\nFehler beim Speichern des Person-Datensatzes: ".$this->nachname."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n"; return false; } } diff --git a/include/schluessel.class.php b/include/schluessel.class.php index e17aabbc0..7ef5b8fd3 100644 --- a/include/schluessel.class.php +++ b/include/schluessel.class.php @@ -174,7 +174,8 @@ class schluessel } else { - $this->errormsg = 'Fehler beim Speichern der Daten'; + $this->errormsg = "*****\nFehler beim Speichern des Schluessel-Datensatzes: ID:".$this->person_id." Schlüsseltyp: ".$this->schluesseltyp."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n"; + return false; } }