, * Andreas Oesterreicher , * Rudolf Hangl , * Gerald Simane-Sequens . */ #-------------------------------------------------------------------------------------------------- /* * * @classe Jahresplan * * @param connectSQL Datenbankverbindung * @param veranstaltungskategorie_kurzbz Veranstaltungskategorie Key * @param veranstaltung_id Veranstaltung Key * @param reservierung_id Reservierung Key * * @return - kein Retourn des Konstruktors * */ include_once(dirname(__FILE__)."/postgre_sql.class.php"); class jahresplan extends postgre_sql { protected $veranstaltungkategorie; protected $veranstaltungskategorie_kurzbz; protected $veranstaltungkategorie_struck; protected $veranstaltungkategorie_mitarbeiter; protected $veranstaltung_struck; protected $veranstaltung; protected $veranstaltung_id; protected $start; protected $ende; protected $start_jahr; protected $ende_jahr; protected $start_jahr_monat; protected $ende_jahr_monat; protected $start_jahr_woche; protected $ende_jahr_woche; protected $suchtext; protected $freigabe; protected $reservierung; protected $reservierung_id; protected $reservierung_struck; //-----Konstruktor function jahresplan($connectSQL,$veranstaltungskategorie_kurzbz="",$veranstaltung_id="",$reservierung_id="") { $this->InitJahresplan(); $this->setSchemaSQL('campus'); $this->setConnectSQL($connectSQL); $this->setVeranstaltungskategorie_kurzbz($veranstaltungskategorie_kurzbz); $this->setVeranstaltung_id($veranstaltung_id); $this->setReservierung_id($reservierung_id); } //-----Initialisierung-------------------------------------------------------------------------------------------- function InitJahresplan() { $this->setError(''); $this->InitVeranstaltungskategorie(); $this->InitVeranstaltung(); } //-----Initialisierung Veranstaltungskategorie-------------------------------------------------------------------------------------------- function InitVeranstaltungskategorie() { $this->setVeranstaltungskategorie_kurzbz(''); $this->setVeranstaltungskategorie(''); $this->getStruckturVeranstaltungskategorie(); $this->setVeranstaltungskategorieMitarbeiter(''); } //-----veranstaltungskategorie_kurzbz-------------------------------------------------------------------------------------------- function getVeranstaltungskategorie_kurzbz() { return $this->veranstaltungskategorie_kurzbz; } function setVeranstaltungskategorie_kurzbz($veranstaltungskategorie_kurzbz) { $this->veranstaltungskategorie_kurzbz=$veranstaltungskategorie_kurzbz; } //-----veranstaltungskategorie Daten-------------------------------------------------------------------------------------------- function getVeranstaltungskategorie() { return $this->veranstaltungskategorie; } function setVeranstaltungskategorie($veranstaltungskategorie) { $this->veranstaltungskategorie=$veranstaltungskategorie; } //-----Kategorien nur fuer Mitarbeiter-------------------------------------------------------------------------------------------- function getVeranstaltungskategorieMitarbeiter() { return $this->veranstaltungkategorie_mitarbeiter; } function setVeranstaltungskategorieMitarbeiter($veranstaltungkategorie_mitarbeiter) { $this->veranstaltungkategorie_mitarbeiter=$veranstaltungkategorie_mitarbeiter; } //-----Veranstaltungskategorie Datenstrucktur-------------------------------------------------------------------------------------------- function getStruckturVeranstaltungskategorie() { $this->setTableSQL('tbl_veranstaltungskategorie'); if ($this->veranstaltungkategorie_struck) return $this->veranstaltungkategorie_struck; return $this->veranstaltungkategorie_struck=$this->setTableStruckturSQL(); } //------------------------------------------------------------------------------------------------- function saveVeranstaltungskategorie($param="") { // Initialisieren $this->setError(''); $cSchemaSQL=$this->getSchemaSQL(); // Konstante $arrTmpTableStrucktur=$this->getStruckturVeranstaltungskategorie(); $constTableStrukturSQL=$this->getTableSQL(); if (!is_array($arrTmpTableStrucktur)) { $this->setError('Kein Tabellenstrucktur ("'.$constTableStrukturSQL.'") gefunden !'); return false; } if (!is_array($param) || count($param)<1 ) return false; // Fehler : es wurden keine Datenuebergeben $this->setNewRecord(true); if (isset($param['veranstaltungskategorie_kurzbz_old']) && !empty($param['veranstaltungskategorie_kurzbz_old'])) $this->setNewRecord(false); $param_kurzbz=(isset($param['veranstaltungskategorie_kurzbz_old'])&& !empty($param['veranstaltungskategorie_kurzbz_old'])?$param['veranstaltungskategorie_kurzbz_old']:$param['veranstaltungskategorie_kurzbz']); $this->setVeranstaltungskategorie_kurzbz($param_kurzbz); // Check ob Daten vorhanden sind - Update wenn key_old belegt, // oder Neuanlage und es duerfen keine Daten vorhanden sein $bTmpMerkNew=$this->getNewRecord(); if ($origVeranstaltungskategorie=$this->loadVeranstaltungskategorie()) { if ($this->getNewRecord()) { $this->setError($param_kurzbz .' bereits vorhanden !'); return false; } } elseif (!$this->getNewRecord()) // Keine Daten gefunden { if ($this->getError()) // Beim Lesen ist ein Fehler aufgetreten return false; } $this->setNewRecord($bTmpMerkNew); $cTmpSQL=""; if ($this->getNewRecord()) { $fildsList=""; $fildsValue=""; reset($arrTmpTableStrucktur); for ($fildIND=0;$fildINDsetStringSQL($cTmpSQL); $this->setResultSQL(null); if (!$this->dbQuery()) { $this->setError($cTmpSQL); return false; } // Beim Lesen ist ein Fehler aufgetreten if (!$this->loadVeranstaltungskategorie()) { if ($this->getError()) return false; $this->setNewRecord(true); } $this->setStringSQL($cTmpSQL); unset($cTmpSQL); $this->setResultSQL(null); return $this->getVeranstaltungskategorie(); } //------------------------------------------------------------------------------------------------- function deleteVeranstaltungskategorie($param="") { // Initialisieren $this->setError(''); //Init $cTmpVeranstaltungskategorie_kurzbz=""; $cSchemaSQL=$this->getschemaSQL(); if (is_array($param) && isset($param['veranstaltungskategorie_kurzbz'])) $this->setVeranstaltungskategorie_kurzbz($param['veranstaltungskategorie_kurzbz']); else if (is_array($param) && !empty($param) ) $this->setVeranstaltungskategorie_kurzbz($param); $cTmpVeranstaltungskategorie_kurzbz=$this->getVeranstaltungskategorie_kurzbz(); // Konstante $arrTmpTableStrucktur=$this->getStruckturVeranstaltungskategorie(); if (!is_array($arrTmpTableStrucktur)) { $this->setError('Kein Tabellenstrucktur ("'.$constTableStrukturSQL.'") gefunden !'); return false; } $constTableStrukturSQL=$this->getTableSQL(); if (!is_array($param) || count($param)<1 ) return false; // Fehler : es wurden keine Datenuebergeben $cTmpSQL=""; if ($origVeranstaltungskategorie=$this->loadVeranstaltungskategorie($cTmpVeranstaltungskategorie_kurzbz)) { $cTmpSQL="delete from ".$cSchemaSQL.$constTableStrukturSQL; if (is_array($cTmpVeranstaltungskategorie_kurzbz)) $cTmpSQL.=" WHERE UPPER(".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz) in ('".strtoupper( implode("','",$cTmpVeranstaltungskategorie_kurzbz))."'); "; else $cTmpSQL.=" WHERE UPPER(".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz) = E'".strtoupper($cTmpVeranstaltungskategorie_kurzbz)."'; "; } if (empty($cTmpSQL)) return 'bereits gelöscht'; $this->setStringSQL($cTmpSQL); $this->setResultSQL(null); if (!$this->dbQuery()) { # $this->setError($cTmpSQL); if ($this->getError()) return false; } // Beim Lesen ist ein Fehler aufgetreten if (!$this->loadVeranstaltungskategorie()) { if ($this->getError()) return false; $this->setNewRecord(true); } $this->setStringSQL($cTmpSQL); unset($cTmpSQL); $this->setResultSQL(null); return $this->getVeranstaltungskategorie(); } //------------------------------------------------------------------------------------------------- function loadVeranstaltungskategorie($veranstaltungskategorie_kurzbz="") { //Init $this->setError(''); $cTmpVeranstaltungskategorie_kurzbz=""; $cSchemaSQL=$this->getschemaSQL(); if (!empty($veranstaltungskategorie_kurzbz) ) $this->setVeranstaltungskategorie_kurzbz($veranstaltungskategorie_kurzbz); $cTmpVeranstaltungskategorie_kurzbz=$this->getVeranstaltungskategorie_kurzbz(); // Kategorien nur fuer Mietarbeiter $Veranstaltungkategorie_mitarbeiter=$this->getVeranstaltungskategorieMitarbeiter(); $cTmpSQL=""; $cTmpSQL.="SELECT * FROM ".$cSchemaSQL."tbl_veranstaltungskategorie "; $cTmpSQL.=" WHERE ".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz>'' "; // Suche nach einer einzigen Veranstaltungskategorie_kurzbz if (!is_array($cTmpVeranstaltungskategorie_kurzbz) && !empty($cTmpVeranstaltungskategorie_kurzbz) ) { $cTmpSQL.=" AND UPPER(".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz)=UPPER('".addslashes(trim($cTmpVeranstaltungskategorie_kurzbz))."') "; } elseif (is_array($cTmpVeranstaltungskategorie_kurzbz) && count($cTmpVeranstaltungskategorie_kurzbz)>0 ) { if (isset($cTmpVeranstaltungskategorie_kurzbz[0]['veranstaltungskategorie_kurzbz'])) // Check ob nicht kpl. Tablestruck in Array { $cTmpVeranstaltungskategorie_kurzbzE=array(); for ($indZEILE=0;$indZEILEsetStringSQL($cTmpSQL); unset($cTmpSQL); $this->setResultSQL(null); # if (!$this->fetch_object()) if (!$this->fetch_all()) return false; $this->setVeranstaltungskategorie($this->getResultSQL()); $this->setResultSQL(null); return $this->getVeranstaltungskategorie(); } //------------------------------------------------------------------------------------------------- // ------------------------ VERANSTALTUNG //-----Initialisierung Veranstaltung-------------------------------------------------------------------------------------------- function InitVeranstaltung() { $this->setVeranstaltung_id(''); $this->setVeranstaltung(''); $this->setStart(''); $this->setEnde(''); $this->setStart_jahr(''); $this->setEnde_jahr(''); $this->setStart_jahr_monat(''); $this->setEnde_jahr_monat(''); $this->setStart_jahr_woche(''); $this->setEnde_jahr_woche(''); $this->setStart_jahr_monat_tag(''); $this->setEnde_jahr_monat_tag(''); $this->setFreigabe(''); $this->setSuchtext(''); $this->getStruckturVeranstaltung(); } //-----veranstaltung_id-------------------------------------------------------------------------------------------- function getVeranstaltung_id() { return $this->veranstaltung_id; } function setVeranstaltung_id($veranstaltung_id="") { $this->veranstaltung_id=$veranstaltung_id; } //-----veranstaltung Daten-------------------------------------------------------------------------------------------- function getVeranstaltung() { return $this->veranstaltung; } function setVeranstaltung($veranstaltung) { $this->veranstaltung=$veranstaltung; } //-----start Jahr-------------------------------------------------------------------------------------------- function getStart_jahr() { return $this->start_jahr; } function setStart_jahr($start_jahr="") { $this->start_jahr=$start_jahr; } //-----ende Jahr-------------------------------------------------------------------------------------------- function getEnde_jahr() { return $this->ende_jahr; } function setEnde_jahr($ende_jahr="") { $this->ende_jahr=$ende_jahr; } //-----start JahrMonat-------------------------------------------------------------------------------------------- function getStart_jahr_monat() { return $this->start_jahr_monat; } function setStart_jahr_monat($start_jahr_monat="") { $this->start_jahr_monat=$start_jahr_monat; } //-----ende JahrMonat-------------------------------------------------------------------------------------------- function getEnde_jahr_monat() { return $this->ende_jahr_monat; } function setEnde_jahr_monat($ende_jahr_monat="") { $this->ende_jahr_monat=$ende_jahr_monat; } //-----start JahrMonat-------------------------------------------------------------------------------------------- function getStart_jahr_woche() { return $this->start_jahr_woche; } function setStart_jahr_woche($start_jahr_woche="") { $this->start_jahr_woche=$start_jahr_woche; } //-----ende JahrMonat-------------------------------------------------------------------------------------------- function getEnde_jahr_woche() { return $this->ende_jahr_woche; } function setEnde_jahr_woche($ende_jahr_woche="") { $this->ende_jahr_woche=$ende_jahr_woche; } //-----start JahrMonat-------------------------------------------------------------------------------------------- function getStart_jahr_monat_tag() { return $this->start_jahr_monat_tag; } function setStart_jahr_monat_tag($start_jahr_monat_tag="") { $this->start_jahr_monat_tag=$start_jahr_monat_tag; } //-----ende JahrMonat-------------------------------------------------------------------------------------------- function getEnde_jahr_monat_tag() { return $this->ende_jahr_monat_tag; } function setEnde_jahr_monat_tag($ende_jahr_monat_tag="") { $this->ende_jahr_monat_tag=$ende_jahr_monat_tag; } //-----start-------------------------------------------------------------------------------------------- function getStart() { return $this->start; } function setStart($start="") { if (!empty($start) && !is_numeric($start)) // Start wurde als Datum Zeit uebergeben { $start=str_replace('-','.',$start); $param=explode(' ',$start); $date=explode('.',$param[0]); if (!isset($param[1])) $param[1]='00:01:00'; $time=explode(':',$param[1]); if (@checkdate($date[1], $date[0], $date[2]) ) { if (is_numeric($cTmpTimeStampWert=@mktime($time[0], $time[1], 0, $date[1],$date[0],$date[2] ))) $start=$cTmpTimeStampWert; } } $this->start=$start; } //-----ende-------------------------------------------------------------------------------------------- function getEnde() { return $this->ende; } function setEnde($ende="") { if (!empty($ende) && !is_numeric($ende)) // Start wurde als Datum Zeit uebergeben { $ende=str_replace('-','.',$ende); $param=explode(' ',$ende); $date=explode('.',$param[0]); if (!isset($param[1])) $param[1]='23:59:59'; $time=explode(':',$param[1]); if (@checkdate($date[1], $date[0], $date[2]) ) { if (is_numeric($cTmpTimeStampWert=@mktime($time[0], $time[1], 0, $date[1],$date[0],$date[2] ))) $ende=$cTmpTimeStampWert; } } $this->ende=$ende; } //-----freigabe-------------------------------------------------------------------------------------------- function getFreigabe() { return $this->freigabe; } function setFreigabe($freigabe="") { $this->freigabe=$freigabe; } //-----freigabe-------------------------------------------------------------------------------------------- function getSuchtext() { return $this->suchtext; } function setSuchtext($suchtext="") { $this->suchtext=$suchtext; } //-----Veranstaltung Daten-------------------------------------------------------------------------------------------- function getStruckturVeranstaltung() { $this->setTableSQL('tbl_veranstaltung'); if ($this->veranstaltung_struck) return $this->veranstaltung_struck; return $this->veranstaltung_struck=$this->setTableStruckturSQL(); } //------------------------------------------------------------------------------------------------- function saveVeranstaltung($param="") { // Initialisieren $this->setError(''); $cSchemaSQL=$this->getSchemaSQL(); // Konstante $arrTmpTableStrucktur=$this->getStruckturVeranstaltung(); $constTableStrukturSQL=$this->getTableSQL(); if (!is_array($arrTmpTableStrucktur)) { $this->setError('Kein Tabellenstrucktur ("'.$constTableStrukturSQL.'") gefunden !'); return false; } if (!is_array($param) || count($param)<1 ) return false; // Fehler : es wurden keine Datenuebergeben $this->setNewRecord(true); if (isset($param['veranstaltung_id_old']) && $param['veranstaltung_id_old']>0) $this->setNewRecord(false); $param_id=(isset($param['veranstaltung_id_old'])&& !empty($param['veranstaltung_id_old'])?$param['veranstaltung_id_old']:$param['veranstaltung_id']); $this->setVeranstaltung_id($param_id); if ( (empty($param['veranstaltung_id']) && !empty($param['veranstaltung_id_old'])) ) { $this->setError('Keine Veranstaltungs ID gefunden !'); return false; } if (!isset($param['veranstaltungskategorie_kurzbz']) || empty($param['veranstaltungskategorie_kurzbz']) ) $param['veranstaltungskategorie_kurzbz']=$this->getVeranstaltungskategorie_kurzbz(); if (empty($param['veranstaltungskategorie_kurzbz']) ) { $this->setError('Keine Veranstaltungskategorie gefunden !'); return false; } $this->setVeranstaltungskategorie_kurzbz($param['veranstaltungskategorie_kurzbz']); $bTmpMerkNew=$this->getNewRecord(); // Check ob Daten vorhanden sind - Update wenn key_old belegt, // oder Neuanlage und es duerfen keine Daten vorhanden sein if ($origVeranstaltungskategorie=$this->loadVeranstaltung()) { if ($this->getNewRecord()) { $this->setError($param_id .' bereits vorhanden !'); return false; } } elseif (!$this->getNewRecord()) // Keine Daten gefunden { if ($this->getError()) // Beim Lesen ist ein Fehler aufgetreten return false; } $this->setNewRecord($bTmpMerkNew); $cTmpSQL=""; if ($this->getNewRecord()) { $fildsList=""; $fildsValue=""; reset($arrTmpTableStrucktur); for ($fildIND=0;$fildINDsetStringSQL($cTmpSQL); $this->setResultSQL(null); if ($this->getNewRecord()) { if (!$this->fetch_object()) { if ($this->getError()) return false; } $iTmpMax=$this->getResultSQL(); $this->setVeranstaltung_id($iTmpMax->max); $param['veranstaltung_id']=$this->getVeranstaltung_id(); } elseif (!$this->dbQuery()) { if ($this->getError()) return false; } // Beim Lesen ist ein Fehler aufgetreten if (!$this->loadVeranstaltung()) { if ($this->getError()) return false; $this->setNewRecord(true); } $this->setStringSQL($cTmpSQL); unset($cTmpSQL); $this->setResultSQL(null); return $this->getVeranstaltung(); } //------------------------------------------------------------------------------------------------- function deleteVeranstaltung($param="") { // Initialisieren $this->setError(''); //Init $cTmpVeranstaltung_id=""; $cSchemaSQL=$this->getschemaSQL(); if (is_array($param) && isset($param['veranstaltung_id'])) $this->setVeranstaltung_id($param['veranstaltung_id']); else if (!is_array($param) && !empty($param) ) $this->setVeranstaltung_id($param); $cTmpVeranstaltung_id=$this->getVeranstaltung_id(); $cTmpVeranstaltungskategorie_kurzbz=""; if (!isset($param['veranstaltungskategorie_kurzbz']) || empty($param['veranstaltungskategorie_kurzbz']) ) $param['veranstaltungskategorie_kurzbz']=$this->getVeranstaltungskategorie_kurzbz(); if (is_array($param) && isset($param['veranstaltungskategorie_kurzbz'])) $this->setVeranstaltungskategorie_kurzbz($param['veranstaltungskategorie_kurzbz']); $cTmpVeranstaltungskategorie_kurzbz=$this->getVeranstaltungskategorie_kurzbz(); // Konstante $arrTmpTableStrucktur=$this->getStruckturVeranstaltung(); $constTableStrukturSQL=$this->getTableSQL(); if (!is_array($arrTmpTableStrucktur)) { $this->setError('Kein Tabellenstrucktur ("'.$constTableStrukturSQL.'") gefunden !'); return false; } if (!is_array($param) || count($param)<1 ) return false; // Fehler : es wurden keine Datenuebergeben $cTmpSQL=""; $cTmpSQL.="BEGIN; "; $cTmpSQL.="update ".$cSchemaSQL."tbl_reservierung set veranstaltung_id=null "; if (is_array($cTmpVeranstaltung_id)) $cTmpSQL.=" WHERE ".$cSchemaSQL."tbl_reservierung.veranstaltung_id in (".implode(",",$cTmpVeranstaltung_id)."); "; else if (!empty($cTmpVeranstaltung_id)) $cTmpSQL.=" WHERE ".$cSchemaSQL."tbl_reservierung.veranstaltung_id =".$cTmpVeranstaltung_id."; "; else $cTmpSQL.=" WHERE ".$cSchemaSQL."tbl_reservierung.veranstaltung_id =".$cTmpVeranstaltung_id."; "; $cTmpSQL.="delete from ".$cSchemaSQL.$constTableStrukturSQL; if (is_array($cTmpVeranstaltung_id)) $cTmpSQL.=" WHERE ".$cSchemaSQL.$constTableStrukturSQL.".veranstaltung_id in (".implode(",",$cTmpVeranstaltung_id)."); "; else if (!empty($cTmpVeranstaltung_id)) $cTmpSQL.=" WHERE ".$cSchemaSQL.$constTableStrukturSQL.".veranstaltung_id =".$cTmpVeranstaltung_id."; "; else $cTmpSQL.=" WHERE ".$cSchemaSQL.$constTableStrukturSQL.".veranstaltung_id =".$cTmpVeranstaltungskategorie_kurzbz."; "; $cTmpSQL.=" COMMIT; "; $this->setStringSQL($cTmpSQL); $this->setResultSQL(null); if (!$this->dbQuery()) { if ($this->getError()) return false; } // Beim Lesen ist ein Fehler aufgetreten if (!$this->loadVeranstaltung()) { if ($this->getError()) return false; $this->setNewRecord(true); } $this->setStringSQL($cTmpSQL); unset($cTmpSQL); $this->setResultSQL(null); return true; } //------------------------------------------------------------------------------------------------- function loadVeranstaltung($veranstaltungskategorie_kurzbz="",$veranstaltung_id="",$freigabe="") { //Init $this->setError(''); $cSchemaSQL=$this->getschemaSQL(); $cTmpVeranstaltung_id=''; if ($veranstaltung_id!='') $this->setVeranstaltung_id($veranstaltung_id); $cTmpVeranstaltung_id=$this->getVeranstaltung_id(); $cTmpVeranstaltungskategorie_kurzbz=""; if ($veranstaltungskategorie_kurzbz!='') $this->setVeranstaltungskategorie_kurzbz($veranstaltungskategorie_kurzbz); $cTmpVeranstaltungskategorie_kurzbz=$this->getVeranstaltungskategorie_kurzbz(); $cTmpFreigabe=""; if ($freigabe!='') $this->setFreigabe($freigabe); $cTmpFreigabe=$this->getFreigabe(); $cTmpSuchtext=$this->getSuchtext(); $cTmpStart=$this->getStart(); $cTmpEnde=$this->getEnde(); // Selektion $cTmpStart_jahr=$this->getStart_jahr(); $cTmpEnde_jahr=$this->getEnde_jahr(); $cTmpStart_jahr_monat=$this->getStart_jahr_monat(); $cTmpEnde_jahr_monat=$this->getEnde_jahr_monat(); $cTmpStart_jahr_woche=$this->getStart_jahr_woche(); $cTmpEnde_jahr_woche=$this->getEnde_jahr_woche(); $cTmpStart_jahr_monat_tag=$this->getStart_jahr_monat_tag(); $cTmpEnde_jahr_monat_tag=$this->getEnde_jahr_monat_tag(); $Veranstaltungkategorie_mitarbeiter=$this->getVeranstaltungskategorieMitarbeiter(); $cTmpSQL=""; $cTmpSQL.="SELECT tbl_veranstaltung.* "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'YYYYMMDD') as \"start_jjjjmmtt\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'YYYYMMDD') as \"ende_jjjjmmtt\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'YYYYMM') as \"start_jahr_monat\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'YYYYMM') as \"ende_jahr_monat\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'YYYY') as \"start_jahr\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'YYYY') as \"ende_jahr\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'MM') as \"start_monat\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'MM') as \"ende_monat\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'DD') as \"start_tag\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'DD') as \"ende_tag\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'Day') as \"start_tagname\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'Day') as \"ende_tagname\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'IW') as \"start_woche\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'IW') as \"ende_woche\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'Q') as \"start_quartal\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'Q') as \"ende_quartal\" "; $cTmpSQL.=", EXTRACT(EPOCH FROM tbl_veranstaltung.start) as \"start_timestamp\" "; $cTmpSQL.=", EXTRACT(EPOCH FROM tbl_veranstaltung.ende) as \"ende_timestamp\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'DD.MM.YYYY') as \"start_datum\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'DD.MM.YYYY') as \"ende_datum\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.start, 'HH24:MI') as \"start_zeit\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.ende, 'HH24:MI') as \"ende_zeit\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.insertamum, 'DD.MM.YYYY') as \"insertamum_datum\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.insertamum, 'HH24:MI') as \"insertamum_zeit\" "; $cTmpSQL.=", EXTRACT(EPOCH FROM tbl_veranstaltung.insertamum) as \"insertamum_timestamp\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.updateamum, 'DD.MM.YYYY') as \"updateamum_datum\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.updateamum, 'HH24:MI') as \"updateamum_zeit\" "; $cTmpSQL.=", EXTRACT(EPOCH FROM tbl_veranstaltung.updateamum) as \"updateamum_timestamp\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.freigabeamum, 'DD.MM.YYYY') as \"freigabeamum_datum\" "; $cTmpSQL.=", to_char(tbl_veranstaltung.freigabeamum, 'HH24:MI') as \"freigabeamum_zeit\" "; $cTmpSQL.=", EXTRACT(EPOCH FROM tbl_veranstaltung.freigabeamum) as \"freigabeamum_timestamp\" "; $cTmpSQL.=",tbl_veranstaltungskategorie.*,tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz as kategorie_kurzbz "; $cTmpSQL.=" FROM ".$cSchemaSQL."tbl_veranstaltungskategorie "; $cTmpSQL.=" LEFT JOIN ".$cSchemaSQL."tbl_veranstaltung ON UPPER(".$cSchemaSQL."tbl_veranstaltung.veranstaltungskategorie_kurzbz)=UPPER(".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz) "; if (!is_array($cTmpVeranstaltung_id) && $cTmpVeranstaltung_id!='' ) { $cTmpSQL.=" AND ".$cSchemaSQL."tbl_veranstaltung.veranstaltung_id=".$cTmpVeranstaltung_id." "; } $cTmpSQL.=" WHERE ".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz>'' "; if ($cTmpFreigabe) $cTmpSQL.=" AND ".$cSchemaSQL."tbl_veranstaltung.freigabevon>E'' "; // Suche nach einer einzigen Veranstaltung_id if (!is_array($cTmpVeranstaltung_id) && !empty($cTmpVeranstaltung_id) ) { $cTmpSQL.=" AND ".$cSchemaSQL."tbl_veranstaltung.veranstaltung_id=".$cTmpVeranstaltung_id." "; } elseif (is_array($cTmpVeranstaltung_id) && count($cTmpVeranstaltung_id)>0 ) { if (isset($cTmpVeranstaltung_id[0]['veranstaltung_id'])) // Check ob nicht kpl. Tablestruck in Array { $cTmpVeranstaltung_idE=array(); for ($indZEILE=0;$indZEILE0 ) { if (isset($cTmpVeranstaltungskategorie_kurzbz[0]['veranstaltungskategorie_kurzbz'])) // Check ob nicht kpl. Tablestruck in Array { $cTmpVeranstaltungskategorie_kurzbzE=array(); for ($indZEILE=0;$indZEILE=to_timestamp(".$cSchemaSQL."tbl_veranstaltung.start) "; $cTmpSQL.=" AND to_timestamp(".$cTmpEnde.") <= to_timestamp(".$cSchemaSQL."tbl_veranstaltung.ende) "; } if (!empty($cTmpStart_jahr) && empty($cTmpEnde_jahr)) $cTmpSQL.=" AND to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYY')='".$cTmpStart_jahr."'"; elseif (empty($cTmpStart_jahr) && !empty($cTmpEnde_jahr) ) $cTmpSQL.=" AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYY')='".$cTmpEnde_jahr."'"; elseif (empty($cTmpStart_jahr) && !empty($cTmpEnde_jahr) ) { $cTmpSQL.=" AND '".$cTmpStart_jahr."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYY') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYY') "; $cTmpSQL.=" AND '".$cTmpEnde_jahr."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYY') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYY') "; } if (!empty($cTmpStart_jahr_monat) && empty($cTmpEnde_jahr_monat) ) $cTmpSQL.=" AND '".$cTmpStart_jahr_monat."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYMM') and to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYMM')"; elseif (empty($cTmpStart_jahr_monat) && !empty($cTmpEnde_jahr_monat) ) $cTmpSQL.=" AND '".$cTmpStart_jahr_monat."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYMM') and to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYMM')"; elseif (!empty($cTmpStart_jahr_monat) && !empty($cTmpEnde_jahr_monat) ) { $cTmpSQL.=" AND '".$cTmpStart_jahr_monat."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYMM') "; $cTmpSQL.=" AND '".$cTmpEnde_jahr_monat."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYMM') "; } if (!empty($cTmpStart_jahr_woche) && empty($cTmpEnde_jahr_woche) ) $cTmpSQL.=" AND '".$cTmpStart_jahr_woche."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYIW'') and to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYIW'')"; elseif (empty($cTmpStart_jahr_woche) && !empty($cTmpEnde_jahr_woche) ) $cTmpSQL.=" AND '".$cTmpStart_jahr_woche."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYIW'') and to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYIW'')"; elseif (!empty($cTmpStart_jahr_woche) && !empty($cTmpEnde_jahr_woche) ) { $cTmpSQL.=" AND '".$cTmpStart_jahr_woche."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYIW'') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYIW'') "; $cTmpSQL.=" AND '".$cTmpEnde_jahr_woche."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYIW'') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYIW'') "; } if (!empty($cTmpStart_jahr_monat_tag) && empty($cTmpEnde_jahr_monat_tag) ) $cTmpSQL.=" AND to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYMMDD')>='".$cTmpStart_jahr_monat_tag."'"; elseif (empty($cTmpStart_jahr_monat_tag) && !empty($cTmpEnde_jahr_monat_tag) ) $cTmpSQL.=" AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYMMDD')<='".$cTmpEnde_jahr_monat_tag."'"; elseif (!empty($cTmpStart_jahr_monat_tag) && !empty($cTmpEnde_jahr_monat_tag) ) { $cTmpSQL.=" AND '".$cTmpStart_jahr_monat_tag."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYMMDD') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYMMDD') "; $cTmpSQL.=" AND '".$cTmpEnde_jahr_monat_tag."' between to_char(".$cSchemaSQL."tbl_veranstaltung.start, 'YYYYMMDD') AND to_char(".$cSchemaSQL."tbl_veranstaltung.ende, 'YYYYMMDD') "; } if ($cTmpSuchtext) { $cTmpSuchtext="%$cTmpSuchtext%"; $cTmpSuchtext=str_replace(' ','%',$cTmpSuchtext); $cTmpSuchtext=str_replace('%%','%',addslashes(strtoupper(trim($cTmpSuchtext)))); $cTmpSQL.=" AND ( UPPER(".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz) like E'".$cTmpSuchtext."' OR UPPER(".$cSchemaSQL."tbl_veranstaltungskategorie.bezeichnung) like E'".$cTmpSuchtext."' OR UPPER(".$cSchemaSQL."tbl_veranstaltung.beschreibung) like E'".$cTmpSuchtext."' OR UPPER(".$cSchemaSQL."tbl_veranstaltung.inhalt) like E'".$cTmpSuchtext."' ) "; } // Kategorien nur fuer Mietarbeiter if (!$Veranstaltungkategorie_mitarbeiter) $cTmpSQL.=" AND NOT UPPER(".$cSchemaSQL."tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz) like '*%' "; if (!empty($cTmpStart) || !empty($cTmpEnde) || !empty($cTmpStart_jahr) || !empty($cTmpEnde_jahr) || !empty($cTmpStart_jahr_monat) || !empty($cTmpEnde_jahr_monat) || !empty($cTmpStart_jahr_monat_tag) || !empty($cTmpEnde_jahr_monat_tag) ) $cTmpSQL.=" ORDER BY ".$cSchemaSQL."tbl_veranstaltung.start, tbl_veranstaltungskategorie.bezeichnung "; else $cTmpSQL.=" ORDER BY ".$cSchemaSQL."tbl_veranstaltungskategorie.bezeichnung, tbl_veranstaltung.start "; $cTmpSQL.=" OFFSET 0 LIMIT ALL ;"; // Entfernen der Temporaeren Variablen aus dem Speicher if (isset($cSchemaSQL)) unset($cSchemaSQL); if (isset($cTmpVeranstaltungskategorie_kurzbzE)) unset($cTmpVeranstaltungskategorie_kurzbzE); if (isset($cTmpVeranstaltungskategorie_kurzbz)) unset($cTmpVeranstaltungskategorie_kurzbz); // Datenbankabfrage $this->setStringSQL($cTmpSQL); unset($cTmpSQL); $this->setResultSQL(null); # if (!$this->fetch_object()) if (!$this->fetch_all()) return false; $this->setVeranstaltung($this->getResultSQL()); $this->setResultSQL(null); return $this->getVeranstaltung(); } //-----Initialisierung Veranstaltungskategorie-------------------------------------------------------------------------------------------- function InitReservierung() { $this->setReservierung_id(''); $this->setReservierung(''); } //-----reservierung_id-------------------------------------------------------------------------------------------- function getReservierung_id() { return $this->reservierung_id; } function setReservierung_id($reservierung_id="") { $this->reservierung_id=$reservierung_id; } //-----reservierung Daten-------------------------------------------------------------------------------------------- function getReservierung() { return $this->reservierung; } function setReservierung($reservierung="") { $this->reservierung=$reservierung; } //-----Veranstaltung Daten-------------------------------------------------------------------------------------------- function getStruckturReservierung() { $this->setTableSQL('tbl_reservierung'); if ($this->reservierung_struck) return $this->reservierung_struck; return $this->reservierung_struck=$this->setTableStruckturSQL(); } //------------------------------------------------------------------------------------------------- function saveReservierung($param="") { // Initialisieren $this->setError(''); $cSchemaSQL=$this->getSchemaSQL(); // Konstante $arrTmpTableStrucktur=$this->getStruckturReservierung(); $constTableStrukturSQL=$this->getTableSQL(); if (!is_array($arrTmpTableStrucktur)) { $this->setError('Kein Tabellenstrucktur ("'.$constTableStrukturSQL.'") gefunden !'); return false; } if (is_array($param) && count($param)>0 && isset($param['reservierung_id'])) $this->setReservierung_id($param['reservierung_id']); if (!is_array($param) && !empty($param)) $this->setReservierung_id($param); $reservierung_id=$this->getReservierung_id(); if ( empty($reservierung_id) ) { $this->setError('Keine Reservierung ID gefunden !'); return false; } if (is_array($param) && count($param)>0 && isset($param['veranstaltung_id'])) { $this->setVeranstaltung_id($param['veranstaltung_id']); } $veranstaltung_id=$this->getVeranstaltung_id(); $cTmpSQLS=""; $cTmpSQLS.=" update ".$cSchemaSQL."tbl_reservierung set veranstaltung_id=".(!empty($veranstaltung_id)?"'$veranstaltung_id'":"null")." WHERE reservierung_id='".$reservierung_id."'; " ; #exit($cTmpSQLS); $this->setStringSQL($cTmpSQLS); $this->setResultSQL(null); if (!$this->dbQuery()) { if ($this->getError()) return false; } // Beim Lesen ist ein Fehler aufgetreten if (!$this->loadReservierung()) { if ($this->getError()) return false; $this->setNewRecord(true); } $this->setStringSQL($cTmpSQLS); unset($cTmpSQLS); $this->setResultSQL(null); return $this->getReservierung(); } //------------------------------------------------------------------------------------------------- function loadReservierung($reservierung_id="",$veranstaltung_id="") { //Init $this->setError(''); $cSchemaSQL=$this->getschemaSQL(); $cTmpReservierung_id=''; if ($reservierung_id!='') $this->setreservierung_id($reservierung_id); $cTmpReservierung_id=$this->getreservierung_id(); $cTmpVeranstaltung_id=''; if ($veranstaltung_id!='') $this->setVeranstaltung_id($veranstaltung_id); $cTmpVeranstaltung_id=$this->getVeranstaltung_id(); $cTmpStart=$this->getStart(); if (!empty($cTmpStart) && is_numeric($cTmpStart)) $cTmpStart=strftime('%Y%m%d',$cTmpStart); $cTmpEnde=$this->getEnde(); if (!empty($cTmpEnde) && is_numeric($cTmpEnde)) $cTmpEnde=strftime('%Y%m%d',$cTmpEnde); $cTmpStartZeit=$this->getStart(); if (!empty($cTmpStart) && is_numeric($cTmpStartZeit)) $cTmpStartZeit=date('Hi',$cTmpStartZeit); $cTmpEndeZeit=$this->getEnde(); if (!empty($cTmpEndeZeit) && is_numeric($cTmpEndeZeit)) $cTmpEndeZeit=date('Hi',$cTmpEndeZeit); // Selektion $cTmpSQL=""; $cTmpSQL.="SELECT tbl_reservierung.* "; $cTmpSQL.=", to_char(tbl_reservierung.datum, 'YYYYMMDD') as \"datum_jjjjmmtt\" "; $cTmpSQL.=", to_char(tbl_reservierung.datum, 'YYYYMM') as \"datum_jahr_monat\" "; $cTmpSQL.=", to_char(tbl_reservierung.datum, 'YYYY') as \"datum_jahr\" "; $cTmpSQL.=", to_char(tbl_reservierung.datum, 'WW') as \"datum_woche\" "; $cTmpSQL.=", to_char(tbl_reservierung.datum, 'Q') as \"datum_quartal\" "; $cTmpSQL.=", to_char(tbl_reservierung.datum, 'DD.MM.YYYY') as \"datum_anzeige\" "; $cTmpSQL.=", lehre.tbl_stunde.beginn, lehre.tbl_stunde.ende "; $cTmpSQL.=", to_char(lehre.tbl_stunde.beginn, 'HH24:MI') as \"beginn_anzeige\" "; $cTmpSQL.=", to_char(lehre.tbl_stunde.ende, 'HH24:MI') as \"ende_anzeige\" "; $cTmpSQL.=", EXTRACT(EPOCH FROM tbl_reservierung.datum) as \"datum_timestamp\" "; $cTmpSQL.=" FROM ".$cSchemaSQL."tbl_reservierung "; $cTmpSQL.=" RIGHT JOIN lehre.tbl_stunde ON lehre.tbl_stunde.stunde=".$cSchemaSQL."tbl_reservierung.stunde "; if (!empty($cTmpStartZeit) && empty($cTmpEndeZeit) ) $cTmpSQL.=" AND to_char(lehre.tbl_stunde.beginn, 'HH24MI')='".$cTmpStartZeit."' "; else if (empty($cTmpStartZeit) && !empty($cTmpEndeZeit) ) $cTmpSQL.=" to_char(lehre.tbl_stunde.ende, 'HH24MI')='".$cTmpEndeZeit."' "; else if (!empty($cTmpStartZeit) && !empty($cTmpEndeZeit) ) { $cTmpSQL.=" AND to_char(lehre.tbl_stunde.beginn, 'HH24MI') >='".$cTmpStartZeit."' "; $cTmpSQL.=" AND to_char(lehre.tbl_stunde.ende, 'HH24MI') <= '".$cTmpEndeZeit.",' "; } $cTmpSQL.=" WHERE ".$cSchemaSQL."tbl_reservierung.titel>'' "; // Suche nach einer einzigen reservierung_id if (!is_array($cTmpReservierung_id) && !empty($cTmpReservierung_id) ) { $cTmpSQL.=" AND ".$cSchemaSQL."tbl_reservierung.reservierung_id=".$cTmpReservierung_id." "; } elseif (is_array($cTmpReservierung_id) && count($cTmpReservierung_id)>0 ) { if (isset($cTmpReservierung_id[0]['reservierung_id'])) // Check ob nicht kpl. Tablestruck in Array { $cTmpReservierung_idE=array(); for ($indZEILE=0;$indZEILE0 ) { if (isset($cTmpVeranstaltung_id[0]['veranstaltung_id'])) // Check ob nicht kpl. Tablestruck in Array { $cTmpVeranstaltung_idE=array(); for ($indZEILE=0;$indZEILEsetStringSQL($cTmpSQL); unset($cTmpSQL); $this->setResultSQL(null); # if (!$this->fetch_object()) if (!$this->fetch_all()) return false; $this->setReservierung($this->getResultSQL()); $this->setResultSQL(null); return $this->getReservierung(); } } // Class jahresplan Ende ?>