diff --git a/include/filter.class.php b/include/filter.class.php new file mode 100644 index 000000000..8b05d054d --- /dev/null +++ b/include/filter.class.php @@ -0,0 +1,397 @@ +$name=$value; + } + + public function __get($name) + { + return $this->$name; + } + + + /** + * Laden eines Filters + * @param filter_id ID des Datensatzes, der geladen werden soll + * @return boolean true wenn ok, false im Fehlerfall + */ + public function load($filter_id) + { + if(!is_numeric($filter_id)) + { + $this->errormsg = 'Appdaten_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "SELECT * FROM public.tbl_filter WHERE filter_id=".$this->db_add_param($filter_id, FHC_INTEGER, false); + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->filter_id=$row->filter_id; + $this->kurzbz=$row->kurzbz; + $this->sql=$row->sql; + $this->valuename=$row->valuename; + $this->showvalue=$row->showvalue; + $this->type=$row->type; + $this->htmlattr=$row->htmlattr; + $this->insertamum=$row->insertamum; + $this->insertvon=$row->insertvon; + $this->updateamum=$row->updateamum; + $this->updatevon=$row->updatevon; + $this->new = false; + + } + } + else + { + $this->error_msg = 'Datensatz konnte nicht geladen werden'; + return false; + } + + return true; + } + + /** + * Laden eines Filters + * @param filter_id ID des Datensatzes, der geladen werden soll + * @return boolean true wenn ok, false im Fehlerfall + */ + public function loadAll() + { + + $qry = "SELECT * FROM public.tbl_filter;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new filter(); + + $obj->filter_id=$row->filter_id; + $obj->kurzbz=$row->kurzbz; + $obj->sql=$row->sql; + $obj->valuename=$row->valuename; + if ($row->showvalue=='t') + $obj->showvalue=true; + else + $obj->showvalue=false; + $obj->type=$row->type; + $obj->htmlattr=$row->htmlattr; + $obj->insertamum=$row->insertamum; + $obj->insertvon=$row->insertvon; + $obj->updateamum=$row->updateamum; + $obj->updatevon=$row->updatevon; + $obj->new = false; + + $this->result[] = $obj; + } + } + else + { + $this->errormsg = 'Datensatz konnte nicht geladen werden'; + return false; + } + + return true; + } + + /** + * Suchen ob Filter vorhanden + * @param kurzbz des Datensatzes, der gefunden werden soll + * @return boolean true wenn ok, false im Fehlerfall + */ + public function isFilter($kurzbz) + { + foreach ($this->result as $filter) + { + if ($filter->kurzbz==$kurzbz) + return true; + } + + return false; + } + + /** + * Ausgabe des HTML Widgets + * @param kurzbz des Datensatzes, der gefunden werden soll + * @return boolean true wenn ok, false im Fehlerfall + */ + public function getHtmlWidget($kurzbz) + { + $html=''; + foreach ($this->result as $filter) + { + if ($filter->kurzbz==$kurzbz) + { + $html.="\n\t\t\t"; + switch ($filter->type) + { + case 'select': + $html.='"; + } + return $html; + } + } + + return $this->errormsg; + } + + /** + * Laden eines Filters + * @param filter_id ID des Datensatzes, der geladen werden soll + * @return boolean true wenn ok, false im Fehlerfall + */ + public function loadValues($sql, $valuename, $showvalue) + { + if($this->db_query($sql)) + { + while($row = $this->db_fetch_row()) + { + $obj=new value(); + $obj->text=''; + for ($i=0; $i<$this->db_num_fields(); $i++) + { + if ($this->db_field_name(null,$i)==$valuename) + { + $obj->value=$row[$i]; + if ($showvalue) + $obj->text.='('.$row[$i].') '; + } + else + $obj->text.='- '.$row[$i].' '; + } + + $this->values[] = $obj; + } + //var_dump($this); + } + else + { + $this->errormsg = 'Datensatz konnte nicht geladen werden'; + return false; + } + + return true; + } + + + + /** + * Prueft die Variablen auf Gueltigkeit + * @return true wenn ok, false im Fehlerfall + */ + protected function validate() + { + //Zahlenfelder pruefen + /* version wird beim speichern automatisch gesetzt + if(!is_numeric($this->version) && $this->version!=='') + { + $this->errormsg='version enthaelt ungueltige Zeichen'; + return false; + }*/ + + //Gesamtlaenge pruefen + if(mb_strlen($this->kurzbz)>32) + { + $this->errormsg = 'Kurzbz darf nicht länger als 32 Zeichen sein'; + return false; + } + + //Boleanfelder prüfen + if(!is_bool($this->showvalue)) + { + $this->errormsg='Showvalue ist ungueltig'; + return false; + } + + $this->errormsg = ''; + return true; + } + + /** + * Speichert den aktuellen Datensatz in die Datenbank + * @param neueVersion boolean default false; wenn gesetzt, dann + * wird Versionsnummer auf aktuelles Maximum+1 gesetzt. (für 'Save As' + * Funktion bzw. zum Anlegen komplett neuer Daten) + * @return true wenn ok, false im Fehlerfall + */ + public function save($neueVersion=false) + { + //Variablen pruefen + if(!$this->validate()) + return false; + + $this->db_query('BEGIN'); //Starting Transaction + + if($this->new) + { + //Neuen Datensatz einfuegen + $qry='INSERT INTO public.tbl_filter (kurzbz, sql, valuename, + showvalue, type, htmlattr insertamum, insertvon) VALUES ('. + $this->db_add_param($this->kurzbz).', '. + $this->db_add_param($this->sql).', '. + $this->db_add_param($this->valuename).', '. + $this->db_add_param($this->showvalue, FHC_BOOLEAN).', '. + $this->db_add_param($this->type).', '. + $this->db_add_param($this->htmlattr).', '. + 'now(), '. + $this->db_add_param($this->insertvon).');'; + } + else + { + //Pruefen ob filter_id eine gueltige Zahl ist + if(!is_numeric($this->filter_id)) + { + $this->errormsg = 'filter_id muss eine gueltige Zahl sein'; + return false; + } + + $qry='UPDATE public.tbl_filter SET'. + ' kurzbz='.$this->db_add_param($this->kurzbz).', '. + ' sql='.$this->db_add_param($this->sql).', '. + ' valuename='.$this->db_add_param($this->valuename).', '. + ' showvalue='.$this->db_add_param($this->showvalue, FHC_BOOLEAN).', '. + ' type='.$this->db_add_param($this->type).', '. + ' htmlattr='.$this->db_add_param($this->htmlattr).', '. + ' updateamum= now(), '. + ' updatevon='.$this->db_add_param($this->updatevon).' '. + ' WHERE filter_id='.$this->db_add_param($this->filter_id, FHC_INTEGER, false).';'; + } + + if($this->db_query($qry)) + { + if($this->new) + { + //naechste ID aus der Sequence holen + $qry="SELECT currval('system.seq_filter_filter_id') as id;"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->filter_id = $row->id; + $this->db_query('COMMIT'); + } + else + { + $this->db_query('ROLLBACK'); + $this->errormsg = "Fehler beim Auslesen der Sequence"; + return false; + } + } + else + { + $this->db_query('ROLLBACK'); + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + return false; + } + } + else + $this->db_query('COMMIT'); + + } + else + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + //echo '
'.var_dump($this).'
'; + return $this->filter_id; + } + + /** + * Loescht den Datenensatz mit der ID die uebergeben wird + * @param $filter_id ID die geloescht werden soll + * @return true wenn ok, false im Fehlerfall + */ + public function delete($filter_id) + { + //Pruefen ob filter_id eine gueltige Zahl ist + if(!is_numeric($filter_id) || $filter_id === '') + { + $this->errormsg = 'filter_id muss eine gültige Zahl sein'."\n"; + return false; + } + + //loeschen des Datensatzes + $qry="DELETE FROM system.tbl_filter WHERE filter_id=".$this->db_add_param($filter_id, FHC_INTEGER, false).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Löschen der Daten'."\n"; + return false; + } + } + +} +?>