From 9e57867d08765bb1292f795b8708a4bb1a81b58e Mon Sep 17 00:00:00 2001 From: Robert Hofer Date: Fri, 20 Mar 2015 14:34:55 +0100 Subject: [PATCH] flag "required" for documents in onlineapplication --- include/dokument.class.php | 1267 +++++++++--------- system/checksystem.php | 13 +- vilesci/stammdaten/studiengang_dokumente.php | 33 +- 3 files changed, 677 insertions(+), 636 deletions(-) diff --git a/include/dokument.class.php b/include/dokument.class.php index 170b70068..5c0b572e6 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -1,630 +1,637 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class dokument extends basis_db -{ - public $new; - public $result = array(); - - //Tabellenspalten - public $dokument_kurzbz; - public $bezeichnung; - public $studiengang_kz; - - public $prestudent_id; - public $mitarbeiter_uid; - public $datum; - public $updateamum; - public $updatevon; - public $insertamum; - public $insertvon; - public $ext_id; - public $onlinebewerbung; - - /** - * Konstruktor - Laedt optional ein Dokument - * @param $dokument_kurzbz - * @param $prestudent_id - */ - public function __construct($dokument_kurzbz=null, $prestudent_id=null) - { - parent::__construct(); - - if(!is_null($dokument_kurzbz) && !is_null($prestudent_id)) - $this->load($dokument_kurzbz, $prestudent_id); - } - - /** - * Laedt eine Dokument-Prestudent Zuordnung - * @param dokument_kurzbz - * prestudent_id - */ - public function load($dokument_kurzbz, $prestudent_id) - { - if(!is_numeric($prestudent_id)) - { - $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM public.tbl_dokumentprestudent - WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)." AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz).";"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->dokument_kurzbz = $row->dokument_kurzbz; - $this->prestudent_id = $row->prestudent_id; - $this->mitarbeiter_uid = $row->mitarbeiter_uid; - $this->datum = $row->datum; - $this->updateamum = $row->updateamum; - $this->updatevon = $row->updatevon; - $this->insertamum = $row->insertamum; - $this->insertvon = $row->insertvon; - $this->ext_id = $row->ext_id; - return true; - } - else - { - $this->errormsg = 'Es wurde kein Datensatz gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Prueft die Variablen vor dem Speichern - * auf Gueltigkeit. - * @return true wenn ok, false im Fehlerfall - */ - protected function validate() - { - if($this->dokument_kurzbz=='') - { - $this->errormsg = 'Dokument_kurzbz muss angegeben werden'; - return false; - } - - if($this->prestudent_id=='') - { - $this->errormsg = 'Prestudent_id muss angegeben werden'; - return false; - } - - if(!is_numeric($this->prestudent_id)) - { - $this->errormsg = 'Prestudent_id ist ungueltig'; - return false; - } - - if($this->mitarbeiter_uid=='') - { - $this->errormsg = 'Mitarbeiter_uid muss angegeben werden'; - return false; - } - return true; - } - - /** - * Speichert ein Beispiel in die 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 save($new=null) - { - if(is_null($new)) - $new = $this->new; - - //Variablen auf Gueltigkeit pruefen - if(!$this->validate()) - return false; - - if($new) - { - $qry = 'INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id, mitarbeiter_uid, datum, updateamum, - updatevon, insertamum, insertvon, ext_id) VALUES('. - $this->db_add_param($this->dokument_kurzbz).','. - $this->db_add_param($this->prestudent_id, FHC_INTEGER).','. - $this->db_add_param($this->mitarbeiter_uid).','. - $this->db_add_param($this->datum).','. - $this->db_add_param($this->updateamum).','. - $this->db_add_param($this->updatevon).','. - $this->db_add_param($this->insertamum).','. - $this->db_add_param($this->insertvon).','. - $this->db_add_param($this->ext_id, FHC_INTEGER).');'; - } - else - { - //never used - return false; - } - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Zuteilung'; - 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; - } - - if($new) - { - //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 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 - * @param dokument_kurzbz - * prestudent_id - */ - public function delete($dokument_kurzbz, $prestudent_id) - { - if(!is_numeric($prestudent_id)) - { - $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "DELETE FROM public.tbl_dokumentprestudent - WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz)." AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER).";"; - - if($this->db_query($qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Loeschen der Zuteilung'; - return false; - } - } - - /** - * 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 - * @param prestudent_id - * @return true wenn ok, false wenn Fehler - */ - public function getPrestudentDokumente($prestudent_id) - { - if(!is_numeric($prestudent_id)) - { - $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM public.tbl_dokumentprestudent JOIN public.tbl_dokument USING(dokument_kurzbz) - WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)." ORDER BY dokument_kurzbz;"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $dok = new dokument(); - - $dok->dokument_kurzbz = $row->dokument_kurzbz; - $dok->bezeichnung = $row->bezeichnung; - $dok->prestudent_id = $row->prestudent_id; - $dok->mitarbeiter_uid = $row->mitarbeiter_uid; - $dok->datum = $row->datum; - $dok->updateamum = $row->updateamum; - $dok->updatevon = $row->updatevon; - $dok->insertamum = $row->insertamum; - $dok->insertvon = $row->insertvon; - $dok->ext_id = $row->ext_id; - - $this->result[] = $dok; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt alle Dokumente fuer einen Stg die der - * Prestudent noch nicht abgegeben hat - * @param studiengang_kz - * prestudent_id - * @return true wenn ok, false wenn Fehler - */ - public function getFehlendeDokumente($studiengang_kz, $prestudent_id=null) - { - if(!is_null($prestudent_id) && !is_numeric($prestudent_id)) - { - $this->errormsg = 'Prestudent_id ist ungueltig'; - return false; - } - - if(!is_numeric($studiengang_kz)) - { - $this->errormsg = 'Studiengang_kz ist ungueltig'; - return false; - } - - $qry = "SELECT * FROM public.tbl_dokument JOIN public.tbl_dokumentstudiengang USING(dokument_kurzbz) - WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); - - if(!is_null($prestudent_id)) - { - $qry.=" AND dokument_kurzbz NOT IN ( - SELECT dokument_kurzbz FROM public.tbl_dokumentprestudent WHERE prestudent_id=".$this->db_add_param($prestudent_id,FHC_INTEGER).")"; - } - - $qry.=" ORDER BY dokument_kurzbz;"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $dok = new dokument(); - $dok->dokument_kurzbz = $row->dokument_kurzbz; - $dok->bezeichnung = $row->bezeichnung; - $dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); - $this->result[] = $dok; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Liefert die Dokumente eines Studienganges - * @param $studiengang_kz - * @return true wenn ok false im Fehlerfall - */ - public function getDokumente($studiengang_kz) - { - $qry = "SELECT * FROM public.tbl_dokumentstudiengang JOIN public.tbl_dokument USING(dokument_kurzbz) - WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER).";"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $dok = new dokument(); - - $dok->dokument_kurzbz = $row->dokument_kurzbz; - $dok->bezeichnung = $row->bezeichnung; - $dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); - - $this->result[] = $dok; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Liefert alle Dokumenttypen - * @return true wenn ok false im Fehlerfall - */ - public function getAllDokumente() - { - $qry = "SELECT * FROM public.tbl_dokument ORDER BY bezeichnung;"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $dok = new dokument(); - - $dok->dokument_kurzbz = $row->dokument_kurzbz; - $dok->bezeichnung = $row->bezeichnung; - - $this->result[] = $dok; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt die Dokument Studiengang Zuordnung - * - * @param $dokument_kurzbz - * @param $studiengang_kz - * @return true wenn ok, false im Fehlerfall - */ - public function loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz) - { - $qry="SELECT * FROM public.tbl_dokumentstudiengang - WHERE - studiengang_kz=".$this->db_add_param($studiengang_kz)." - AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz); - - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - $this->dokument_kurzbz = $row->dokument_kurzbz; - $this->studiengang_kz = $row->studiengang_kz; - $this->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); - return true; - } - else - { - $this->errormsg='Fehler beim Laden der Daten'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Prueft ob die Zuordnung Dokument zu Studiengang bereits vorhanden ist - * @param $dokument_kurzbz - * @param $studiengang_kz - * @return true wenn vorhanden, false wenn nicht vorhanden - */ - public function existsDokumentStudiengang($dokument_kurzbz, $studiengang_kz) - { - $qry='SELECT - dokument_kurzbz - FROM - public.tbl_dokumentstudiengang - WHERE - dokument_kurzbz='.$this->db_add_param($dokument_kurzbz).' - AND studiengang_kz='.$this->db_add_param($studiengang_kz,FHC_INTEGER); - - if($result = $this->db_query($qry)) - { - if($this->db_num_rows($result)>0) - return true; - else - return false; - } - else - { - $this->errormsg = 'Fehler beim Durchführen der Datenbankabfrage'; - return false; - } - } - - /** - * Speichert die Zuordnung Dokument zu Studiengang - * @return true wenn ok false im Fehlerfall - */ - public function saveDokumentStudiengang() - { - if(!$this->existsDokumentStudiengang($this->dokument_kurzbz, $this->studiengang_kz)) - { - $qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, onlinebewerbung) - VALUES ('. - $this->db_add_param($this->dokument_kurzbz).','. - $this->db_add_param($this->studiengang_kz,FHC_INTEGER).','. - $this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')'; - } - else - { - $qry = 'UPDATE public.tbl_dokumentstudiengang SET - onlinebewerbung='.$this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).' - WHERE - dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).' - AND studiengang_kz='.$this->db_add_param($this->studiengang_kz); - } - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Zuordnung'; - return false; - } - } - - /** - * Laedt einen Dokumenttyp - * @param $dokument_kurzbz - * @return true wenn ok, false im Fehlerfall - */ - public function loadDokumenttyp($dokument_kurzbz) - { - $qry="SELECT * FROM public.tbl_dokument - WHERE dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->dokument_kurzbz = $row->dokument_kurzbz; - $this->bezeichnung = $row->bezeichnung; - return true; - } - } - else - { - $this->errormsg ='Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Liefert alle Dokumente die eine Person abzugeben hat - * ist notwendig um bei einer Bewerbung bei mehreren Studiengängen zu wissen was der Student im gesamten abzugeben hat - * @param $person_id - * @param onlinebewerbung - */ - public function getAllDokumenteForPerson($person_id, $onlinebewerbung= false) - { - $qry = "SELECT distinct(dokument_kurzbz), bezeichnung FROM public.tbl_dokumentstudiengang - JOIN public.tbl_prestudent using (studiengang_kz) - JOIN public.tbl_dokument using (dokument_kurzbz) - WHERE person_id =".$this->db_add_param($person_id, FHC_INTEGER); - - if($onlinebewerbung) - $qry.= " AND onlinebewerbung is true; "; - else - $qry.=";"; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $dok = new dokument(); - $dok->dokument_kurzbz = $row->dokument_kurzbz; - $dok->bezeichnung = $row->bezeichnung; - - $this->result[] = $dok; - } - return true; - } - else - { - $this->errormsg="Fehler bei der Abfrage aufgetreten"; - return false; - } - - } - - /** - * Loescht einen Dokumenttyp - * @param $dokument_kurzbz - * @return true wenn ok, false im Fehlerfall - */ - function deleteDokumenttyp($dokument_kurzbz) - { - $qry="DELETE FROM public.tbl_dokument WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz); - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg='Löschen fehlgeschlagen'; - return false; - } - } -} -?> +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class dokument extends basis_db +{ + public $new; + public $result = array(); + + //Tabellenspalten + public $dokument_kurzbz; + public $bezeichnung; + public $studiengang_kz; + public $pflicht; + + public $prestudent_id; + public $mitarbeiter_uid; + public $datum; + public $updateamum; + public $updatevon; + public $insertamum; + public $insertvon; + public $ext_id; + public $onlinebewerbung; + + /** + * Konstruktor - Laedt optional ein Dokument + * @param $dokument_kurzbz + * @param $prestudent_id + */ + public function __construct($dokument_kurzbz=null, $prestudent_id=null) + { + parent::__construct(); + + if(!is_null($dokument_kurzbz) && !is_null($prestudent_id)) + $this->load($dokument_kurzbz, $prestudent_id); + } + + /** + * Laedt eine Dokument-Prestudent Zuordnung + * @param dokument_kurzbz + * prestudent_id + */ + public function load($dokument_kurzbz, $prestudent_id) + { + if(!is_numeric($prestudent_id)) + { + $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "SELECT * FROM public.tbl_dokumentprestudent + WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)." AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz).";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->dokument_kurzbz = $row->dokument_kurzbz; + $this->prestudent_id = $row->prestudent_id; + $this->mitarbeiter_uid = $row->mitarbeiter_uid; + $this->datum = $row->datum; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->ext_id = $row->ext_id; + return true; + } + else + { + $this->errormsg = 'Es wurde kein Datensatz gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Prueft die Variablen vor dem Speichern + * auf Gueltigkeit. + * @return true wenn ok, false im Fehlerfall + */ + protected function validate() + { + if($this->dokument_kurzbz=='') + { + $this->errormsg = 'Dokument_kurzbz muss angegeben werden'; + return false; + } + + if($this->prestudent_id=='') + { + $this->errormsg = 'Prestudent_id muss angegeben werden'; + return false; + } + + if(!is_numeric($this->prestudent_id)) + { + $this->errormsg = 'Prestudent_id ist ungueltig'; + return false; + } + + if($this->mitarbeiter_uid=='') + { + $this->errormsg = 'Mitarbeiter_uid muss angegeben werden'; + return false; + } + return true; + } + + /** + * Speichert ein Beispiel in die 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 save($new=null) + { + if(is_null($new)) + $new = $this->new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($new) + { + $qry = 'INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id, mitarbeiter_uid, datum, updateamum, + updatevon, insertamum, insertvon, ext_id) VALUES('. + $this->db_add_param($this->dokument_kurzbz).','. + $this->db_add_param($this->prestudent_id, FHC_INTEGER).','. + $this->db_add_param($this->mitarbeiter_uid).','. + $this->db_add_param($this->datum).','. + $this->db_add_param($this->updateamum).','. + $this->db_add_param($this->updatevon).','. + $this->db_add_param($this->insertamum).','. + $this->db_add_param($this->insertvon).','. + $this->db_add_param($this->ext_id, FHC_INTEGER).');'; + } + else + { + //never used + return false; + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Zuteilung'; + 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; + } + + if($new) + { + //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 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 + * @param dokument_kurzbz + * prestudent_id + */ + public function delete($dokument_kurzbz, $prestudent_id) + { + if(!is_numeric($prestudent_id)) + { + $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "DELETE FROM public.tbl_dokumentprestudent + WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz)." AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER).";"; + + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Loeschen der Zuteilung'; + return false; + } + } + + /** + * 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 + * @param prestudent_id + * @return true wenn ok, false wenn Fehler + */ + public function getPrestudentDokumente($prestudent_id) + { + if(!is_numeric($prestudent_id)) + { + $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "SELECT * FROM public.tbl_dokumentprestudent JOIN public.tbl_dokument USING(dokument_kurzbz) + WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)." ORDER BY dokument_kurzbz;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $dok = new dokument(); + + $dok->dokument_kurzbz = $row->dokument_kurzbz; + $dok->bezeichnung = $row->bezeichnung; + $dok->prestudent_id = $row->prestudent_id; + $dok->mitarbeiter_uid = $row->mitarbeiter_uid; + $dok->datum = $row->datum; + $dok->updateamum = $row->updateamum; + $dok->updatevon = $row->updatevon; + $dok->insertamum = $row->insertamum; + $dok->insertvon = $row->insertvon; + $dok->ext_id = $row->ext_id; + + $this->result[] = $dok; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Dokumente fuer einen Stg die der + * Prestudent noch nicht abgegeben hat + * @param studiengang_kz + * prestudent_id + * @return true wenn ok, false wenn Fehler + */ + public function getFehlendeDokumente($studiengang_kz, $prestudent_id=null) + { + if(!is_null($prestudent_id) && !is_numeric($prestudent_id)) + { + $this->errormsg = 'Prestudent_id ist ungueltig'; + return false; + } + + if(!is_numeric($studiengang_kz)) + { + $this->errormsg = 'Studiengang_kz ist ungueltig'; + return false; + } + + $qry = "SELECT * FROM public.tbl_dokument JOIN public.tbl_dokumentstudiengang USING(dokument_kurzbz) + WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); + + if(!is_null($prestudent_id)) + { + $qry.=" AND dokument_kurzbz NOT IN ( + SELECT dokument_kurzbz FROM public.tbl_dokumentprestudent WHERE prestudent_id=".$this->db_add_param($prestudent_id,FHC_INTEGER).")"; + } + + $qry.=" ORDER BY dokument_kurzbz;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $dok = new dokument(); + $dok->dokument_kurzbz = $row->dokument_kurzbz; + $dok->bezeichnung = $row->bezeichnung; + $dok->pflicht = $this->db_parse_bool($row->pflicht); + $dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); + $this->result[] = $dok; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Liefert die Dokumente eines Studienganges + * @param $studiengang_kz + * @return true wenn ok false im Fehlerfall + */ + public function getDokumente($studiengang_kz) + { + $qry = "SELECT * FROM public.tbl_dokumentstudiengang JOIN public.tbl_dokument USING(dokument_kurzbz) + WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." + ORDER BY dokument_kurzbz;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $dok = new dokument(); + + $dok->dokument_kurzbz = $row->dokument_kurzbz; + $dok->bezeichnung = $row->bezeichnung; + $dok->pflicht = $this->db_parse_bool($row->pflicht); + $dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); + + $this->result[] = $dok; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Liefert alle Dokumenttypen + * @return true wenn ok false im Fehlerfall + */ + public function getAllDokumente() + { + $qry = "SELECT * FROM public.tbl_dokument ORDER BY bezeichnung;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $dok = new dokument(); + + $dok->dokument_kurzbz = $row->dokument_kurzbz; + $dok->bezeichnung = $row->bezeichnung; + + $this->result[] = $dok; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt die Dokument Studiengang Zuordnung + * + * @param $dokument_kurzbz + * @param $studiengang_kz + * @return true wenn ok, false im Fehlerfall + */ + public function loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz) + { + $qry="SELECT * FROM public.tbl_dokumentstudiengang + WHERE + studiengang_kz=".$this->db_add_param($studiengang_kz)." + AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->dokument_kurzbz = $row->dokument_kurzbz; + $this->studiengang_kz = $row->studiengang_kz; + $this->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); + $this->pflicht = $this->db_parse_bool($row->pflicht); + return true; + } + else + { + $this->errormsg='Fehler beim Laden der Daten'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Prueft ob die Zuordnung Dokument zu Studiengang bereits vorhanden ist + * @param $dokument_kurzbz + * @param $studiengang_kz + * @return true wenn vorhanden, false wenn nicht vorhanden + */ + public function existsDokumentStudiengang($dokument_kurzbz, $studiengang_kz) + { + $qry='SELECT + dokument_kurzbz + FROM + public.tbl_dokumentstudiengang + WHERE + dokument_kurzbz='.$this->db_add_param($dokument_kurzbz).' + AND studiengang_kz='.$this->db_add_param($studiengang_kz,FHC_INTEGER); + + if($result = $this->db_query($qry)) + { + if($this->db_num_rows($result)>0) + return true; + else + return false; + } + else + { + $this->errormsg = 'Fehler beim Durchführen der Datenbankabfrage'; + return false; + } + } + + /** + * Speichert die Zuordnung Dokument zu Studiengang + * @return true wenn ok false im Fehlerfall + */ + public function saveDokumentStudiengang() + { + if(!$this->existsDokumentStudiengang($this->dokument_kurzbz, $this->studiengang_kz)) + { + $qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, pflicht, onlinebewerbung) + VALUES ('. + $this->db_add_param($this->dokument_kurzbz).','. + $this->db_add_param($this->studiengang_kz,FHC_INTEGER).','. + $this->db_add_param($this->pflicht,FHC_BOOLEAN).','. + $this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')'; + } + else + { + $qry = 'UPDATE public.tbl_dokumentstudiengang SET + onlinebewerbung='.$this->db_add_param($this->onlinebewerbung, FHC_BOOLEAN).', + pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).' + WHERE + dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).' + AND studiengang_kz='.$this->db_add_param($this->studiengang_kz); + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Zuordnung'; + return false; + } + } + + /** + * Laedt einen Dokumenttyp + * @param $dokument_kurzbz + * @return true wenn ok, false im Fehlerfall + */ + public function loadDokumenttyp($dokument_kurzbz) + { + $qry="SELECT * FROM public.tbl_dokument + WHERE dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->dokument_kurzbz = $row->dokument_kurzbz; + $this->bezeichnung = $row->bezeichnung; + return true; + } + } + else + { + $this->errormsg ='Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Liefert alle Dokumente die eine Person abzugeben hat + * ist notwendig um bei einer Bewerbung bei mehreren Studiengängen zu wissen was der Student im gesamten abzugeben hat + * @param $person_id + * @param onlinebewerbung + */ + public function getAllDokumenteForPerson($person_id, $onlinebewerbung= false) + { + $qry = "SELECT distinct(dokument_kurzbz), bezeichnung, pflicht FROM public.tbl_dokumentstudiengang + JOIN public.tbl_prestudent using (studiengang_kz) + JOIN public.tbl_dokument using (dokument_kurzbz) + WHERE person_id =".$this->db_add_param($person_id, FHC_INTEGER); + + if($onlinebewerbung) + $qry.= " AND onlinebewerbung is true; "; + else + $qry.=";"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $dok = new dokument(); + $dok->dokument_kurzbz = $row->dokument_kurzbz; + $dok->bezeichnung = $row->bezeichnung; + $dok->pflicht= $this->db_parse_bool($row->pflicht); + + $this->result[] = $dok; + } + return true; + } + else + { + $this->errormsg="Fehler bei der Abfrage aufgetreten"; + return false; + } + + } + + /** + * Loescht einen Dokumenttyp + * @param $dokument_kurzbz + * @return true wenn ok, false im Fehlerfall + */ + function deleteDokumenttyp($dokument_kurzbz) + { + $qry="DELETE FROM public.tbl_dokument WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz); + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg='Löschen fehlgeschlagen'; + return false; + } + } +} diff --git a/system/checksystem.php b/system/checksystem.php index 36bc025e8..315772e90 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -2609,6 +2609,17 @@ if(!$result = @$db->db_query("SELECT anwesenheit FROM campus.tbl_lvinfo LIMIT 1" echo 'campus.tbl_lvinfo: Spalte "anwesenheit" hinzugefuegt!
'; } +// Spalte pflicht in tbl_dokumentstudiengang +if(!$result = @$db->db_query("SELECT pflicht FROM public.tbl_dokumentstudiengang LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_dokumentstudiengang ADD COLUMN pflicht BOOLEAN NOT NULL DEFAULT FALSE"; + + if(!$db->db_query($qry)) + echo 'public.tbl_dokumentstudiengang '.$db->db_last_error().'
'; + else + echo 'public.tbl_dokumentstudiengang: Spalte "pflicht" hinzugefuegt!
'; +} + // Anrechnungen if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung LIMIT 1;")) { @@ -2939,7 +2950,7 @@ $tabellen=array( "public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"), "public.tbl_dokument" => array("dokument_kurzbz","bezeichnung","ext_id"), "public.tbl_dokumentprestudent" => array("dokument_kurzbz","prestudent_id","mitarbeiter_uid","datum","updateamum","updatevon","insertamum","insertvon","ext_id"), - "public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung"), + "public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht"), "public.tbl_erhalter" => array("erhalter_kz","kurzbz","bezeichnung","dvr","logo","zvr"), "public.tbl_fachbereich" => array("fachbereich_kurzbz","bezeichnung","farbe","studiengang_kz","aktiv","ext_id","oe_kurzbz"), "public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr"), diff --git a/vilesci/stammdaten/studiengang_dokumente.php b/vilesci/stammdaten/studiengang_dokumente.php index 4c0ef0080..59939067f 100644 --- a/vilesci/stammdaten/studiengang_dokumente.php +++ b/vilesci/stammdaten/studiengang_dokumente.php @@ -27,9 +27,9 @@ require_once('../../include/studiengang.class.php'); require_once('../../include/dokument.class.php'); require_once('../../include/benutzerberechtigung.class.php'); -$stg_kz=isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:'0'; -$dokument_kurzbz=isset($_REQUEST['dokument_kurzbz'])?$_REQUEST['dokument_kurzbz']:''; -$onlinebewerbung=isset($_REQUEST['onlinebewerbung']); +$stg_kz = isset($_REQUEST['stg_kz']) ? $_REQUEST['stg_kz'] : '0'; +$dokument_kurzbz = isset($_REQUEST['dokument_kurzbz']) ? $_REQUEST['dokument_kurzbz'] : ''; +$onlinebewerbung = isset($_REQUEST['onlinebewerbung']); $action=isset($_GET['action'])?$_GET['action']:''; if(isset($_POST['add'])) @@ -52,6 +52,7 @@ if($action=='add') $dokument->dokument_kurzbz = $dokument_kurzbz; $dokument->studiengang_kz = $stg_kz; $dokument->onlinebewerbung = $onlinebewerbung; + $dokument->pflicht = filter_input(INPUT_POST, 'pflicht', FILTER_VALIDATE_BOOLEAN); $dokument->saveDokumentStudiengang(); } } @@ -82,6 +83,21 @@ if($action =='toggleonline') } } +if($action === 'togglepflicht') { + if($dokument_kurzbz != '' && $stg_kz != '') + { + $dokument=new dokument(); + if($dokument->loadDokumentStudiengang($dokument_kurzbz, $stg_kz)) + { + $dokument->pflicht = !$dokument->pflicht; + if(!$dokument->saveDokumentStudiengang()) + echo $dokument->errormsg; + } + else + echo 'Zuordnung ist nicht vorhanden'; + } +} + if($action=='saveDoc') { $dokBezeichnung=isset($_POST['dokument_bezeichnung'])?$_POST['dokument_bezeichnung']:''; @@ -262,6 +278,7 @@ else Dokumentname Online-Bewerbung + Pflicht @@ -272,10 +289,12 @@ else foreach($dokStg->result as $dok) { $zugewieseneDokumente[]=$dok->dokument_kurzbz; - $checked=$dok->onlinebewerbung?'true':'false'; + $checked_onlinebewerbung = $dok->onlinebewerbung ? 'true' : 'false'; + $checked_pflicht = $dok->pflicht ? 'true' : 'false'; echo ' '.$dok->bezeichnung.' - + + Zuordnung löschen '; @@ -294,6 +313,10 @@ else } echo ' + + + +