diff --git a/include/statistik.class.php b/include/statistik.class.php index 45cb47a24..df91fd0a6 100644 --- a/include/statistik.class.php +++ b/include/statistik.class.php @@ -47,6 +47,12 @@ class statistik extends basis_db public $studiensemester_kurzbz;// varchar(16) public $ausbildungssemester;// smallint + // Daten der Statistik + public $data; + public $html; + public $csv; + public $json; + /** * Konstruktor */ @@ -395,5 +401,80 @@ class statistik extends basis_db return true; } + + /** + * Laedt die Daten einer Statistik (derzeit nur SQL) + * @param $statistik_kurzbz + */ + public function loadData() + { + $this->html=''; + $this->csv=''; + $this->json=array(); + + if($this->sql!='') + { + $sql = $this->sql; + foreach($_REQUEST as $name=>$value) + { + $sql = str_replace('$'.$name,addslashes($value),$sql); + } + + if($this->data = $this->db_query($sql)) + { + $this->html.= ''; + $anzahl_spalten = $this->db_num_fields($this->data); + for($spalte=0;$spalte<$anzahl_spalten;$spalte++) + { + $this->html.= ''.$this->db_field_name($this->data,$spalte).''; + $this->csv.='"'.$this->db_field_name($this->data,$spalte).'",'; + } + $this->html.= ''; + $this->csv=substr($this->csv,0,-1)."\n"; + while($row = $this->db_fetch_object($this->data)) + { + $this->html.= ''; + $anzahl_spalten = $this->db_num_fields($this->data); + for($spalte=0;$spalte<$anzahl_spalten;$spalte++) + { + $name = $this->db_field_name($this->data,$spalte); + $this->html.= ''.$row->$name.''; + $this->csv.= '"'.$row->$name.'",'; + + if($spalte>0) + { + $name_spalte_0 = $this->db_field_name($this->data,0); + $this->json[$row->$name_spalte_0][$name]=$row->$name; + } + } + $this->html.= ''; + $this->csv=substr($this->csv,0,-1)."\n"; + } + $this->html.= ''; + } + return true; + } + else + { + $this->error_msg= 'Zu dieser Statistik gibt es keine SQL Abfrage'; + return false; + } + } + + function getHtmlTable($id, $class='') + { + + return ''.$this->html.'
'; + } + + function getCSV() + { + return $this->csv; + } + + function getJSON() + { + return json_encode($this->json); + } } -?> \ No newline at end of file +?> diff --git a/system/checksystem.php b/system/checksystem.php index 08b2c3c38..6273023a4 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -41,6 +41,33 @@ echo '

DB-Updates!

'; // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; +// **************** Tabelle public.tbl_filter +if(!$result = @$db->db_query("SELECT filter_id FROM public.tbl_filter LIMIT 1;")) +{ + $qry = 'CREATE TABLE public.tbl_filter + ( + filter_id serial, + kurzbz character varying(32), + sql text, + valuename character varying(512), + showvalue boolean DEFAULT true, + insertamum Timestamp DEFAULT now(), + insertvon Character varying(32), + updateamum Timestamp DEFAULT now(), + updatevon Character varying(32), + CONSTRAINT tbl_filter_pkey PRIMARY KEY (filter_id) + ) + WITH ( + OIDS=FALSE + ); + + '; + if(!$db->db_query($qry)) + echo 'public.tbl_filter: '.$db->db_last_error().'
'; + else + echo ' public.tbl_filter: Tabelle public.tbl_filter hinzugefuegt!
'; +} + // **************** Spalte scrumsprint_id Tabelle fue.tbl_projekttask if(!$result = @$db->db_query("SELECT scrumsprint_id FROM fue.tbl_projekttask LIMIT 1;")) { @@ -1699,7 +1726,7 @@ $tabellen=array( "bis.tbl_besqual" => array("besqualcode","besqualbez"), "bis.tbl_bisfunktion" => array("bisverwendung_id","studiengang_kz","sws","updateamum","updatevon","insertamum","insertvon","ext_id"), "bis.tbl_bisio" => array("bisio_id","mobilitaetsprogramm_code","nation_code","von","bis","zweck_code","student_uid","updateamum","updatevon","insertamum","insertvon","ext_id","ort","universitaet","lehreinheit_id"), - "bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"), + "bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art"), "bis.tbl_bundesland" => array("bundesland_code","kurzbz","bezeichnung"), "bis.tbl_entwicklungsteam" => array("mitarbeiter_uid","studiengang_kz","besqualcode","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"), "bis.tbl_gemeinde" => array("gemeinde_id","plz","name","ortschaftskennziffer","ortschaftsname","bulacode","bulabez","kennziffer"), @@ -1787,7 +1814,7 @@ $tabellen=array( "lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"), "lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old"), "lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"), - "lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"), + "lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id","vertrag_id"), "lehre.tbl_lehrfach" => array("lehrfach_id","studiengang_kz","fachbereich_kurzbz","kurzbz","bezeichnung","farbe","aktiv","semester","sprache","updateamum","updatevon","insertamum","insertvon","ext_id"), "lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen"), "lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"), @@ -1802,18 +1829,18 @@ $tabellen=array( "lehre.tbl_moodle_version" => array("moodle_version","bezeichnung","pfad"), "lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv"), "lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache"), - "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id"), + "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id"), "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"), "lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id"), "lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss"), - "lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon"), + "lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","max_semester"), "lehre.tbl_studienordnung_semester" => array("studienordnung_semester_id","studienordnung_id","studiensemester_kurzbz","semester"), "lehre.tbl_studienplan" => array("studienplan_id","studienordnung_id","orgform_kurzbz","version","regelstudiendauer","sprache","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon","semesterwochen","testtool_sprachwahl"), "lehre.tbl_studienplan_lehrveranstaltung" => array("studienplan_lehrveranstaltung_id","studienplan_id","lehrveranstaltung_id","semester","studienplan_lehrveranstaltung_id_parent","pflicht","koordinator","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_studienplatz" => array("studienplatz_id","studiengang_kz","studiensemester_kurzbz","orgform_kurzbz","ausbildungssemester","gpz","npz","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_stunde" => array("stunde","beginn","ende"), "lehre.tbl_stundenplan" => array("stundenplan_id","unr","mitarbeiter_uid","datum","stunde","ort_kurzbz","gruppe_kurzbz","titel","anmerkung","lehreinheit_id","studiengang_kz","semester","verband","gruppe","fix","updateamum","updatevon","insertamum","insertvon"), - "lehre.tbl_stundenplandev" => array("stundenplandev_id","lehreinheit_id","unr","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","mitarbeiter_uid","ort_kurzbz","datum","stunde","titel","anmerkung","fix","updateamum","updatevon","insertamum","insertvon"), + "lehre.tbl_stundenplandev" => array("stundenplandev_id","lehreinheit_id","unr","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","mitarbeiter_uid","ort_kurzbz","datum","stunde","titel","anmerkung","fix","updateamum","updatevon","insertamum","insertvon","ext_id"), "lehre.tbl_zeitfenster" => array("wochentag","stunde","ort_kurzbz","studiengang_kz","gewicht"), "lehre.tbl_zeugnis" => array("zeugnis_id","student_uid","zeugnis","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id"), "lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id"), @@ -1849,8 +1876,8 @@ $tabellen=array( "public.tbl_lehrverband" => array("studiengang_kz","semester","verband","gruppe","aktiv","bezeichnung","ext_id","orgform_kurzbz","gid"), "public.tbl_log" => array("log_id","executetime","mitarbeiter_uid","beschreibung","sql","sqlundo"), "public.tbl_mitarbeiter" => array("mitarbeiter_uid","personalnummer","telefonklappe","kurzbz","lektor","fixangestellt","bismelden","stundensatz","ausbildungcode","ort_kurzbz","standort_id","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","kleriker"), - "public.tbl_notiz" => array("notiz_id","titel","text","verfasser_uid","bearbeiter_uid","start","ende","erledigt","insertamum","insertvon","updateamum","updatevon"), - "public.tbl_notizzuordnung" => array("notizzuordnung_id","notiz_id","projekt_kurzbz","projektphase_id","projekttask_id","uid","person_id","prestudent_id","bestellung_id","lehreinheit_id"), + "public.tbl_notiz" => array("notiz_id","titel","text","verfasser_uid","bearbeiter_uid","start","ende","erledigt","insertamum","insertvon","updateamum","updatevon","ext_id"), + "public.tbl_notizzuordnung" => array("notizzuordnung_id","notiz_id","projekt_kurzbz","projektphase_id","projekttask_id","uid","person_id","prestudent_id","bestellung_id","lehreinheit_id","ext_id"), "public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id"), "public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"), "public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre"), @@ -1914,7 +1941,7 @@ $tabellen=array( "wawi.tbl_betriebsmitteltyp" => array("betriebsmitteltyp","beschreibung","anzahl","kaution","typ_code","mastershapename"), "wawi.tbl_budget" => array("geschaeftsjahr_kurzbz","kostenstelle_id","budget"), "wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"), - "wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon"), + "wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id"), "wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"), "wawi.tbl_kostenstelle" => array("kostenstelle_id","oe_kurzbz","bezeichnung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","kostenstelle_nr","deaktiviertvon","deaktiviertamum"), "wawi.tbl_bestellungtag" => array("tag","bestellung_id","insertamum","insertvon"), diff --git a/vilesci/statistik/statistik.php b/vilesci/statistik/statistik.php index 8db2cb713..e6e0d5ea0 100644 --- a/vilesci/statistik/statistik.php +++ b/vilesci/statistik/statistik.php @@ -27,6 +27,7 @@ */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/statistik.class.php'); +require_once('../../include/filter.class.php'); require_once('../../include/functions.inc.php'); if(!isset($_GET['statistik_kurzbz'])) @@ -49,7 +50,7 @@ $statistik = new statistik(); if(!$statistik->load($statistik_kurzbz)) die($statistik->errormsg); -echo '

