diff --git a/content/statistik/dropout.php b/content/statistik/dropout.php new file mode 100755 index 000000000..50d7e9a45 --- /dev/null +++ b/content/statistik/dropout.php @@ -0,0 +1,212 @@ + + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/variable.class.php'); +require_once('../../include/studiensemester.class.php'); + +$user = get_uid(); +$db = new basis_db(); +$var = new variable(); +$var->loadVariables($user); + +$stg = new studiengang(); +$stg->getAll('typ, kurzbz'); + +if(isset($_REQUEST['stsem'])) + $studiensemester_kurzbz = $_REQUEST['stsem']; +else + $studiensemester_kurzbz = $var->variable->semester_aktuell; + +$stsem = new studiensemester(); +$stsem->getAll(); + +echo ' + + + + + + + + + DropOut Statistik + + + +

DropOut Statistik - Studiensemester '.$db->convert_html_chars($studiensemester_kurzbz).'

+'; +echo '
+Studiensemester: +
'; +echo ' + + + + + + + + + + + + + + +'; + +$summe_anfaenger_m=0; +$summe_anfaenger_w=0; +$summe_anfaenger_gesamt=0; +$summe_abbrecher_m=0; +$summe_abbrecher_w=0; +$summe_abbrecher_gesamt=0; + +foreach($stg->result as $row_stg) +{ + if($row_stg->typ!='b' && $row_stg->typ!='m') + continue; + echo "\n"; + echo ''; + + //Studienanfaenger + $qry = " + SELECT + count(*) anzahl, geschlecht + FROM + public.tbl_prestudent + JOIN public.tbl_prestudentstatus status USING(prestudent_id) + JOIN public.tbl_person USING(person_id) + WHERE + bismelden=true + AND (status_kurzbz='Student' OR status_kurzbz='Unterbrecher') + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." + AND NOT EXISTS (SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=status.prestudent_id AND (status_kurzbz='Student' OR status_kurzbz='Unterbrecher') AND datumdb_query($qry)) + while($row = $db->db_fetch_object($result)) + $anfaenger[$row->geschlecht]=$row->anzahl; + + echo ''; + echo ''; + $anfaenger_gesamt = array_sum($anfaenger); + echo ''; + $summe_anfaenger_m+=$anfaenger['m']; + $summe_anfaenger_w+=$anfaenger['w']; + $summe_anfaenger_gesamt+=$anfaenger_gesamt; + + //Studienabbrecher + //Alle die im Studiensemester $studiensemester_kurzbz zu studieren + //begonnen haben und bisher abgebrochen haben + $qry = " + SELECT + count(*) anzahl, geschlecht + FROM + public.tbl_prestudent a + JOIN public.tbl_prestudentstatus status USING(prestudent_id) + JOIN public.tbl_person USING(person_id) + WHERE + bismelden=true + AND status_kurzbz='Abbrecher' + AND a.studiengang_kz=".$db->db_add_param($row_stg->studiengang_kz,FHC_INTEGER)." + AND EXISTS + ( + SELECT + 1 + FROM + public.tbl_prestudentstatus as status + WHERE + prestudent_id=a.prestudent_id + AND (status_kurzbz='Student' OR status_kurzbz='Unterbrecher') + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." + AND NOT EXISTS (SELECT 1 FROM public.tbl_prestudentstatus + WHERE prestudent_id=status.prestudent_id AND (status_kurzbz='Student' OR status_kurzbz='Unterbrecher') + AND datumdb_query($qry)) + while($row = $db->db_fetch_object($result)) + $abbrecher[$row->geschlecht]=$row->anzahl; + + echo ''; + echo ''; + $abbrecher_gesamt = array_sum($abbrecher); + echo ''; + + $summe_abbrecher_m+=$abbrecher['m']; + $summe_abbrecher_w+=$abbrecher['w']; + $summe_abbrecher_gesamt+=$abbrecher_gesamt; + if($abbrecher_gesamt==0 || $anfaenger_gesamt==0) + $dropout=0; + else + $dropout = 100/$anfaenger_gesamt*$abbrecher_gesamt; + echo ''; + echo "\n\n"; +} +if($summe_abbrecher_gesamt==0 || $summe_anfaenger_gesamt==0) + $dropout_gesamt=0; +else + $dropout_gesamt = 100/$summe_anfaenger_gesamt*$summe_abbrecher_gesamt; +echo ' + + + + + + + + + + + + +
StudiengangAnfänger MAnfänger WAnfänger GesamtAbbrecher MAbbrecher WAbbrecher GesamtDropOut in %
'.$db->convert_html_chars($row_stg->kuerzel).''.$db->convert_html_chars($anfaenger['m']).''.$db->convert_html_chars($anfaenger['w']).''.$db->convert_html_chars($anfaenger_gesamt).''.$db->convert_html_chars($abbrecher['m']).''.$db->convert_html_chars($abbrecher['w']).''.$db->convert_html_chars($abbrecher_gesamt).''.$db->convert_html_chars(number_format($dropout,2)).' %
'.$summe_anfaenger_m.''.$summe_anfaenger_w.''.$summe_anfaenger_gesamt.''.$summe_abbrecher_m.''.$summe_abbrecher_w.''.$summe_abbrecher_gesamt.''.number_format($dropout_gesamt,2).' %
'; + +echo ' +'; +?> \ No newline at end of file diff --git a/include/ort.class.php b/include/ort.class.php index e987ff7d9..788940960 100644 --- a/include/ort.class.php +++ b/include/ort.class.php @@ -63,10 +63,21 @@ class ort extends basis_db * Laedt alle verfuegbaren Orte * @return true wenn ok, false im Fehlerfall */ - public function getAll() + public function getAll($raumtyp_kurzbz=null) { $qry = 'SELECT * FROM public.tbl_ort ORDER BY ort_kurzbz;'; + if(!is_null($raumtyp_kurzbz) && $raumtyp_kurzbz!='') + { + $qry = ' + SELECT + tbl_ort.* + FROM + public.tbl_ort + JOIN public.tbl_ortraumtyp USING(ort_kurzbz) + WHERE raumtyp_kurzbz='.$this->db_add_param($raumtyp_kurzbz).' + ORDER BY ort_kurzbz;'; + } if(!$this->db_query($qry)) { $this->errormsg = 'Fehler beim Laden der Datensaetze'; diff --git a/system/checksystem.php b/system/checksystem.php index 2f1849135..0f2ddec9c 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3541,6 +3541,15 @@ if(!@$db->db_query("SELECT 1 from public.tbl_preoutgoing LIMIT 1")) GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_firma_mobilitaetsprogramm TO admin; GRANT SELECT ON public.tbl_firma_mobilitaetsprogramm TO web; + + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_preoutgoing_id TO web; + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_preoutgoing_id TO admin; + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_lehrveranstaltung_preoutgoing_lehrveranstaltung_id TO web; + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_lehrveranstaltung_preoutgoing_lehrveranstaltung_id TO admin; + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_preoutgoing_status_status_id TO web; + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_preoutgoing_status_status_id TO admin; + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_firma_preoutgoing_firma_id TO web; + GRANT SELECT, UPDATE ON SEQUENCE public.seq_preoutgoing_firma_preoutgoing_firma_id TO admin; "; if(!$db->db_query($qry))