From 078023cf024409bc1835357f4a5c4f7f3031dd53 Mon Sep 17 00:00:00 2001 From: Martin Tatzber Date: Wed, 18 Jun 2014 08:49:40 +0000 Subject: [PATCH] Zuteilung Dokumente zu Studiengang --- include/dokument.class.php | 123 ++++++++++- include/tw/vilesci_menu_main.inc.php | 1 + vilesci/stammdaten/studiengang_dokumente.php | 204 +++++++++++++++++++ 3 files changed, 326 insertions(+), 2 deletions(-) create mode 100644 vilesci/stammdaten/studiengang_dokumente.php diff --git a/include/dokument.class.php b/include/dokument.class.php index 5d577d180..5f55dfc95 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -1,5 +1,5 @@ db_add_param($this->dokument_kurzbz).','. @@ -176,6 +176,65 @@ class dokument extends basis_db return false; } } + + /** + * Speichert das Dokument in der Datenbank + * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + * angelegt, ansonsten der Datensatz upgedated + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function saveDokument($new=null) + { + if(is_null($new)) + $new = $this->new; + + if($this->dokument_kurzbz=='') + { + $this->errormsg = 'Dokument_kurzbz muss angegeben werden'; + return false; + } + + //Prüfung, ob Eintrag bereits vorhanden + $qry='SELECT dokument_kurzbz FROM public.tbl_dokument + WHERE dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz); + if($this->db_query($qry)) + { + if($this->db_fetch_object()) + { + $this->errormsg = 'Eintrag bereits vorhanden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Durchführen der Datenbankabfrage'; + return false; + } + + if($new) + { + $qry = 'INSERT INTO public.tbl_dokument(dokument_kurzbz, bezeichnung, ext_id) VALUES('. + $this->db_add_param($this->dokument_kurzbz).','. + $this->db_add_param($this->bezeichnung).','. + $this->db_add_param($this->ext_id, FHC_INTEGER).');'; + } + else + { + $qry = 'UPDATE INTO public.tbl_dokument SET '. + 'bezeichnung = '.$this->db_add_param($this->bezeichnung). + 'WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz); + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Zuteilung'; + return false; + } + } /** * Loescht eine Zuordnung @@ -202,6 +261,31 @@ class dokument extends basis_db } } + /** + * Loescht eine Zuordnung + * @param dokument_kurzbz + * stg_kz + */ + public function deleteDokumentStg($dokument_kurzbz, $stg_kz) + { + if(!is_numeric($stg_kz)) + { + $this->errormsg = 'stg_kz muss eine gueltige Zahl sein'; + return false; + } + + $qry = "DELETE FROM public.tbl_dokumentstudiengang + WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz)." AND studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER).";"; + + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Loeschen der Zuteilung'; + return false; + } + } + /** * Laedt alle Dokumente eines Prestudenten die * er bereits abgegeben hat @@ -316,6 +400,7 @@ class dokument extends basis_db $dok->dokument_kurzbz = $row->dokument_kurzbz; $dok->bezeichnung = $row->bezeichnung; + $dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); $this->result[] = $dok; } @@ -356,6 +441,40 @@ class dokument extends basis_db } } + /** + * fügt ein Dokument einem Studiengang hinzu + * @param dokument_kurzbz + * stg_kz + * onlinebewerbung true, wenn für Online-Bewerbung relevant + * @return true wenn ok false im Fehlerfall + */ + public function addDokument($dokument_kurzbz, $stg_kz, $onlinebewerbung=true) + { + //Prüfung, ob Eintrag bereits vorhanden + $qry='SELECT dokument_kurzbz FROM public.tbl_dokumentstudiengang + WHERE dokument_kurzbz='.$this->db_add_param($dokument_kurzbz).' AND studiengang_kz='.$this->db_add_param($stg_kz,FHC_INTEGER); + if($this->db_query($qry)) + { + if($this->db_fetch_object()) + { + $this->errormsg = 'Eintrag bereits vorhanden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Durchführen der Datenbankabfrage'; + return false; + } + + $qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, onlinebewerbung) + VALUES ('. + $this->db_add_param($dokument_kurzbz).','. + $this->db_add_param($stg_kz,FHC_INTEGER).','. + $this->db_add_param($onlinebewerbung,FHC_BOOLEAN).')'; + + $this->db_query($qry); + } public function loadDokumenttyp($dokument_kurzbz) { $qry="Select * FROM public.tbl_dokument where dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";"; diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 79bcf3d5d..a66b2eefe 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -217,6 +217,7 @@ $menu=array 'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main'), 'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main'), 'StudienplanZuteilung'=>array('name'=>'StudienplanZuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main'), + 'DokumenteZuteilung'=>array('name'=>'DokumenteZuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main') ), 'Auswertung'=> array diff --git a/vilesci/stammdaten/studiengang_dokumente.php b/vilesci/stammdaten/studiengang_dokumente.php new file mode 100644 index 000000000..0b14368f3 --- /dev/null +++ b/vilesci/stammdaten/studiengang_dokumente.php @@ -0,0 +1,204 @@ + + * + */ + +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/dokument.class.php'); + +$stg_kz=isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:''; +$dokument_kurzbz=isset($_REQUEST['dokument_kurzbz'])?$_REQUEST['dokument_kurzbz']:''; +$onlinebewerbung=isset($_REQUEST['onlinebewerbung']); + +$action=isset($_GET['action'])?$_GET['action']:''; +if(isset($_POST['add'])) + $action='add'; +if(isset($_POST['saveDoc'])) + $action='saveDoc'; + +if($action=='add') +{ + if($dokument_kurzbz != '' && $stg_kz != '') + { + $dokument=new dokument(); + $dokument->addDokument($dokument_kurzbz, $stg_kz, $onlinebewerbung); + } +} + +if($action=='delete') +{ + if($dokument_kurzbz != '' && $stg_kz != '') + { + $dokument=new dokument(); + if(!$dokument->deleteDokumentStg($dokument_kurzbz, $stg_kz)) + echo 'Fehler beim Löschen: '.$dokument->errormsg; + } +} + +if($action=='saveDoc') +{ + $dokBezeichnung=isset($_POST['dokument_bezeichnung'])?$_POST['dokument_bezeichnung']:''; + $dokKurzbz=isset($_POST['dokument_kurzbz'])?$_POST['dokument_kurzbz']:''; + + if($dokBezeichnung!='') + { + $dokument=new dokument(); + $dokument->dokument_kurzbz=$dokKurzbz; + $dokument->bezeichnung=$dokBezeichnung; + + if($dokument->saveDokument(true)) + { + echo 'Dokument hinzugefügt'; + } + else + { + echo $dokument->errormsg; + } + } +} + +$studiengang=new studiengang(); +$studiengang->getAll('typ, kurzbz'); + +$output='

Zuteilung Studiengang - Dokumente

+
+ + +
+
'; + + +if($stg_kz!='') +{ + $output .= ' + + + + + + + + '; + $dokStg=new dokument(); + $dokStg->getDokumente($stg_kz); + foreach($dokStg->result as $dok) + { + $checked=$dok->onlinebewerbung?' checked':''; + $output .= ' + + + + + '; + } + $output .= ' + + + + + + + + + +
DokumentnameOnline-Bewerbung
'.$dok->bezeichnung.'Zuordnung löschen
-
+ +
+
+
+ + '; +} +else + $output .= ''; + + +echo ' + + + + + + + +Zuordnung Studiengang - Dokumente + + +'.$output.' + +'; + +?>