From 1c6e5e9f14ed99f02db9bbe3027659c5709ac6c2 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 16 Nov 2015 09:18:45 +0100 Subject: [PATCH 01/20] foerdervertrag moved to addon studiengangsverwaltung --- include/foerdervertrag.class.php | 238 ------------------------------- include/studienordnung.class.php | 21 +-- 2 files changed, 11 insertions(+), 248 deletions(-) delete mode 100644 include/foerdervertrag.class.php diff --git a/include/foerdervertrag.class.php b/include/foerdervertrag.class.php deleted file mode 100644 index 4e78d2bfa..000000000 --- a/include/foerdervertrag.class.php +++ /dev/null @@ -1,238 +0,0 @@ - - */ -/** - * Klasse Reihungstest - * @create 10-01-2007 - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class foerdervertrag extends basis_db -{ - public $new; // boolean - public $result = array(); - - //Tabellenspalten - public $foerdervertag_id;// integer - public $studiengang_kz; // integer - public $foerdergeber; // string - public $foerdersatz; // integer - public $foerdergruppe; // string - public $gueltigvon; // string - public $gueltigbis; // string - public $erlaeuterungen; // string - public $insertamum; // timestamp - public $insertvon; // bigint - public $updateamum; // timestamp - public $updatevon; // bigint - - /** - * Konstruktor - * @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null) - */ - public function __construct($foerdervertag_id=null) - { - parent::__construct(); - - if(!is_null($foerdervertag_id)) - $this->load($foerdervertag_id); - } - - /** - * Laedt den Fördervertrag mit der ID $foerdervertag_id - * @param $foerdervertag_id ID des zu ladenden Fördervertrags - * @return true wenn ok, false im Fehlerfall - */ - public function load($foerdervertag_id) - { - if(!is_numeric($foerdervertag_id)) - { - $this->errormsg = 'Foerdervertag_id ist ungueltig'; - return false; - } - - $qry = "SELECT * FROM public.tbl_foerdervertrag WHERE foerdervertag_id=".$this->db_add_param($foerdervertag_id, FHC_INTEGER, false); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->foerdervertag_id = $row->foerdervertag_id; - $this->studiengang_kz = $row->studiengang_kz; - $this->foerdergeber = $row->foerdergeber; - $this->foerdersatz = $row->foerdersatz; - $this->foerdergruppe = $row->foerdergruppe; - $this->gueltigvon = $row->gueltigvon; - $this->gueltigbis = $row->gueltigbis; - $this->erlaeuterungen = $row->erlaeuterungen; - $this->insertamum = $row->insertamum; - $this->insertvon = $row->insertvon; - $this->updateamum = $row->updateamum; - $this->updatevon = $row->updatevon; - return true; - } - else - { - $this->errormsg = 'Foerdervertrag existiert nicht'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Reihungstests'; - return false; - } - } - - /** - * Liefert alle Förderverträge - */ - public function getAll($stg_kz=null) - { - $qry = "SELECT * FROM public.tbl_foerdervertrag "; - if($stg_kz!=null) - $qry.=" WHERE studiengang_kz=".$this->db_add_param($stg_kz); - $qry.=";"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new foerdervertrag(); - - $obj->foerdervertrag_id = $row->foerdervertrag_id; - $obj->studiengang_kz = $row->studiengang_kz; - $obj->foerdergeber = $row->foerdergeber; - $obj->foerdersatz = $row->foerdersatz; - $obj->foerdergruppe = $row->foerdergruppe; - $obj->gueltigvon = $row->gueltigvon; - $obj->gueltigbis = $row->gueltigbis; - $obj->erlaeuterungen = $row->erlaeuterungen; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Förderverträge.'; - return false; - } - } - - /** - * Prueft die Variablen auf Gueltigkeit - * @return true wenn ok, false im Fehlerfall - */ - private function validate() - { - //Zahlenfelder pruefen - if(!is_numeric($this->studiengang_kz)) - { - $this->errormsg='studiengang_kz enthaelt ungueltige Zeichen'; - return false; - } - - $this->errormsg = ''; - return true; - } - - /** - * Speichert den aktuellen Datensatz in die Datenbank - * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt - * andernfalls wird der Datensatz mit der ID in $reihungstest_id aktualisiert - * @return true wenn ok, false im Fehlerfall - */ - public function save() - { - if(!$this->validate()) - return false; - - if($this->new) - { - //Neuen Datensatz einfuegen - - $qry='BEGIN; INSERT INTO public.tbl_foerdervertrag (studiengang_kz, foerdergeber, foerdersatz, foerdergruppe, gueltigvon, gueltigbis, erlaeuterungen, - insertamum, insertvon) VALUES('. - $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. - $this->db_add_param($this->foerdergeber).', '. - $this->db_add_param($this->foerdersatz).', '. - $this->db_add_param($this->foerdergruppe).', '. - $this->db_add_param($this->gueltigvon).', '. - $this->db_add_param($this->gueltigbis).', '. - $this->db_add_param($this->erlaeuterungen).', now(),'. - $this->db_add_param($this->insertvon).');'; - } - else - { -// $qry='UPDATE public.tbl_reihungstest SET '. -// 'studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. -// 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '. -// 'anmerkung='.$this->db_add_param($this->anmerkung).', '. -// 'datum='.$this->db_add_param($this->datum).', '. -// 'uhrzeit='.$this->db_add_param($this->uhrzeit).', '. -// 'updateamum= now(), '. -// 'updatevon='.$this->db_add_param($this->updatevon).', '. -// 'max_teilnehmer='.$this->db_add_param($this->max_teilnehmer).', '. -// 'oeffentlich='.$this->db_add_param($this->oeffentlich, FHC_BOOLEAN).', '. -// 'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).', '. -// 'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).' '. -// 'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';'; - } - - if($this->db_query($qry)) - { - if($this->new) - { - $qry = "SELECT currval('public.seq_foerdervertrag_foerdervertrag_id') as id"; - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->foerdervertrag_id = $row->id; - $this->db_query('COMMIT'); - return true; - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK'); - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK'); - return false; - } - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Daten'; - return false; - } - } -} diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php index 569166370..47d11caeb 100644 --- a/include/studienordnung.class.php +++ b/include/studienordnung.class.php @@ -217,16 +217,17 @@ class studienordnung extends basis_db $this->errormsg='studiengang_kz enthaelt ungueltige Zeichen'; return false; } - if(!is_numeric($this->ects)) - { - $this->errormsg='ects enthaelt ungueltige Zeichen'; - return false; - } - if(!is_numeric($this->akadgrad_id)) - { - $this->errormsg='akadgrad_id enthaelt ungueltige Zeichen'; - return false; - } + //changes for addon Studiengangsverwaltung; ECTS and akadgrad_id are optional +// if(!is_numeric($this->ects)) +// { +// $this->errormsg='ects enthaelt ungueltige Zeichen'; +// return false; +// } +// if(!is_numeric($this->akadgrad_id)) +// { +// $this->errormsg='akadgrad_id enthaelt ungueltige Zeichen'; +// return false; +// } //Gesamtlaenge pruefen if(mb_strlen($this->version)>256) From cea6576f51c4a114835affcb3c39533ccb48104c Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 16 Nov 2015 15:43:55 +0100 Subject: [PATCH 02/20] foerdervertrag moved to addon studiengangsverwaltung --- system/dbupdate_3.0.php | 44 ----------------------------------------- system/dbupdate_3.1.php | 43 ---------------------------------------- 2 files changed, 87 deletions(-) diff --git a/system/dbupdate_3.0.php b/system/dbupdate_3.0.php index f9a964b9b..bdd8737af 100644 --- a/system/dbupdate_3.0.php +++ b/system/dbupdate_3.0.php @@ -3780,50 +3780,6 @@ if(!$result = @$db->db_query("SELECT studiensemester_kurzbz FROM public.tbl_reih else echo 'public.tbl_reihungstest: Spalte studiensemester_kurzbz hinzugefuegt'; } - -//Tabelle public.tbl_foerdervertrag -if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_foerdervertrag LIMIT 1;")) -{ - $qry = "CREATE TABLE public.tbl_foerdervertrag - ( - foerdervertrag_id integer NOT NULL, - studiengang_kz integer NOT NULL, - foerdergeber varchar(256), - foerdersatz numeric(8,2), - foerdergruppe varchar(256), - gueltigvon varchar(16), - gueltigbis varchar(16), - erlaeuterungen text, - insertamum timestamp, - insertvon varchar(32), - updateamum timestamp, - updatevon varchar(32) - ); - - CREATE SEQUENCE public.seq_foerdervertrag_foerdervertrag_id - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT pk_foerdervertrag PRIMARY KEY (foerdervertrag_id); - ALTER TABLE public.tbl_foerdervertrag ALTER COLUMN foerdervertrag_id SET DEFAULT nextval('public.seq_foerdervertrag_foerdervertrag_id'); - - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiengang FOREIGN KEY (studiengang_kz) REFERENCES public.tbl_studiengang (studiengang_kz) ON DELETE RESTRICT ON UPDATE CASCADE; - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiensemester_gueltigvon FOREIGN KEY (gueltigvon) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiensemester_gueltigbis FOREIGN KEY (gueltigbis) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - - GRANT SELECT ON public.tbl_foerdervertrag TO web; - GRANT SELECT, UPDATE, INSERT, DELETE ON public.tbl_foerdervertrag TO vilesci; - GRANT SELECT, UPDATE ON public.seq_foerdervertrag_foerdervertrag_id TO vilesci; - "; - - if(!$db->db_query($qry)) - echo 'public.tbl_foerdervertrag: '.$db->db_last_error().'
'; - else - echo ' public.tbl_foerdervertrag: Tabelle hinzugefuegt
'; -} - echo '


'; $tabellen=array( diff --git a/system/dbupdate_3.1.php b/system/dbupdate_3.1.php index f9a964b9b..dab8a9e20 100644 --- a/system/dbupdate_3.1.php +++ b/system/dbupdate_3.1.php @@ -3781,49 +3781,6 @@ if(!$result = @$db->db_query("SELECT studiensemester_kurzbz FROM public.tbl_reih echo 'public.tbl_reihungstest: Spalte studiensemester_kurzbz hinzugefuegt'; } -//Tabelle public.tbl_foerdervertrag -if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_foerdervertrag LIMIT 1;")) -{ - $qry = "CREATE TABLE public.tbl_foerdervertrag - ( - foerdervertrag_id integer NOT NULL, - studiengang_kz integer NOT NULL, - foerdergeber varchar(256), - foerdersatz numeric(8,2), - foerdergruppe varchar(256), - gueltigvon varchar(16), - gueltigbis varchar(16), - erlaeuterungen text, - insertamum timestamp, - insertvon varchar(32), - updateamum timestamp, - updatevon varchar(32) - ); - - CREATE SEQUENCE public.seq_foerdervertrag_foerdervertrag_id - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT pk_foerdervertrag PRIMARY KEY (foerdervertrag_id); - ALTER TABLE public.tbl_foerdervertrag ALTER COLUMN foerdervertrag_id SET DEFAULT nextval('public.seq_foerdervertrag_foerdervertrag_id'); - - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiengang FOREIGN KEY (studiengang_kz) REFERENCES public.tbl_studiengang (studiengang_kz) ON DELETE RESTRICT ON UPDATE CASCADE; - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiensemester_gueltigvon FOREIGN KEY (gueltigvon) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiensemester_gueltigbis FOREIGN KEY (gueltigbis) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - - GRANT SELECT ON public.tbl_foerdervertrag TO web; - GRANT SELECT, UPDATE, INSERT, DELETE ON public.tbl_foerdervertrag TO vilesci; - GRANT SELECT, UPDATE ON public.seq_foerdervertrag_foerdervertrag_id TO vilesci; - "; - - if(!$db->db_query($qry)) - echo 'public.tbl_foerdervertrag: '.$db->db_last_error().'
'; - else - echo ' public.tbl_foerdervertrag: Tabelle hinzugefuegt
'; -} - echo '


'; $tabellen=array( From 2b4dee19498065a9a4811482a214b78b592bd184 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 17 Nov 2015 10:43:31 +0100 Subject: [PATCH 03/20] =?UTF-8?q?Ausstellungsstaat=20bei=20BIS-Meldung=20R?= =?UTF-8?q?=C3=BCcksicht=20auf=20getrennte=20Nationenfelder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/lehrgangsmeldung.php | 11 +++++++++-- vilesci/bis/studentenmeldung.php | 21 ++++++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/vilesci/bis/lehrgangsmeldung.php b/vilesci/bis/lehrgangsmeldung.php index 04741c8dd..8ada155f2 100644 --- a/vilesci/bis/lehrgangsmeldung.php +++ b/vilesci/bis/lehrgangsmeldung.php @@ -469,6 +469,13 @@ if($result = $db->db_query($qry)) } } // + + if($row->zgvmanation!='') + $ausstellungsstaat = $row->zgvmanation; + elseif($row->zgvnation!='') + $ausstellungsstaat = $row->zgvnation; + else + $ausstellungsstaat = $row->ausstellungsstaat; $datei.=" ".$row->staatsbuergerschaft." ".$plz." @@ -476,7 +483,7 @@ if($result = $db->db_query($qry)) ".$nation." ".$row->zgv_code." ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))." - ".$row->ausstellungsstaat.""; + ".$ausstellungsstaat.""; if($stgart==2) { @@ -550,4 +557,4 @@ if($result = $db->db_query($qry)) echo "XML-Datei für BIS-Meldung Lehrgang ".$lehrgangsname.' ('.$lehrgangsnummer.")
"; } } -?> \ No newline at end of file +?> diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index b60ce0a39..850d0c9dd 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -868,7 +868,15 @@ function GenerateXMLStudentBlock($row) else $beginndatum=''; } - if($row->ausstellungsstaat=='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15')) && !$ausserordentlich) + $ausstellungsstaat=''; + if($row->zgvmanation!='') + $ausstellungsstaat = $row->zgvmanation; + elseif($row->zgvnation!='') + $ausstellungsstaat = $row->zgvnation; + else + $ausstellungsstaat = $row->ausstellungsstaat; + + if($ausstellungsstaat=='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15')) && !$ausserordentlich) { $error_log.=(!empty($error_log)?', ':'')."Ausstellungsstaat ist nicht eingetragen"; } @@ -954,10 +962,17 @@ function GenerateXMLStudentBlock($row) if($aktstatus!='Incoming' && !$ausserordentlich) { - if($row->ausstellungsstaat!='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15'))) + if($row->zgvmanation!='') + $ausstellungsstaat = $row->zgvmanation; + elseif($row->zgvnation!='') + $ausstellungsstaat = $row->zgvnation; + else + $ausstellungsstaat = $row->ausstellungsstaat; + + if($ausstellungsstaat!='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15'))) { $datei.=' - '.$row->ausstellungsstaat.''; + '.$ausstellungsstaat.''; } } From cfcee48d83dcb332467e16be4c1962528cdd2817 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 17 Nov 2015 11:20:18 +0100 Subject: [PATCH 04/20] =?UTF-8?q?Fehler=20korrigiert=20bei=20dem=20in=20Ma?= =?UTF-8?q?ster=20Lehrg=C3=A4ngen=20die=20ZGV=20nicht=20korrekt=20geliefer?= =?UTF-8?q?t=20wurde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/lehrgangsmeldung.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/vilesci/bis/lehrgangsmeldung.php b/vilesci/bis/lehrgangsmeldung.php index 8ada155f2..fb588f20e 100644 --- a/vilesci/bis/lehrgangsmeldung.php +++ b/vilesci/bis/lehrgangsmeldung.php @@ -102,6 +102,16 @@ if($result = $db->db_query($qry)) if($row = $db->db_fetch_object($result)) { $stgart=$row->typ; + $lgartcode = $row->lgartcode; + $qrylgart = "SELECT lgart_biscode FROM bis.tbl_lgartcode WHERE lgartcode=".$db->db_add_param($row->lgartcode); + if($result_lgartcode = $db->db_query($qrylgart)) + { + if($row_lgartcode = $db->db_fetch_object($result_lgartcode)) + { + $lgartcode=$row_lgartcode->lgart_biscode; + } + } + $stgemail=$row->email; if(strlen(trim($row->erhalter_kz))==1) { @@ -256,7 +266,7 @@ if($result = $db->db_query($qry)) $error_log.=(!empty($error_log)?', ':'')."ZugangDatum ('".$row->zgvdatum."') kleiner als Geburtsdatum ('".$row->gebdatum."')"; } } - if($stgart==2) + if($lgartcode==1) { if($row->zgvmas_code=='' || $row->zgvmas_code==null) { @@ -485,7 +495,7 @@ if($result = $db->db_query($qry)) ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))." ".$ausstellungsstaat.""; - if($stgart==2) + if($lgartcode==1) { $datei.=" ".$row->zgvmas_code." From 56515bbd9b4196eee21307c8c0b6c1bd754ba5cf Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 17 Nov 2015 18:25:31 +0100 Subject: [PATCH 05/20] =?UTF-8?q?Reihenfolge=20im=20XML=20korrigiert=20die?= =?UTF-8?q?=20zu=20Problemen=20bei=20Master-Lehrg=C3=A4ngen=20f=C3=BChrte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/lehrgangsmeldung.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vilesci/bis/lehrgangsmeldung.php b/vilesci/bis/lehrgangsmeldung.php index fb588f20e..6ecea9709 100644 --- a/vilesci/bis/lehrgangsmeldung.php +++ b/vilesci/bis/lehrgangsmeldung.php @@ -492,8 +492,7 @@ if($result = $db->db_query($qry)) ".$gemeinde." ".$nation." ".$row->zgv_code." - ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))." - ".$ausstellungsstaat.""; + ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum)).""; if($lgartcode==1) { @@ -501,6 +500,9 @@ if($result = $db->db_query($qry)) ".$row->zgvmas_code." ".date("dmY", $datumobj->mktime_fromdate($row->zgvmadatum)).""; } + + $datei.=" + ".$ausstellungsstaat.""; $qryad="SELECT * From 014f113bd5a5dce7bbdac45f4f53c062802c8f7d Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Wed, 18 Nov 2015 07:42:18 +0100 Subject: [PATCH 06/20] =?UTF-8?q?Bei=20Pr=C3=BCfungsanmeldung=20im=20CIS?= =?UTF-8?q?=20kann=20per=20Config=20gesteuert=20werden,=20ob=20gleichzeiti?= =?UTF-8?q?g=20eine=20Anrechnung=20angelegt=20werden=20soll?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/pruefung/pruefung.js | 5 +- .../pruefung/pruefungsanmeldung.json.php | 81 +++++++++++-------- .../lehre/pruefung/pruefungsanmeldung.php | 4 +- config/cis.config-default.inc.php | 3 + 4 files changed, 57 insertions(+), 36 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js index d1047ee9c..55fb18bab 100644 --- a/cis/private/lehre/pruefung/pruefung.js +++ b/cis/private/lehre/pruefung/pruefung.js @@ -483,7 +483,10 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id) if(bemerkungen === undefined) bemerkungen = "von Lektor hinzugefügt"; - var studienverpflichtung_id = $("#studienverpflichtung option:selected").val(); + var studienverpflichtung_id = null; + if($("#studienverpflichtung").length) + studienverpflichtung_id = $("#studienverpflichtung option:selected").val(); + console.log(studienverpflichtung_id); $.ajax({ diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 5e5e5e3d2..89b72e837 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -537,45 +537,58 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } if($prestudent_id != "") { - - $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; - $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; - $anrechnung->prestudent_id = $prestudent_id; - $anrechnung->begruendung_id = "2"; - $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; - $anrechnung->new = true; - if($anrechnung->save()) + $anrechungSaveResult = false; + if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) + { + $anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id; + $anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id; + $anrechnung->prestudent_id = $prestudent_id; + $anrechnung->begruendung_id = "2"; + $anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER; + $anrechnung->new = true; + $anrechungSaveResult = $anrechnung->save(); + } + else + { + $anrechungSaveResult = true; + } + + if($anrechungSaveResult) { - $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - if($anmeldung->save(true)) - { - $pruefung = new pruefungCis($termin->pruefung_id); - if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) - $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; - else - $to = $pruefung->mitarbeiter_uid."@".DOMAIN; - $from = "noreply@".DOMAIN; - $subject = "Anmeldung zur Prüfung"; - $mail = new mail($to, $from, $subject, "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen."); + if($anrechnung->anrechnung_id == "") + $anmeldung->anrechnung_id = null; + else + $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; + + if($anmeldung->save(true)) + { + $pruefung = new pruefungCis($termin->pruefung_id); + if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== "")) + $to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN; + else + $to = $pruefung->mitarbeiter_uid."@".DOMAIN; + $from = "noreply@".DOMAIN; + $subject = "Anmeldung zur Prüfung"; + $mail = new mail($to, $from, $subject, "Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen."); - $student = new student($uid); - $datum = new datum(); + $student = new student($uid); + $datum = new datum(); - $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); + $lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id); - $html = "StudentIn ".$student->vorname." ".$student->nachname." hat sich zur Prüfung ".$lv->bezeichnung." am ".$datum->formatDatum($termin->von, "m.d.Y")." von ".$datum->formatDatum($termin->von,"h:i")." Uhr bis ".$datum->formatDatum($termin->bis,"h:i")." Uhr angemeldet."; - $mail->setHTMLContent($html); - $mail->send(); + $html = "StudentIn ".$student->vorname." ".$student->nachname." hat sich zur Prüfung ".$lv->bezeichnung." am ".$datum->formatDatum($termin->von, "m.d.Y")." von ".$datum->formatDatum($termin->von,"h:i")." Uhr bis ".$datum->formatDatum($termin->bis,"h:i")." Uhr angemeldet."; + $mail->setHTMLContent($html); + $mail->send(); - $data['result'] = "Anmeldung erfolgreich!"; - $data['error']='false'; - $data['errormsg']=''; - } - else - { - $data['error']='true'; - $data['errormsg']=$anmeldung->errormsg; - } + $data['result'] = "Anmeldung erfolgreich!"; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } } else { diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php index 250b38fed..505da7708 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php @@ -285,12 +285,14 @@ $studiensemester->getAll(); - + + Studienverpflichtung:* + Bemerkung: diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index aa24ca99a..0ec57fc77 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -212,6 +212,9 @@ define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN',true); //User, welcher für das Anlegen von Anrechnungen bei der Prüfungsanmeldung verwendet wird define('CIS_PRUEFUNGSANMELDUNG_USER','p.pruefungsanmeldung'); +// Soll für die Prüfungsanmeldungen eine Anrechnung erstellt werden +define('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG', true); + //Gibt an, wie viele Semester aus der Vergangenheit unter Meine LV angezeigt werden define('CIS_MEINELV_ANZAHL_SEMESTER_PAST', 3); From 472bb6a082284388356e5e873e02a0852d5fc44c Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Wed, 18 Nov 2015 17:29:59 +0100 Subject: [PATCH 07/20] =?UTF-8?q?Admin=20darf=20ZA=20sehen=20=C3=BCber=20R?= =?UTF-8?q?echtesystem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 680a79ac7..908b04f88 100755 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -40,6 +40,7 @@ require_once('../../../include/betriebsmittelperson.class.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/bisverwendung.class.php'); require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); $sprache = getSprache(); $p=new phrasen($sprache); @@ -48,10 +49,22 @@ if (!$db = new basis_db()) die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung")); $user = get_uid(); -if ($user == 'raab' && isset($_GET["debuguser"])) - $user = $_GET["debuguser"]; - +//Wenn User Administrator ist und UID uebergeben wurde, dann die Zeiaufzeichnung +//des uebergebenen Users anzeigen +if(isset($_GET['uid'])) +{ + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($user); + if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid')) + { + $user = $_GET['uid']; + } + else + { + die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte')); + } +} $datum = new datum(); From bc7c1af918a470ee4d8378632e9a3301700e7ed7 Mon Sep 17 00:00:00 2001 From: Paminger Date: Thu, 19 Nov 2015 17:32:56 +0100 Subject: [PATCH 08/20] Touch Me --- system/checkcomposer.php | 0 system/checkphp.php | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 system/checkcomposer.php create mode 100644 system/checkphp.php diff --git a/system/checkcomposer.php b/system/checkcomposer.php new file mode 100644 index 000000000..e69de29bb diff --git a/system/checkphp.php b/system/checkphp.php new file mode 100644 index 000000000..a14c2fc2d --- /dev/null +++ b/system/checkphp.php @@ -0,0 +1,2 @@ + Date: Fri, 20 Nov 2015 09:19:10 +0100 Subject: [PATCH 09/20] =?UTF-8?q?defaultconfig=20f=C3=BCr=20phantom=20entf?= =?UTF-8?q?ernt,=20da=20es=20in=20das=20reporting-Addon=20verschoben=20wur?= =?UTF-8?q?de?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/global.config-default.inc.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 965c98938..46af88f05 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -199,7 +199,4 @@ define('KOLLISIONSFREIE_USER',serialize(array('_DummyLektor'))); // Soll der Lageplan am Infoterminal angezeigt werden (true|false) define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN', true); - -//PHANTOM -define('PHANTOM_SERVER','http://phantomjs.example.com:3003'); ?> From c301764467d7e3be29fde6ca2d17c9277b2b052d Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Fri, 20 Nov 2015 12:22:01 +0100 Subject: [PATCH 10/20] darstellung urlaubsblock leer - vorbereitung --- cis/private/profile/urlaubsfreigabe.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cis/private/profile/urlaubsfreigabe.php b/cis/private/profile/urlaubsfreigabe.php index 19ab27115..e40506d1f 100755 --- a/cis/private/profile/urlaubsfreigabe.php +++ b/cis/private/profile/urlaubsfreigabe.php @@ -228,7 +228,9 @@ if($uid!='') echo "Alle Mitarbeiter anzeigen
"; echo ''; echo ''; - + //echo '
'; + //echo ''; + //Anzeige Resturlaubsberechnung $resturlaub = new resturlaub(); @@ -305,6 +307,7 @@ if($uid!='') echo ''; echo ''; + } echo '
'; From 4dae1a59aadf9e3df390ac01069b55335adae050 Mon Sep 17 00:00:00 2001 From: Paminger Date: Sat, 21 Nov 2015 14:26:12 +0100 Subject: [PATCH 11/20] XUL-Tools Versionen --- content/fas.xul.php | 2 +- content/planner.xul.php | 2 +- content/tempus.xul.php | 2 +- locale/de-AT/fas.dtd | 2 +- locale/de-AT/planner.dtd | 2 +- locale/de-AT/tempus.dtd | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/fas.xul.php b/content/fas.xul.php index c5a58bdb0..27e06df49 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -60,7 +60,7 @@ echo ''; '; '; - + diff --git a/locale/de-AT/planner.dtd b/locale/de-AT/planner.dtd index d970afb24..5ed6bc9e5 100755 --- a/locale/de-AT/planner.dtd +++ b/locale/de-AT/planner.dtd @@ -1,5 +1,5 @@ - + diff --git a/locale/de-AT/tempus.dtd b/locale/de-AT/tempus.dtd index cd437eb2a..8c042de7b 100644 --- a/locale/de-AT/tempus.dtd +++ b/locale/de-AT/tempus.dtd @@ -1,5 +1,5 @@ - + From ff4b37a0f9574345de4f19454b5626b13f6121b1 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 23 Nov 2015 11:01:04 +0100 Subject: [PATCH 12/20] Neue Klasse fuer Dokumenten Export hinzugefuegt --- include/dokument_export.class.php | 393 ++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 include/dokument_export.class.php diff --git a/include/dokument_export.class.php b/include/dokument_export.class.php new file mode 100644 index 000000000..54c46e25a --- /dev/null +++ b/include/dokument_export.class.php @@ -0,0 +1,393 @@ + and + */ +require_once(dirname(__FILE__).'/vorlage.class.php'); +require_once(dirname(__FILE__).'/addon.class.php'); +require_once(dirname(__FILE__).'/studiengang.class.php'); + +class dokument_export +{ + private $content_xsl; // XSL Vorlage fuer content.xml + private $styles_xsl; // XSL Vorlage fuer styles.xml + private $xml_data; // XML Daten + private $vorlage; // Vorlage Objekt + private $vorlage_file; // Vorlage ODT/ODS in das hineingezippt wird + private $outputformat; // Datentyp des Ausgabefiles + private $filename; // Dateiname des Ausgabefiles + private $temp_filename; + private $temp_folder; + private $images=array(); + + /** + * Konstruktor + */ + public function __construct($vorlage, $oe_kurzbz=0, $version=null) + { + //Vorlage aus der Datenbank holen + $this->vorlage = new vorlage(); + if(!$this->vorlage->getAktuelleVorlage($oe_kurzbz, $vorlage, $version)) + die('Keine Dokumentenvorlage gefunden'); + + $this->content_xsl = new DOMDocument; + if(!$this->content_xsl->loadXML($this->vorlage->text)) + die('unable to load xsl'); + + // Style Vorlage laden falls vorhanden + if($this->vorlage->style!='') + { + $this->styles_xsl = new DOMDocument; + if(!$this->styles_xsl->loadXML($vorlage->style)) + die('unable to load styles xsl'); + } + + switch($this->vorlage->mimetype) + { + case 'application/vnd.oasis.opendocument.text': + $this->outputformat = 'odt'; + $this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.odt'; + break; + case 'application/vnd.oasis.opendocument.spreadsheet': + $this->outputformat = 'ods'; + $this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.ods'; + break; + default: + $this->outputformat = 'pdf'; + $this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.odt'; + } + + if($this->vorlage->bezeichnung!='') + $this->filename = $this->vorlage->bezeichnung; + else + $this->filename = $this->vorlage->vorlage_kurzbz; + + } + + /** + * Laedt die XML Daten fuer die XSL Transformation anhand eines Arrays + * @param $data Array mit Daten + * @param $root Bezeichnung des Root Nodes + * @return boolean true + */ + public function addDataArray($data, $root) + { + $this->xml_data = new DOMDocument; + $this->xml_data->loadXML($this->ConvertArrayToXML($data,$root)); + return true; + } + + /** + * XML Daten fuer die XSL Transformation + * @param $xml + * @return boolean true + */ + public function addDataXML($xml) + { + $this->xml_data = new DOMDocument; + $this->xml_data->loadXML($xml); + return true; + } + + /** + * URL zu XML Datei die fuer XSLTransformation verwendet werden soll + * @param $xml URL zu XML + * @param $params GET Parameter die an XML URL uebergeben werden + * @return boolean true + */ + public function addDataURL($xml, $params) + { + $xml_found = false; + $addons = new addon(); + + foreach($addons->aktive_addons as $addon) + { + $xmlfile = DOC_ROOT.'addons/'.$addon.'/rdf/'.$xml; + if(file_exists($xmlfile)) + { + $xml_found = true; + $xml_url = XML_ROOT.'../addons/'.$addon.'/rdf/'.$xml.'?'.$params; + break; + } + } + if(!$xml_found) + $xml_url=XML_ROOT.$xml.'?'.$params; + + + // Load the XML source + $this->xml_data = new DOMDocument; + + if(!$this->xml_data->load($xml_url)) + die('unable to load xml: '.$xml_url); + + return true; + } + + /** + * Fuegt ein Bild zum Dokument hinzu + * @param $path Pfad zum Bild im Filesystem + * @param $name Name des Bildes das es im Dokument haben soll ohne Pfad (zB 1.png) + * @param $contenttype Contenttype des Bilds (zB image/png) + */ + public function addImage($path, $name, $contenttype) + { + $this->images[]=array('path'=>$path,'name'=>$name,'contenttype'=>$contenttype); + } + + /** + * Erstellt das ODT Dokument inklusive Bilder und konvertiert es ins gewuenschte Format + * @param $outputformat ODT, PDF, DOC + * @return true wenn ok + */ + public function create($outputformat=null) + { + if(!is_null($outputformat)) + $this->outputformat=$outputformat; + + // content.xml erstellen + $proc = new XSLTProcessor; + $proc->importStyleSheet($this->content_xsl); + + $contentbuffer = $proc->transformToXml($this->xml_data); + + $this->temp_folder = '/tmp/fhcunoconv-'.uniqid(); + mkdir($this->temp_folder); + chdir($this->temp_folder); + file_put_contents('content.xml', $contentbuffer); + + // styles.xml erstellen + if(!is_null($this->styles_xsl)) + { + $style_proc = new XSLTProcessor; + $style_proc->importStyleSheet($this->styles_xsl); + + $stylesbuffer = $style_proc->transformToXml($this->xml_data); + + file_put_contents('styles.xml', $stylesbuffer); + } + + // Template holen + $vorlage_found=false; + $addons = new addon(); + + foreach($addons->aktive_addons as $addon) + { + $zipfile = DOC_ROOT.'addons/'.$addon.'/system/vorlage_zip/'.$this->vorlage_file; + + if(file_exists($zipfile)) + { + $vorlage_found=true; + break; + } + } + if(!$vorlage_found) + $zipfile = DOC_ROOT.'system/vorlage_zip/'.$this->vorlage_file; + + $tempname_zip = 'out.zip'; + if(!copy($zipfile, $tempname_zip)) + die('copy failed'); + + exec("zip $tempname_zip content.xml"); + if(!is_null($this->styles_xsl)) + exec("zip $tempname_zip styles.xml"); + + // bilder hinzufuegen + if(count($this->images)>0) + { + // Unterordner fuer die Bilder erstellen + mkdir('Pictures'); + + // Manifest Datei holen + exec('unzip '.$tempname_zip.' META-INF/manifest.xml'); + + // Bild zur Manifest Datei hinzufuegen + $manifest = file_get_contents('META-INF/manifest.xml'); + + $manifest_xml = new DOMDocument; + if(!$manifest_xml->loadXML($manifest)) + die('Manifest File ungueltig'); + + //root-node holen + $root = $manifest_xml->getElementsByTagName('manifest')->item(0); + + foreach($this->images as $bild) + { + copy($bild['path'], 'Pictures/'.$bild['name']); + + //Neues Element unterhalb des Root Nodes anlegen + $node = $manifest_xml->createElement("manifest:file-entry"); + $node->setAttribute("manifest:full-path",'Pictures/'.$bild['name']); + $node->setAttribute("manifest:media-type",$bild['contenttype']); + $root->appendChild($node); + } + + $out = $manifest_xml->saveXML(); + + //geaenderte Manifest Datei speichern und wieder ins Zip packen + file_put_contents('META-INF/manifest.xml', $out); + exec('zip '.$tempname_zip.' META-INF/*'); + + // Bilder zum ZIP-File hinzufuegen + exec("zip $tempname_zip Pictures/*"); + } + + clearstatcache(); + + switch($this->outputformat) + { + case 'pdf': + $this->temp_filename='out.pdf'; + exec("unoconv -e IsSkipEmptyPages=false --stdout -f pdf $tempname_zip > ".$this->temp_filename, $out, $ret); + if($ret!=0) + { + $this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator'; + return false; + } + break; + case 'doc': + $this->temp_filename='out.doc'; + exec("unoconv -e IsSkipEmptyPages=false --stdout -f doc $tempname_zip > ".$this->temp_filename, $out, $ret); + if($ret!=0) + { + $this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator'; + return false; + } + break; + case 'odt': + default: + $this->temp_filename = $tempname_zip; + + } + + return true; + } + + /** + * Liefert das Dokument mit den passenden Headern zum Download oder als ReturnValue + * @param $download wenn true werden Header gesendet und das Dokument ausgeliefert + * wenn false wird es als Returnwert zurueckgeliefert + * @return boolean true oder Dokument + */ + public function output($download=true) + { + + $fsize = filesize($this->temp_filename); + if(!$handle = fopen($this->temp_filename,'r')) + die('load failed'); + + if($download) + { + switch($this->outputformat) + { + case 'pdf': + header('Content-type: application/pdf'); + header('Content-Disposition: attachment; filename="'.$this->filename.'.pdf"'); + header('Content-Length: '.$fsize); + break; + + case 'doc': + header('Content-type: application/vnd.ms-word'); + header('Content-Disposition: attachment; filename="'.$this->filename.'.doc"'); + header('Content-Length: '.$fsize); + break; + + case 'odt': + header('Content-type: application/vnd.oasis.opendocument.text'); + header('Content-Disposition: attachment; filename="'.$this->filename.'.odt"'); + header('Content-Length: '.$fsize); + break; + } + + while (!feof($handle)) + { + echo fread($handle, 8192); + } + fclose($handle); + return true; + } + else + { + $data = fread($handle, filesize($file)); + fclose($handle); + return $data; + } + } + + /** + * Loescht die Temporaeren Dateien die angelegt wurden + * @return boolean true + */ + public function close() + { + unlink('content.xml'); + if($this->styles_xsl!='') + unlink('styles.xml'); + + unlink('out.zip'); + unlink($this->temp_filename); + + if(count($this->images)>0) + { + unlink('META-INF/manifest.xml'); + + foreach($this->images as $bild) + unlink('Pictures/'.$bild['name']); + rmdir('Pictures'); + rmdir('META-INF'); + } + + + rmdir($this->temp_folder); + + return true; + } + + /** + * Konvertiert das Array in ein XML + * @param $data PHP Array mit den Daten + * @param $rootElement Bezeichnung des XML Wurzelelements + * @param $xml_data SimpleXMLElement fuer Rekursionsaufloesung + * @return xml + */ + private function ConvertArrayToXML($data, $rootElement=null, $xml_data=null ) + { + $_xml_data = $xml_data; + if ($_xml_data === null) + $_xml_data = new SimpleXMLElement($rootElement !== null ? '<'.$rootElement.' />' : ''); + + foreach( $data as $key => $value ) + { + if( is_array($value) ) + { + if( is_numeric($key) ) + { + $key = 'item'.$key; //dealing with <0/>.. issues + $this->ConvertArrayToXML($value, null, $_xml_data); + } + else + { + $subnode = $_xml_data->addChild($key); + $this->ConvertArrayToXML($value, null, $subnode); + } + } + else + $_xml_data->addChild("$key",htmlspecialchars("$value")); + } + return $_xml_data->asXML(); + } +} +?> From 1e5ee27ebb11909e4e0494e05c411767b962c985 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 23 Nov 2015 11:01:33 +0100 Subject: [PATCH 13/20] Zusaetzliche Funktion zur Ermittlung des LV-Leiters hinzugefuegt --- include/lehrveranstaltung.class.php | 41 ++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index e686e0b94..d4a63a2f5 100644 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -1908,7 +1908,7 @@ class lehrveranstaltung extends basis_db return false; } - $qry = 'SELECT uid FROM campus.vw_student_lehrveranstaltung WHERE ' + $qry = 'SELECT distinct uid FROM campus.vw_student_lehrveranstaltung WHERE ' . 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); if(!is_null($studiensemester_kurzbz)) @@ -2193,5 +2193,44 @@ class lehrveranstaltung extends basis_db return $oe; } + + /** + * Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist, + * wird der erstbeste Lektor geliefert + * @param $lehrveranstaltung_id ID der Lehrveranstaltung + * @param $studiensemester_kurzbz Studiensemester + * @return UID des Mitarbeiters + */ + public function getLVLeitung($lehrveranstaltung_id, $studiensemester_kurzbz) + { + $qry = "SELECT + mitarbeiter_uid, + CASE WHEN lehrfunktion_kurzbz='LV-Leitung' THEN 1 ELSE 2 END as sort + FROM + lehre.tbl_lehreinheit + JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + WHERE + tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)." + AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + ORDER BY sort LIMIT 1"; + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + return $row->mitarbeiter_uid; + } + else + { + $this->errormsg = 'Keine Eintrag gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> From f399b3f0dd54b489cb8500525be533fb7bb87748 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 23 Nov 2015 11:03:57 +0100 Subject: [PATCH 14/20] Versionsnummer korrigiert --- version.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.php b/version.php index b6e454298..7185f8da5 100644 --- a/version.php +++ b/version.php @@ -21,6 +21,6 @@ **/ // Version -$fhcomplete_version = '3.1'; +$fhcomplete_version = '3.2'; ?> From 829d634f19d54fe1a295c86f4087bd9f507cbe8d Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 23 Nov 2015 13:59:44 +0100 Subject: [PATCH 15/20] Warning entfernt beim Anzeigen der Notenliste --- cis/private/lehre/notenliste.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index 3a19c6618..24c9c0f0f 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -99,6 +99,8 @@ if(isset($_GET['uid'])) else $getParam = ""; } +else + $getParam=''; $datum_obj = new datum(); From ada81af4d9e7cd670b65ae9fa3de060cad797906 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 23 Nov 2015 14:00:58 +0100 Subject: [PATCH 16/20] =?UTF-8?q?Kundennummern=20werden=20jetzt=20auf=20gs?= =?UTF-8?q?t=20statt=20auf=20etw=20geh=C3=A4ngt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wawi/firma.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wawi/firma.php b/wawi/firma.php index 9ab94e6e1..984f965aa 100644 --- a/wawi/firma.php +++ b/wawi/firma.php @@ -162,7 +162,7 @@ if(isset($_POST['save'])) { $firma_oe->firma_id = $firma->firma_id; $firma_oe->new = true; - $firma_oe->oe_kurzbz='etw'; + $firma_oe->oe_kurzbz='gst'; $firma_oe->insertamum = date('Y-m-d H:i:s'); $firma_oe->insertvon = $user; } @@ -410,7 +410,7 @@ if($method=='new' || $method=='update') $firma_id = $firma->firma_id; $firma_oe = new firma(); - $firma_oe->get_firmaorganisationseinheit($firma_id,'etw'); + $firma_oe->get_firmaorganisationseinheit($firma_id,'gst'); if(isset($firma_oe->result[0])) { $kundennummer_erhalter = $firma_oe->result[0]->kundennummer; @@ -631,4 +631,4 @@ if($method=='search') ?> - \ No newline at end of file + From f7090760716b0759744c0f0e2f124ea0c1cc874f Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 23 Nov 2015 14:25:57 +0100 Subject: [PATCH 17/20] =?UTF-8?q?Fehler=20behoben=20bei=20dem=20die=20Stud?= =?UTF-8?q?ienerfolgsbest=C3=A4tigung=20mit=20falschen=20Studiesemester=20?= =?UTF-8?q?erstellt=20wurde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/fas.xul.php | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/content/fas.xul.php b/content/fas.xul.php index 27e06df49..a5fe3b2c2 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -40,7 +40,7 @@ if(!$variable->loadVariables($user)) //$benutzer = new benutzer($conn); //if(!$benutzer->loadVariables($user)) // $error_msg = $benutzer->errormsg; - + $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -110,8 +110,8 @@ foreach($addon_obj->result as $addon) - - + + @@ -133,7 +133,7 @@ foreach($addon_obj->result as $addon) - + @@ -529,16 +529,16 @@ foreach($addon_obj->result as $addon) db_query($qry)) { while($row = $db->db_fetch_object()) { $stsem_kurzbz = $row->studiensemester_kurzbz; - + echo ' @@ -546,13 +546,13 @@ foreach($addon_obj->result as $addon) id = "menu-dokumente-studienerfolg-menu-normal" key = "menu-dokumente-studienerfolg-normal:key" label = "&menu-dokumente-studienerfolg-normal.label;" - oncommand = "StudentCreateStudienerfolg(\'Studienerfolg\',null, \''.$stsem_kurzbz.'\');" + oncommand = "StudentCreateStudienerfolg(event,\'Studienerfolg\',null, \''.$stsem_kurzbz.'\');" accesskey = "&menu-dokumente-studienerfolg-normal.accesskey;"/> '; @@ -592,16 +592,16 @@ foreach($addon_obj->result as $addon) db_query($qry)) { while($row = $db->db_fetch_object()) { $stsem_kurzbz = $row->studiensemester_kurzbz; - + echo ' @@ -609,13 +609,13 @@ foreach($addon_obj->result as $addon) id = "menu-dokumente-studienerfolgeng-menu-normal" key = "menu-dokumente-studienerfolgeng-normal:key" label = "&menu-dokumente-studienerfolgeng-normal.label;" - oncommand = "StudentCreateStudienerfolg(\'StudienerfolgEng\',null, \''.$stsem_kurzbz.'\');" + oncommand = "StudentCreateStudienerfolg(event,\'StudienerfolgEng\',null, \''.$stsem_kurzbz.'\');" accesskey = "&menu-dokumente-studienerfolgeng-normal.accesskey;"/> '; @@ -776,7 +776,7 @@ foreach($addon_obj->result as $addon) key = "menu-extras-projektarbeitsabgaben:key" label = "&menu-extras-projektarbeitsabgaben.label;" command = "menu-extras-projektarbeitsabgaben:command" - accesskey = "&menu-extras-projektarbeitsabgaben.accesskey;"/> + accesskey = "&menu-extras-projektarbeitsabgaben.accesskey;"/> Date: Mon, 23 Nov 2015 18:16:19 +0100 Subject: [PATCH 18/20] Personenzusammenlegung kopiert WaWi Konto --- vilesci/stammdaten/personen_wartung.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index 9afbb948f..e9c9553e8 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -91,7 +91,7 @@ if(isset($radio_1) && isset($radio_2) && $radio_1>=0 && $radio_2>=0) if($person->foto_sperre) $sql_query_upd1.="UPDATE public.tbl_person SET foto_sperre=true WHERE person_id=".$db->db_add_param($radio_2, FHC_INTEGER).";"; - // Wenn die zu loeschende Person ein Foto hat, und die andere nicht, + // Wenn die zu loeschende Person ein Foto hat, und die andere nicht, // dann wird das Foto uebernommen if($person->foto!='') { @@ -114,10 +114,11 @@ if(isset($radio_1) && isset($radio_2) && $radio_1>=0 && $radio_2>=0) $sql_query_upd1.="UPDATE public.tbl_adresse SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="UPDATE public.tbl_akte SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="UPDATE public.tbl_bankverbindung SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; - $sql_query_upd1.="UPDATE public.tbl_kontakt SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; + $sql_query_upd1.="UPDATE public.tbl_kontakt SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="UPDATE public.tbl_preinteressent SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="UPDATE public.tbl_personfunktionstandort SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="UPDATE public.tbl_notizzuordnung SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; + $sql_query_upd1.="UPDATE wawi.tbl_konto SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="DELETE FROM public.tbl_person WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; if($db->db_query($sql_query_upd1)) @@ -156,19 +157,19 @@ if((isset($radio_1) && !isset($radio_2))||(!isset($radio_1) && isset($radio_2)) + +
'; if(isset($_GET['gebiet_id'])) $gebiet_id=$_GET['gebiet_id']; -else +else $gebiet_id=''; - + $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1'); - echo '

 Gebiet bearbeiten