Statistik - '.$statistik->bezeichnung.'

'; +echo '

Report - '.$statistik->bezeichnung.'

'; //Beschreibung zu der Statistik anzeigen if($statistik->content_id!='') @@ -96,12 +97,18 @@ echo '
'; +// Filter parsen +$fltr=new filter(); +$fltr->loadAll(); +echo ''; foreach($vars as $var) { - echo ''; - echo ""; - echo ''; + if ($fltr->isFilter($var)) + echo "\n"; + else + echo ""; } +echo ''; echo ' @@ -138,4 +145,4 @@ function parseVars($value) } return array_unique($result); } -?> \ No newline at end of file +?> diff --git a/vilesci/statistik/statistik_sql.php b/vilesci/statistik/statistik_sql.php index 6159f63b4..fa3bc9c35 100644 --- a/vilesci/statistik/statistik_sql.php +++ b/vilesci/statistik/statistik_sql.php @@ -1,5 +1,5 @@ load($statistik_kurzbz)) $html.= '

Statistik - '.$statistik->bezeichnung.'

'; -if($statistik->sql!='') +if ($statistik->loadData()) { - $sql = $statistik->sql; - foreach($_REQUEST as $name=>$value) - { - $sql = str_replace('$'.$name,addslashes($value),$sql); - } - - $db = new basis_db(); - if($result = $db->db_query($sql)) - { - $html.= '
$var
$var".$fltr->getHtmlWidget($var)."$var
'; - $html.= ''; - $anzahl_spalten = $db->db_num_fields($result); - for($spalte=0;$spalte<$anzahl_spalten;$spalte++) - { - $html.= ''; - $csv.='"'.$db->db_field_name($result,$spalte).'",'; - //$json[$db->db_field_name($result,$spalte)]=array(); - } - $html.= ''; - $csv=substr($csv,0,-1)."\n"; - while($row = $db->db_fetch_object($result)) - { - $html.= ''; - $anzahl_spalten = $db->db_num_fields($result); - for($spalte=0;$spalte<$anzahl_spalten;$spalte++) - { - $name = $db->db_field_name($result,$spalte); - $html.= ''; - $csv.= '"'.$row->$name.'",'; - - if($spalte>0) - { - $name_spalte_0 = $db->db_field_name($result,0); - $json[$row->$name_spalte_0][$name]=$row->$name; - } - } - $html.= ''; - $csv=substr($csv,0,-1)."\n"; - } - $html.= '
'.$db->db_field_name($result,$spalte).'
'.$row->$name.'
'; - } + $html.=$statistik->getHtmlTable('myTable','tablesorter'); + $csv=$statistik->getCSV(); + $json=$statistik->getJSON(); } else -{ - $html.= 'Zu dieser Statistik gibt es keine SQL Abfrage'; -} + echo $statistik->error_msg; + switch ($outputformat) { case 'html': @@ -128,6 +89,6 @@ switch ($outputformat) header("Pragma: no-cache"); header("Expires: 0"); //$array= array_map("str_getcsv",explode("\n", $csv)); - echo json_encode($json); + echo $json; } ?>