mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Include VZ Bereinigung
This commit is contained in:
+549
-306
@@ -1,372 +1,615 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
/**
|
||||
* Basisklasse Person (FAS-Online)
|
||||
* @create 06-03-2006
|
||||
*/
|
||||
|
||||
class person
|
||||
{
|
||||
var $conn; // resource DB-Handle
|
||||
var $errormsg; // string
|
||||
var $new; // boolean
|
||||
var $personen = array(); // person Objekt
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $errormsg; // @var string
|
||||
var $new; // @var boolean
|
||||
var $result = array(); // @var person Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $person_id; // integer
|
||||
var $sprache; // varchar(16)
|
||||
var $anrede; // varchar(16)
|
||||
var $titelpost; // varchar(32)
|
||||
var $titelpre; // varchar(64)
|
||||
var $nachname; // varchar(64)
|
||||
var $vorname; // varchar(32)
|
||||
var $vornamen; // varchar(128)
|
||||
var $gebdatum; // date
|
||||
var $gebort; // varchar(128)
|
||||
var $gebzeit; // time
|
||||
var $foto; // oid
|
||||
var $anmerkungen; // varchar(256)
|
||||
var $homepage; // varchar(256)
|
||||
var $svnr; // char(10)
|
||||
var $ersatzkennzeichen; // char(10)
|
||||
var $familienstand; // char(1)
|
||||
var $anzahlkinder; // smalint
|
||||
var $aktiv; // boolean
|
||||
var $insertamum; // timestamp
|
||||
var $insertvon; // varchar(16)
|
||||
var $updateamum; // timestamp
|
||||
var $updatevon; // varchar(16)
|
||||
var $ext_id; // bigint
|
||||
var $person_id; // @var integer
|
||||
var $aktstatus; // @var integer
|
||||
var $aktstatus_bezeichnung; // @var integer
|
||||
var $angelegtam; // @var timestamp
|
||||
var $anrede; // @var string
|
||||
var $anzahlderkinder; // @var integer
|
||||
var $bemerkung; // @var string
|
||||
var $bismelden; // @var boolean
|
||||
var $bismelden_bezeichnung; // @var boolean
|
||||
var $ersatzkennzeichen; // @var string
|
||||
var $familienname; // @var string
|
||||
var $familienstand; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
|
||||
var $familienstand_bezeichnung; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
|
||||
var $gebdat; // @var date
|
||||
var $gebnation; // @var string
|
||||
var $gebort; // @var string
|
||||
var $geschlecht; // @var string
|
||||
var $staatsbuergerschaft; // @var string
|
||||
var $svnr; // @var string
|
||||
var $titelpost; // @var string Titel nach dem Namen (BA, MA, etc)
|
||||
var $titelpre; // @var string Titel vor dem Namen (Dr, Mag, Dipl.Ing, etc)
|
||||
var $uid; // @var string
|
||||
var $vorname; // @var string
|
||||
var $vornamen; // @var string
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
// *************************************************************************
|
||||
// * Konstruktor - Uebergibt die Connection und laedt optional eine Person
|
||||
// * @param $conn Datenbank-Connection
|
||||
// * $person_id Person die geladen werden soll (default=null)
|
||||
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
|
||||
// * oder LATIN9 Codierung verarbeitet werden sollen
|
||||
// *************************************************************************
|
||||
function person($conn, $person_id=null, $unicode=false)
|
||||
/**
|
||||
* Konstruktor - Uebergibt die Connection und Laedt optional eine Person
|
||||
* @param $conn Datenbank-Connection
|
||||
* $pers_id Person die geladen werden soll (default=null)
|
||||
*/
|
||||
function person($conn, $pers_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
|
||||
if($unicode)
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
else
|
||||
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
|
||||
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
|
||||
if($person_id != null)
|
||||
$this->load($person_id);
|
||||
if($pers_id != null)
|
||||
$this->load($pers_id);
|
||||
}
|
||||
|
||||
// *********************************************************
|
||||
// * Laedt Person mit der uebergebenen ID
|
||||
// * @param $person_id ID der Person die geladen werden soll
|
||||
// *********************************************************
|
||||
/**
|
||||
* Laden einen Datensatz mit der Personal_id die uebergeben wird
|
||||
* @param $person_id ID der Person die geladen werden soll
|
||||
*/
|
||||
function load($person_id)
|
||||
{
|
||||
//person_id auf gueltigkeit pruefen
|
||||
if(is_numeric($person_id) && $person_id!='')
|
||||
{
|
||||
$qry = "SELECT person_id, sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
|
||||
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
|
||||
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id
|
||||
FROM tbl_person WHERE person_id='$person_id'";
|
||||
|
||||
if(!$result=pg_query($this->conn,$qry))
|
||||
$qry = "SELECT * FROM person WHERE person_pk=$person_id";
|
||||
if(!$res=pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim lesen der Personendaten';
|
||||
$this->errormsg = 'Fehler beim auslesen der Daten';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->person_id = $row->person_id;
|
||||
$this->sprache = $row->sprache;
|
||||
$this->anrede = $row->anrede;
|
||||
$this->titelpost = $row->titelpost;
|
||||
$this->titelpre = $row->titelpre;
|
||||
$this->nachname = $row->nachname;
|
||||
$this->vorname = $row->vorname;
|
||||
$this->vornamen = $row->vornamen;
|
||||
$this->gebdatum = $row->gebdatum;
|
||||
$this->gebort = $row->gebort;
|
||||
$this->gebzeit = $row->gebzeit;
|
||||
$this->foto = $row->foto;
|
||||
$this->anmerkungen = $row->anmerkungen;
|
||||
$this->homepage = $row->homepage;
|
||||
$this->svnr = $row->svnr;
|
||||
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$this->familienstand = $row->familienstand;
|
||||
$this->anzahlkinder = $row->anzahlkinder;
|
||||
$this->aktiv = ($row->aktiv=='t'?true:false);
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->person_id = $row->person_pk;
|
||||
$this->aktstatus = $row->aktstatus;
|
||||
$this->angelegtam = $row->angelegtam;
|
||||
$this->anrede = $row->anrede;
|
||||
$this->anzahlderkinder = $row->anzahlderkinder;
|
||||
$this->bemerkung = $row->bemerkung;
|
||||
$this->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$this->familienname = $row->familienname;
|
||||
$this->familienstand = $row->familienstand;
|
||||
$this->gebdat = $row->gebdat;
|
||||
$this->gebnation = $row->gebnation;
|
||||
$this->gebort = $row->gebort;
|
||||
$this->geschlecht = $row->geschlecht;
|
||||
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$this->svnr = $row->svnr;
|
||||
$this->titelpre = $row->titel;
|
||||
$this->titlepost = $row->postnomentitel;
|
||||
$this->uid = $row->uid;
|
||||
$this->vorname = $row->vorname;
|
||||
$this->vornamen = $row->vornamen;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Personendatensatz mit der ID '.$person_id.' vorhanden';
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Die person_id muss eine gueltige Zahl sein';
|
||||
$this->errormsg = "Die person_id muss eine Zahl sein";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// *******************************************
|
||||
// * Prueft die Variablen vor dem Speichern
|
||||
// * auf Gueltigkeit.
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// *******************************************
|
||||
function validate()
|
||||
// Clean stuff from a string
|
||||
function clean_string1($string)
|
||||
{
|
||||
$trans = array("瓣" => "ae",
|
||||
"�" => "Ae",
|
||||
"繹" => "oe",
|
||||
"�" => "Oe",
|
||||
"羹" => "ue",
|
||||
"�" => "Ue",
|
||||
"獺" => "a",
|
||||
"�" => "a",
|
||||
"矇" => "e",
|
||||
"癡" => "e",
|
||||
"籀" => "o",
|
||||
"簷" => "o",
|
||||
"穩" => "i",
|
||||
"穫" => "i",
|
||||
"繳" => "u",
|
||||
"羅" => "u",
|
||||
"�" => "ss");
|
||||
$string = strtr($string, $trans);
|
||||
return ereg_replace("[^a-zA-Z0-9]", "", $string);
|
||||
//[:space:]
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen auf Gueltigkeit
|
||||
* @return true wenn ok, false wenn Variablen ungueltig sind
|
||||
*/
|
||||
function checkvars1()
|
||||
{
|
||||
if(strlen($this->sprache)>16)
|
||||
//Hochkomma herausfiltern
|
||||
$this->familienname = str_replace("'","`", $this->familienname);
|
||||
$this->vorname = str_replace("'","`", $this->vorname);
|
||||
$this->anrede = str_replace("'","`", $this->anrede);
|
||||
$this->vornamen = str_replace("'","`", $this->vornamen);
|
||||
$this->gebort = str_replace("'","`", $this->gebort);
|
||||
$this->svnr = str_replace("'","`", $this->svnr);
|
||||
$this->titelpre = str_replace("'","`", $this->titelpre);
|
||||
$this->titelpost = str_replace("'","`", $this->titelpost);
|
||||
$this->gebnation = str_replace("'","`", $this->gebnation);
|
||||
$this->ersatzkennzeichen = str_replace("'","`", $this->ersatzkennzeichen);
|
||||
$this->bemerkung = str_replace("'","`", $this->bemerkung);
|
||||
if(ereg("[^a-zA-Z0-9]", $this->uid))
|
||||
{
|
||||
$this->errormsg = 'Sprache darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->anrede)>16)
|
||||
{
|
||||
$this->errormsg = 'Anrede darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->titelpost)>32)
|
||||
{
|
||||
$this->errormsg = 'Titelpost darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->titelpre)>64)
|
||||
{
|
||||
$this->errormsg = 'Titelpre darf nicht laenger als 64 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->nachname)>64)
|
||||
{
|
||||
$this->errormsg = 'Nachname darf nicht laenger als 64 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if($this->nachname=='' || is_null($this->nachname))
|
||||
{
|
||||
$this->errormsg = 'Nachname muss eingegeben werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(strlen($this->vorname)>32)
|
||||
{
|
||||
$this->errormsg = 'Vorname darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->vornamen)>128)
|
||||
{
|
||||
$this->errormsg = 'Vornamen darf nicht laenger als 128 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
//ToDo Gebdatum pruefen -> laut bis muss er aelter als 10 Jahre sein
|
||||
if(strlen($this->gebdatum)==0 || is_null($this->gebdatum))
|
||||
{
|
||||
$this->errormsg = 'Geburtsdatum muss eingegeben werden';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->gebort)>128)
|
||||
{
|
||||
$this->errormsg = 'Geburtsort darf nicht laenger als 128 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if($this->foto!='' && !is_numeric($this->foto))
|
||||
{
|
||||
$this->errormsg = 'FotoOID ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->anmerkungen)>256)
|
||||
{
|
||||
$this->errormsg = 'Anmerkungen darf nicht laenger als 256 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->homepage)>256)
|
||||
{
|
||||
$this->errormsg = 'Homepage darf nicht laenger als 256 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->svnr)>10)
|
||||
{
|
||||
$this->errormsg = 'SVNR darf nicht laenger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->ersatzkennzeichen)>10)
|
||||
{
|
||||
$this->errormsg = 'Ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->familienstand)>1)
|
||||
{
|
||||
$this->errormsg = 'Familienstand ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($this->anzahlkinder!='' && !is_numeric($this->anzahlkinder))
|
||||
{
|
||||
$this->errormsg = 'Anzahl der Kinder ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(!is_bool($this->aktiv))
|
||||
{
|
||||
$this->errormsg = 'Aktiv ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->insertvon)>16)
|
||||
{
|
||||
$this->errormsg = 'Insertvon darf nicht laenger als 16 Zeichen sien';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->updatevon)>16)
|
||||
{
|
||||
$this->errormsg = 'Updatevon darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if($this->ext_id!='' && !is_numeric($this->ext_id))
|
||||
{
|
||||
$this->errormsg = 'Ext_ID ist keine gueltige Zahl';
|
||||
$this->errormsg = "UID darf keine Umlaute oder Sonderzeichen enthalten";
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
//Maximallaenge pruefen
|
||||
if(strlen($this->familienname)>255)
|
||||
{
|
||||
$this->errormsg = 'Familienname darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->vorname)>255)
|
||||
{
|
||||
$this->errormsg = 'Vorname darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->anrede)>20)
|
||||
{
|
||||
$this->errormsg = 'Anrede darf nicht laenger als 20 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->vornamen)>255)
|
||||
{
|
||||
$this->errormsg = 'Vornamen darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->geschlecht)>1)
|
||||
{
|
||||
$this->errormsg = 'Geschlecht darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->gebort)>255)
|
||||
{
|
||||
$this->errormsg = 'Geburtsort darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->svnr)!=10)
|
||||
{
|
||||
$this->errormsg = 'SVNR muss 10 Zeichen lang sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->svnr))
|
||||
{
|
||||
$this->errormsg = 'SVNR muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->svnr=='0000000000') //Leere SVNR wird zum anlegen des neuen Leerdatensatzes benoetigt
|
||||
$this->svnr='';
|
||||
else
|
||||
{
|
||||
//SVNR mit Pruefziffer pruefen
|
||||
//Die 4. Stelle in der SVNR ist die Pruefziffer
|
||||
//(Summe von (gewichtung[i]*svnr[i])) modulo 11 ergibt diese Pruefziffer
|
||||
//Falls nicht, ist die SVNR ungueltig
|
||||
$gewichtung = array(3,7,9,0,5,8,4,2,1,6);
|
||||
$erg=0;
|
||||
//Quersumme bilden
|
||||
for($i=0;$i<10;$i++)
|
||||
$erg += $gewichtung[$i] * $this->svnr{$i};
|
||||
|
||||
if($this->svnr{3}!=($erg%11)) //Vergleichen der Pruefziffer mit Quersumme Modulo 11
|
||||
{
|
||||
$this->errormsg = 'SVNR ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(strlen($this->bismelden)>1)
|
||||
{
|
||||
$this->errormsg = 'bismelden darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->titelpre)>30)
|
||||
{
|
||||
$this->errormsg = 'titelpre darf nicht laenger als 30 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->titelpost)>30)
|
||||
{
|
||||
$this->errormsg = 'titelpost darf nicht laenger als 30 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->uid)>20)
|
||||
{
|
||||
$this->errormsg = 'uid darf nicht laenger als 20 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->gebnation)>3)
|
||||
{
|
||||
$this->errormsg = 'Geburtsnation darf nicht laenger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->staatsbuergerschaft)>3)
|
||||
{
|
||||
$this->errormsg = 'Staatsb羹rgerschaft darf nicht laenger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->ersatzkennzeichen)>10)
|
||||
{
|
||||
$this->errormsg = 'ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Zahlenwerte ueberpruefen
|
||||
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
if(!is_numeric($this->familienstand) && $this->familienstand!='') return false;
|
||||
if(!is_numeric($this->anzahlderkinder) && $this->anzahlderkinder!='') return false;
|
||||
if(!is_numeric($this->aktstatus) && $this->aktstatus!='') return false;
|
||||
|
||||
if($this->gebdat!='' && (time() - strtotime($this->gebdat))<315360000) // Wenn nicht aelter als 10 Jahre = 315360000 Sekunden
|
||||
{
|
||||
$this->errormsg = 'Geburtsdatum ist falsch: Person muss 鄟ter als 10 Jahre sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->uid_exists($this->uid, $this->person_id))
|
||||
{
|
||||
$this->errormsg = 'Diese UID existiert bereits';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg='';
|
||||
return true;
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * wenn $var '' ist wird "null" zurueckgegeben
|
||||
// * wenn $var !='' ist werden Datenbankkritische
|
||||
// * zeichen mit backslash versehen und das ergbnis
|
||||
// * unter hochkomma gesetzt.
|
||||
// ************************************************
|
||||
function addslashes($var)
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
|
||||
// ************************************************************
|
||||
// * Speichert die Personendaten in die Datenbank
|
||||
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
|
||||
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
|
||||
// * @return true wenn erfolgreich, false im Fehlerfall
|
||||
// ************************************************************
|
||||
/**
|
||||
* Speichert die Daten in die Datenbank
|
||||
* Wenn $new auf true gesetzt ist wird eingefuegt
|
||||
* ansonsten der datensatz $person_id upgedated
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
{
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!person::validate())
|
||||
if(!$this->checkvars1())
|
||||
return false;
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'INSERT INTO tbl_person (sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
|
||||
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
|
||||
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon , ext_id)
|
||||
VALUES('.$this->addslashes($this->sprache).','.
|
||||
$this->addslashes($this->anrede).','.
|
||||
$this->addslashes($this->titelpost).','.
|
||||
$this->addslashes($this->titelpre).','.
|
||||
$this->addslashes($this->nachname).','.
|
||||
$this->addslashes($this->vorname).','.
|
||||
$this->addslashes($this->vornamen).','.
|
||||
$this->addslashes($this->gebdatum).','.
|
||||
$this->addslashes($this->gebort).','.
|
||||
$this->addslashes($this->gebzeit).','.
|
||||
$this->addslashes($this->foto).','.
|
||||
$this->addslashes($this->anmerkungen).','.
|
||||
$this->addslashes($this->homepage).','.
|
||||
$this->addslashes($this->svnr).','.
|
||||
$this->addslashes($this->ersatzkennzeichen).','.
|
||||
$this->addslashes($this->familienstand).','.
|
||||
$this->addslashes($this->anzahlkinder).','.
|
||||
($this->aktiv?'true':'false').','.
|
||||
$this->addslashes($this->insertamum).','.
|
||||
$this->addslashes($this->insertvon).','.
|
||||
$this->addslashes($this->updateamum).','.
|
||||
$this->addslashes($this->updatevon).','.
|
||||
$this->addslashes($this->ext_id).');';
|
||||
{
|
||||
//Naechste ID aus Sequence holen
|
||||
$qry = "SELECT nextval('person_seq') as id;";
|
||||
if(!$row=pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Auslesen der Sequence";
|
||||
return false;
|
||||
}
|
||||
$this->person_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO person (person_pk, familienname, angelegtam, vorname, anrede, vornamen,".
|
||||
" geschlecht, gebdat, gebort, staatsbuergerschaft, familienstand, svnr, anzahlderkinder,".
|
||||
" ersatzkennzeichen, bemerkung, creationdate,creationuser, aktstatus, bismelden, titel, postnomentitel,".
|
||||
" uid, gebnation) VALUES( $this->person_id,".
|
||||
" '$this->familienname', now(), '$this->vorname', '$this->anrede', '$this->vornamen',".
|
||||
($this->geschlecht!=''?"'$this->geschlecht'":"'M'").", ".
|
||||
($this->gebdat!=''?"'$this->gebdat'":'null').", '$this->gebort', '$this->staatsbuergerschaft',".
|
||||
($this->familienstand!=''?"'$this->familienstand'":'null').",".
|
||||
" '$this->svnr', ".
|
||||
($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'null').",".
|
||||
" '$this->ersatzkennzeichen', '$this->bemerkung', now(),".
|
||||
" '$this->updatevon', '".($this->aktstatus>0?$this->aktstatus:100)."', '".($this->bismelden?'J':'N')."', '$this->titelpre', '$this->titelpost',".
|
||||
(strlen($this->uid)>0?" '$this->uid'":'null').",".
|
||||
" '$this->gebnation');";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//person_id auf gueltigkeit pruefen
|
||||
//peson_id auf gueltigkeit pruefen
|
||||
if(!is_numeric($this->person_id))
|
||||
{
|
||||
{
|
||||
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = 'UPDATE tbl_person SET'.
|
||||
' sprache='.$this->addslashes($this->sprache).','.
|
||||
' anrede='.$this->addslashes($this->anrede).','.
|
||||
' titelpost='.$this->addslashes($this->titelpost).','.
|
||||
' titelpre='.$this->addslashes($this->titelpre).','.
|
||||
' nachname='.$this->addslashes($this->nachname).','.
|
||||
' vorname='.$this->addslashes($this->vorname).','.
|
||||
' vornamen='.$this->addslashes($this->vornamen).','.
|
||||
' gebdatum='.$this->addslashes($this->gebdatum).','.
|
||||
' gebort='.$this->addslashes($this->gebort).','.
|
||||
' gebzeit='.$this->addslashes($this->gebzeit).','.
|
||||
' foto='.$this->addslashes($this->foto).','.
|
||||
' anmerkungen='.$this->addslashes($this->anmerkungen).','.
|
||||
' homepage='.$this->addslashes($this->homepage).','.
|
||||
' svnr='.$this->addslashes($this->svnr).','.
|
||||
' ersatzkennzeichen='.$this->addslashes($this->ersatzkennzeichen).','.
|
||||
' familienstand='.$this->addslashes($this->familienstand).','.
|
||||
' anzahlkinder='.$this->addslashes($this->anzahlkinder).','.
|
||||
' aktiv='.($this->aktiv?'true':'false').','.
|
||||
' updateamum='.$this->addslashes($this->updateamum).','.
|
||||
' updatevon='.$this->addslashes($this->updatevon).','.
|
||||
' ext_id='.$this->addslashes($this->ext_id).
|
||||
" WHERE person_id='$this->person_id'";
|
||||
|
||||
$qry = "UPDATE person SET ".
|
||||
" familienname='$this->familienname',".
|
||||
" vorname='$this->vorname',".
|
||||
" anrede='$this->anrede',".
|
||||
" vornamen='$this->vornamen',".
|
||||
" geschlecht=".($this->geschlecht!=''?"'$this->geschlecht'":"'M'").",".
|
||||
" gebdat=".($this->gebdat!=''?"'$this->gebdat'":'null').",".
|
||||
" gebort='$this->gebort',".
|
||||
" staatsbuergerschaft='$this->staatsbuergerschaft',".
|
||||
" familienstand=".($this->familienstand!=''?"'$this->familienstand'":'0').",".
|
||||
" svnr=".($this->svnr!=''?"'$this->svnr'":'null').",".
|
||||
" anzahlderkinder=".($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'0').",".
|
||||
" ersatzkennzeichen='$this->ersatzkennzeichen',".
|
||||
" bemerkung='$this->bemerkung',".
|
||||
" aktstatus='$this->aktstatus',".
|
||||
" bismelden='".($this->bismelden?'J':'N')."',".
|
||||
" titel='$this->titelpre',".
|
||||
" postnomentitel='$this->titelpost',".
|
||||
" uid='$this->uid',".
|
||||
" gebnation='$this->gebnation'".
|
||||
" WHERE person_pk='$this->person_id'";
|
||||
}
|
||||
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
if($this->new)
|
||||
{
|
||||
$qry = "SELECT currval('tbl_person_person_id_seq') AS id;";
|
||||
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
$this->person_id=$row->id;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//Log schreiben
|
||||
return true;
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$this->nachname.' '.$qry;
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Speichern des Person-Datensatzes:".$qry;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param $person_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn OK false im Fehlerfall
|
||||
*/
|
||||
function delete($person_id)
|
||||
{
|
||||
//person_id auf Gueltigkeit pruefen
|
||||
if(!is_numeric($person_id) || $person_id=='')
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "Delete from person where person_pk=$person_id";
|
||||
|
||||
if(!pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle Personen aus der Datenbank
|
||||
* @return true wenn OK, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
/** Braucht zuviel Speicher
|
||||
|
||||
$qry = "SELECT * FROM person";
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Datensaetze';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$pers=new person($this->conn);
|
||||
|
||||
$pers->person_id = $row->person_pk;
|
||||
$pers->aktstatus = $row->aktstatus;
|
||||
$pers->angelegtam = $row->angelegtam;
|
||||
$pers->anrede = $row->anrede;
|
||||
$pers->anzahlderkinder = $row->anzahlderkinder;
|
||||
$pers->bemerkung = $row->bemerkung;
|
||||
$pers->bismelden = ($row->bismelden=='J'?true:false);
|
||||
$pers->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$pers->familienname = $row->familienname;
|
||||
$pers->familienstand = $row->familienstand;
|
||||
$pers->gebdat = $row->gebdat;
|
||||
$pers->gebnation = $row->gebnation;
|
||||
$pers->gebort = $row->gebort;
|
||||
$pers->geschlecht = $row->geschlecht;
|
||||
$pers->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$pers->svnr = $row->svnr;
|
||||
$pers->titelpre = $row->titel;
|
||||
$pers->titelpost = $row->postnomentitel;
|
||||
$pers->uid = $row->uid;
|
||||
$pers->vorname = $row->vorname;
|
||||
$pers->vornamen = $row->vornamen;
|
||||
$pers->updateamum = $row->creationdate;
|
||||
$pers->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $pers;
|
||||
}
|
||||
return true;
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob die UID schon vergeben ist. Wenn ein zweiter
|
||||
* Parameter angegeben wird, wird diese ID von der ueberpruefung
|
||||
* ausgeschlossen ( fuer Update eines Datensatzes )
|
||||
*/
|
||||
function uid_exists($uid, $person_id='')
|
||||
{
|
||||
if($uid!='')
|
||||
{
|
||||
$this->errormsg = '';
|
||||
//Datenbank Check
|
||||
$qry = "SELECT count(*) as anz from person where uid='$uid'";
|
||||
if($person_id!='')
|
||||
$qry .= " AND person_pk<>".$person_id;
|
||||
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
if($row->anz == 0)
|
||||
{
|
||||
//Wurde deaktiviert weil der Zugriff vom auf den LDAP Server
|
||||
//vom der Calva aus nicht funktioniert
|
||||
//Ldap Check
|
||||
//$ds = ldap_connect(LDAP_SERVER);
|
||||
//$dn = "ou=People, dc=technikum-wien, dc=at";
|
||||
//$sr = ldap_search($ds,$dn,"uid=$uid");
|
||||
|
||||
//if(ldap_count_entries($ds,$sr)>0)
|
||||
// return true;
|
||||
//else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim checken der uid';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualisiert den AktStatus
|
||||
*/
|
||||
function updateaktstatus($person_id)
|
||||
{
|
||||
$mitarbeiter_id = '';
|
||||
$qry = "Select mitarbeiter_pk from mitarbeiter where person_fk='$person_id'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
$mitarbeiter_id = $row->mitarbeiter_pk;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim ermitteln der Mitarbeiter_id';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim ermitteln der mitarbeiter_id';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Funktionen holen
|
||||
$qry = "Select funktion from funktion where ".
|
||||
"studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')".
|
||||
" AND mitarbeiter_fk = '$mitarbeiter_id'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
$fkt=array();
|
||||
$i=0;
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$fkt[$i]=$row->funktion;
|
||||
$i++;
|
||||
}
|
||||
|
||||
//Aktstatus ermitteln
|
||||
if(in_array(5,$fkt)) //STGL
|
||||
$aktstatus = 104;
|
||||
elseif(in_array(6,$fkt)) //FBL
|
||||
$aktstatus = 103;
|
||||
elseif(in_array(2,$fkt)) //FBK
|
||||
$aktstatus = 102;
|
||||
elseif(in_array(1,$fkt)) //LKT
|
||||
$aktstatus = 101;
|
||||
else
|
||||
$aktstatus = 100; //Mitarbeiter
|
||||
|
||||
$this->status = $aktstatus;
|
||||
//neuen akstatus setzen
|
||||
$qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id";
|
||||
if(pg_query($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;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim setzen des Aktstatus';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setaktstatus($status, $person_id)
|
||||
{
|
||||
$qry = "Update person set aktstatus = '$status' where person_pk='$person_id'";
|
||||
if(!pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Setzen des aktuellen Status'.$qry;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user