'; if(!$rechte->isBerechtigt('basis/testtool')) @@ -72,13 +95,13 @@ foreach ($gebiet->result as $row) { if($gebiet_id=='') $gebiet_id=$row->gebiet_id; - + if($gebiet_id==$row->gebiet_id) $selected='selected'; - else + else $selected=''; - - echo ''; + + echo ''; } echo ' @@ -86,12 +109,53 @@ echo ' echo '

'; +// Ablaufzuordnung entfernen +if(isset($_POST['action']) && $_POST['action']=='deleteZuordnung') +{ + if(!isset($_POST['ablauf_id']) || !is_numeric($_POST['ablauf_id'])) + die('ungueltige Parameteruebergabe'); + + $ablauf_id = $_POST['ablauf_id']; + + $ablauf = new gebiet(); + if($ablauf->deleteAblaufZuordnung($ablauf_id)) + echo 'Ablauf wurde entfernt'; + else + echo 'Fehler beim Entfernen:'.$ablauf->errormsg.''; + +} +// Ablaufzuordnung hinzufügen +if(isset($_POST['action']) && $_POST['action']=='saveAblauf') +{ + $ablauf_vorgaben_id = $_POST['ablauf_vorgaben_id']; + $studiengang_kz = $_POST['studiengang_kz']; + $reihung = $_POST['reihung']; + $gewicht = $_POST['gewicht']; + $semester = $_POST['semester']; + + $ablauf = new gebiet(); + + $ablauf->ablauf_vorgaben_id = $ablauf_vorgaben_id; + $ablauf->studiengang_kz = $studiengang_kz; + $ablauf->reihung = $reihung; + $ablauf->gewicht = $gewicht; + $ablauf->semester = $semester; + $ablauf->new = true; + $ablauf->gebiet_id = $gebiet_id; + + if($ablauf->saveAblauf()) + echo 'Ablauf gespeichert'; + else + echo 'Fehler beim Speichern:'.$ablauf->errormsg.''; + +} + //Speichern der Daten if(isset($_POST['speichern'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); - + $gebiet = new gebiet(); if($gebiet->load($gebiet_id)) { @@ -112,17 +176,17 @@ if(isset($_POST['speichern'])) $gebiet->updateamum = date('Y-m-d H:i:s'); $gebiet->updatevon = $user; $gebiet->antwortenprozeile = $_POST['antwortenprozeile']; - + if($gebiet->save(false)) { echo 'Daten erfolgreich gespeichert'; } - else + else { echo 'Fehler beim Speichern: '.$gebiet->errormsg.''; } } - else + else { echo 'Fehler beim Laden des Gebiets'; } @@ -135,7 +199,7 @@ if($gebiet_id!='') echo "
"; echo '
'; echo ''; - + echo ''; //ID echo ''; @@ -166,7 +230,7 @@ if($gebiet_id!='') $maximalpunkte = $gebiet->berechneMaximalpunkte($gebiet_id); if($gebiet->maxpunkte!=$maximalpunkte) $hinweis = 'empfohlene Maximalpunkteanzahl: '.$maximalpunkte.''; - else + else $hinweis =''; echo ''; echo ''; @@ -182,9 +246,74 @@ if($gebiet_id!='') echo ''; echo ''; echo '
ID'.$gebiet_id.'Maximale Punkteanzahl'.$hinweis.'
'; - + + echo '
'; + + echo '
+

