*/ require_once(dirname(__FILE__).'/basis_db.class.php'); class personlog extends basis_db { public $new; // boolean public $logs = array(); // lehreinheit Objekt //Tabellenspalten public $log_id; // Serial public $person_id; public $zeitpunkt; // timestamp public $app; // varchar(32) public $taetigkeit_kurzbz; // varchar(32) public $oe_kurzbz; // varchar(32) public $logtype_kurzbz; // varchar(32) public $logdata; public $insertvon; /** * Konstruktor */ public function __construct($log_id=null) { parent::__construct(); } /** * Erstellt einen Log Eintrag zu einer Person * @param integer $person_id ID der Person. * @param string $logtype_kurzbz Typ des Logeintrages * @param array $logdata Array mit den zusaetzlichen Logdaten zu diesem Typ. * @param string $taetigkeit_kurzbz Kurzbz der Verarbeitungstaetigkeit. * @param string $app Applikation von der dieser Logeintrag stammt. * @param string $oe_kurzbz Kurzbz der Organisationseinheit. (optional) * @param string $user User der die Aktion durchgefuehrt hat. (optional) * @return boolean true wenn erfolgreich, false im Fehlerfall. */ public function log($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $app = 'core', $oe_kurzbz = null, $user = null) { $qry = "INSERT INTO system.tbl_log(person_id, zeitpunkt, taetigkeit_kurzbz, app, oe_kurzbz, logtype_kurzbz, logdata, insertvon) VALUES(". $this->db_add_param($person_id).','. $this->db_add_param(date('Y-m-d H:i:s')).','. $this->db_add_param($taetigkeit_kurzbz).','. $this->db_add_param($app).','. $this->db_add_param($oe_kurzbz).','. $this->db_add_param($logtype_kurzbz).','. $this->db_add_param(json_encode($logdata)).','. $this->db_add_param($user).')'; if($this->db_query($qry)) { return true; } else { $this->errormsg = 'Fehler beim Speichern des Logeintrages'; return false; } } /** * Löscht alle Logeinträge vom Typ "Precessstate" mit Namen "Parked" der übergebenen Person_id, die in der Zukunft liegen. * @param integer $person_id ID der Person, deren geparkter Logeintrag gelöscht werden soll. * @return boolean true wenn erfolgreich, false im Fehlerfall. */ public function deleteParked($person_id) { $qry = "DELETE FROM system.tbl_log WHERE logtype_kurzbz = 'Processstate' AND person_id = ".$this->db_add_param($person_id)." AND logdata ->> 'name' = 'Parked' AND zeitpunkt >= now();"; if($this->db_query($qry)) { return true; } else { $this->errormsg = 'Fehler beim Löschen des geparkten Logeintrages'; return false; } } } ?>