conn = $conn; $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; if(!pg_query($conn,$qry)) { $this->errormsg = "Encoding konnte nicht gesetzt werden"; return false; } if($bank_id != null) $this->load($bank_id); } /** * Prueft die gueltigkeit der Variablen * @return true wenn ok, false im Fehlerfall */ function checkvars() { //Gesamtlaenge pruefen $this->errormsg = 'Eine der Maximiallaengen wurde ueberschritten'; if(strlen($this->name)>255) { $this->errormsg = 'Name darf nicht länger als 255 Zeichen sein'; return false; } if(strlen($this->anschrift)>255) { $this->errormsg = 'Anschrift darf nicht länger als 255 Zeichen sein'; return false; } if(strlen($this->blz)>15) { $this->errormsg = 'BLZ darf nicht länger als 15 Zeichen sein'; return false; } if(strlen($this->bic)>15) { $this->errormsg = 'BIC darf nicht länger als 15 Zeichen sein'; return false; } if(strlen($this->kontonr)>25) { $this->errormsg = 'KontoNr darf nicht länger als 25 Zeichen sein'; return false; } if(strlen($this->iban)>25) { $this->errormsg = 'IBAN darf nicht länger als 25 Zeichen sein'; return false; } //Zahlenwerte ueberpruefen $this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen'; if(!is_numeric($this->person_id)) return false; if(!is_numeric($this->typ)) return false; $this->errormsg = ''; return true; } /** * Speichert den aktuellen Datensatz * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt * andernfalls wird der Datensatz mit der ID in $bankverbindung_id aktualisiert * @return true wenn ok, false im Fehlerfall */ function save() { //Gueltigkeit der Variablen pruefen if(!$this->checkvars()) return false; if($this->new) { //Neuen Datensatz einfuegen //Naechste ID aus der Sequence holen $qry = "SELECT nextval('bankverbindung_seq') as id;"; if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) { $this->errormsg = 'Fehler beim auslesen der Sequence'; return false; } $this->bankverbindung_id = $row->id; $qry = "INSERT INTO bankverbindung (bankverbindung_pk, person_fk, name, anschrift, blz, bic,". " kontonr, iban, typ, creationdate, creationuser) VALUES(". " '$this->bankverbindung_id', '$this->person_id', '$this->name', '$this->anschrift',". " '$this->blz', '$this->bic', '$this->kontonr', '$this->iban', '$this->typ', now(), $this->updatevon);"; } else { //Datensatz Updaten //ID pruefen if(!is_numeric($this->bankverbindung_id)) { $this->errormsg = 'bankverbindung_id muss eine Zahl sein'; return false; } $qry="UPDATE bankverbindung SET person_fk='$this->person_id', name='$this->name',". " anschrift='$this->anschrift', blz='$this->blz', bic='$this->bic',". " kontonr='$this->kontonr', iban='$this->iban', typ='$this->typ'". " WHERE bankverbindung_pk=$this->bankverbindung_id"; } 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; } } else { $this->errormsg = 'Fehler beim Speichern der Daten'; return false; } } /** * Loescht den Datensatz mit der uebergebenen ID * @param $bank_id ID des zu loeschenden Datensatzes * @return true wenn ok, false im Fehlerfall */ function delete($bank_id) { if(!is_numeric($bank_id) || $bank_id == '') { $this->errormsg = 'bank_id muss eine Zahl sein'; return false; } $qry="DELETE FROM bankverbindung WHERE bankverbindung_pk=$bank_id"; if(!pg_query($this->conn, $qry)) { $this->errormsg = 'Fehler beim loeschen der Daten'; 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; } } } /** * Liefert die Bankverbindung mit der uebergebenen ID * @param $bank_id ID der bankverbindung * @return true wenn ok, false im Fehlerfall */ function load($bank_id) { if(!is_numeric($bank_id) || $bank_id == '') { $this->errormsg = 'bank_id muss eine gueltige Zahl sein'; return false; } $qry = "SELECT * FROM bankverbindung WHERE bankverbindung_pk=$bank_id"; if(!$res = pg_query($this->conn, $qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; return false; } if($row = pg_fetch_object($res)) { $this->bankverbindung_id = $row->bankverbindung_pk; $this->person_id = $row->person_fk; $this->name = $row->name; $this->anschrift = $row->anschrift; $this->blz = $row->blz; $this->bic = $row->bic; $this->kontonr = $row->kontonr; $this->iban = $row->iban; $this->typ = $row->typ; $this->updateamum = $row->creationdate; $this->updatevon = $row->creationuser; } else { $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden'; return false; } return true; } /** * Liefert alle Bankverbindungen der Person die uebergeben wird * @param $pers_id ID der Person * @return true wenn ok, false im Fehlerfall */ function load_pers($pers_id) { if(!is_numeric($pers_id) || $pers_id == '') { $this->errormsg = 'pers_id muss eine gueltige Zahl sein'; return false; } $qry = "SELECT * FROM bankverbindung WHERE person_fk=$pers_id"; if(!$res = pg_query($this->conn, $qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; return false; } while($row = pg_fetch_object($res)) { $bank_obj = new bankverbindung($this->conn); $bank_obj->bankverbindung_id = $row->bankverbindung_pk; $bank_obj->person_id = $row->person_fk; $bank_obj->name = $row->name; $bank_obj->anschrift = $row->anschrift; $bank_obj->blz = $row->blz; $bank_obj->bic = $row->bic; $bank_obj->kontonr = $row->kontonr; $bank_obj->iban = $row->iban; $bank_obj->typ = $row->typ; $bank_obj->updateamum = $row->creationdate; $bank_obj->updatevon = $row->creationuser; $this->result[] = $bank_obj; } return true; } /** * Liefert alle Bankverbindungen * @return true wenn ok, false im Fehlerfall */ function getAll() { $qry = "SELECT * FROM bankverbindung"; if(!$res = pg_query($this->conn,$qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; return false; } while($row = pg_fetch_object($res)) { $bank_obj = new bankverbindung($this->conn); $bank_obj->bankverbindung_id = $row->bankverbindung_pk; $bank_obj->person_id = $row->person_fk; $bank_obj->name = $row->name; $bank_obj->anschrift = $row->anschrift; $bank_obj->blz = $row->blz; $bank_obj->bic = $row->bic; $bank_obj->kontonr = $row->kontonr; $bank_obj->iban = $row->iban; $bank_obj->typ = $row->typ; $bank_obj->updateamum = $row->creationdate; $bank_obj->updatevon = $row->creationuser; $this->result[] = $bank_obj; } return true; } function getTypBezeichnung($id) { switch($id) { case 1: return 'Privatkonto'; case 2: return 'Firmenkonto'; default: return ''; } } } ?>