Zuordnung

'; + + $gebiet = new gebiet(); + $gebiet->loadAblaufGebiet($gebiet_id); + + $studiengang = new studiengang(); + $studiengang->getAll('typ, kurzbz',false); + + echo '
'; + echo ' + + + + + + + + + + + '; + foreach($gebiet->result as $row) + { + echo ' + + + + + + + '; + } + echo ''; + echo ' + + + + + + + + '; + echo '
StudiengangReihungGewichtSemesterVorgabenAktion
'.$studiengang->kuerzel_arr[$row->studiengang_kz].''.$row->reihung.''.$row->gewicht.''.$row->semester.''.$row->ablauf_vorgaben_id.'
+ + + +
'; echo '
'; } echo ''; -?> \ No newline at end of file +?> diff --git a/cis/testtool/admin/index.php b/cis/testtool/admin/index.php index d8f02f142..c1c3265b9 100644 --- a/cis/testtool/admin/index.php +++ b/cis/testtool/admin/index.php @@ -31,7 +31,7 @@ require_once('../../../include/frage.class.php'); require_once('../../../include/vorschlag.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/studiengang.class.php'); - + if (!$db = new basis_db()) { die('Fehler beim Oeffnen der Datenbankverbindung'); @@ -52,7 +52,7 @@ if(!$rechte->isBerechtigt('basis/testtool', null, 's')) $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1'); - + if(isset($_GET['gebiet_id'])) { $gebiet_id = $_GET['gebiet_id']; @@ -112,7 +112,7 @@ function previewvorschlag() { document.getElementById('vorschauvorschlag').innerHTML = document.getElementById('text_vorschlag').value; } -function insertfrage(aTag, eTag) +function insertfrage(aTag, eTag) { var input = document.forms['formular_frage'].elements['text']; input.focus(); @@ -131,7 +131,7 @@ function insertfrage(aTag, eTag) input.selectionStart = pos; input.selectionEnd = pos; } -function insertvorschlag(aTag, eTag) +function insertvorschlag(aTag, eTag) { var input = document.forms['formular_vorschlag'].elements['text_vorschlag']; input.focus(); @@ -150,6 +150,11 @@ function insertvorschlag(aTag, eTag) input.selectionStart = pos; input.selectionEnd = pos; } + +function confirmDeleteFrage() +{ + return confirm('Wollen Sie diese Frage wirklich löschen?'); +}