From c742ab7b426d29400460ce30adaa1e0b9a55b6a8 Mon Sep 17 00:00:00 2001 From: kindlm Date: Wed, 10 Jun 2015 19:46:45 +0200 Subject: [PATCH 1/3] Erste Version --- include/service.class.php | 1 - include/vorlage.class.php | 295 +++++++++++++- system/checksystem.php | 71 +++- .../dokumentvorlagen_verwaltung.php | 374 ++++++++++++++++++ 4 files changed, 734 insertions(+), 7 deletions(-) create mode 100644 vilesci/stammdaten/dokumentvorlagen_verwaltung.php diff --git a/include/service.class.php b/include/service.class.php index 69a8d3f26..da78bc8a5 100755 --- a/include/service.class.php +++ b/include/service.class.php @@ -203,7 +203,6 @@ class service extends basis_db ) AS a GROUP BY service_id,oe_kurzbz,bezeichnung,beschreibung,ext_id,content_id ORDER BY anzahl DESC,bezeichnung,oe_kurzbz"; - echo $qry; if($result = $this->db_query($qry)) { diff --git a/include/vorlage.class.php b/include/vorlage.class.php index d338d107d..c2a700fbf 100644 --- a/include/vorlage.class.php +++ b/include/vorlage.class.php @@ -34,11 +34,18 @@ class vorlage extends basis_db public $new; //Tabellenspalten - public $vorlage_kurzbz; // varchar(16) - public $studiengang_kz; // integer - public $version; // smallint - public $text; // text - public $mimetype; // varchar(64) + public $vorlage_kurzbz; // varchar(16) + public $studiengang_kz; // integer + public $version; // smallint + public $text; // text + public $mimetype; // varchar(64) + public $bezeichnung; // varchar(64) + public $anmerkung; // text + public $style; // text + public $berechtigung; // varchar(32)[] + public $oe_kurzbz; // varchar(32) + public $vorlagestudiengang_id; // bigint + public $anmerkung_vorlagestudiengang; // text /** * Konstruktor @@ -47,7 +54,285 @@ class vorlage extends basis_db { parent::__construct(); } + + /** + * Laedt eine Vorlage + * @param $vorlage_kurzbz + * @return true wenn ok, false im Fehlerfall + */ + public function loadVorlage($vorlage_kurzbz) + { + $qry = "SELECT * FROM public.tbl_vorlage WHERE vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz); + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->vorlage_kurzbz = $row->vorlage_kurzbz; + $this->bezeichnung = $row->bezeichnung; + $this->anmerkung = $row->anmerkung; + $this->mimetype = $row->mimetype; + return true; + } + else + { + $this->errormsg = 'Eintrag wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Speichert eine Vorlage + * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + * angelegt, ansonsten der Datensatz upgedated + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function saveVorlage($new=null) + { + if(is_null($new)) + $new = $this->new; + + if($new) + { + $qry = "INSERT INTO public.tbl_vorlage(vorlage_kurzbz, bezeichnung, anmerkung, mimetype) VALUES(". + $this->db_add_param($this->vorlage_kurzbz).','. + $this->db_add_param($this->bezeichnung).','. + $this->db_add_param($this->anmerkung).','. + $this->db_add_param($this->mimetype).');'; + } + else + { + $qry = 'UPDATE public.tbl_vorlage + SET bezeichnung='.$this->db_add_param($this->bezeichnung).', + anmerkung='.$this->db_add_param($this->anmerkung).', + mimetype='.$this->db_add_param($this->mimetype).', + WHERE vorlage_kurzbz='.$this->db_add_param($this->vorlage_kurzbz).';'; + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern: '.$this->db_last_error(); + return false; + } + } + + /** + * Liefert alle Vorlagen + * @param $order Sortierreihenfolge. Default:vorlage_kurzbz + */ + public function getAllVorlagen($order='vorlage_kurzbz') + { + $qry ="SELECT * FROM public.tbl_vorlage ORDER BY ".$order.";"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new vorlage(); + $obj->vorlage_kurzbz = $row->vorlage_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->anmerkung = $row->anmerkung; + $obj->mimetype = $row->mimetype; + + $this->result[]= $obj; + } + } + else + return false; + } + + /** + * Laedt die Vorlage zu einer OE + * @param $vorlage_kurzbz + * @return true wenn ok, false im Fehlerfall + */ + public function loadVorlageOE($vorlagestudiengang_id) + { + $qry = "SELECT * FROM public.tbl_vorlagestudiengang WHERE vorlagestudiengang_id=".$this->db_add_param($vorlagestudiengang_id); + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->vorlagestudiengang_id = $row->vorlagestudiengang_id; + $this->vorlage_kurzbz = $row->vorlage_kurzbz; + $this->studiengang_kz = $row->studiengang_kz; + $this->version = $row->version; + $this->text = $row->text; + $this->oe_kurzbz = $row->oe_kurzbz; + $this->style = $row->style; + $this->berechtigung = $row->berechtigung; + $this->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang; + return true; + } + else + { + $this->errormsg = 'Eintrag wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Versionen einer Vorlage + * @param $vorlage_kurzbz + * @param $oe_kurzbz Optional. Gibt nur die Vorlagen zu dieser OE aus. + * @return true wenn ok, false im Fehlerfall + */ + public function getAllVersions($vorlage_kurzbz=null, $oe_kurzbz=null) + { + $qry = "SELECT + * + FROM + public.tbl_vorlagestudiengang + WHERE + 1=1"; + if(!is_null($vorlage_kurzbz) && $vorlage_kurzbz!='') + { + $qry.=" AND vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz); + } + if(!is_null($oe_kurzbz) && $oe_kurzbz!='') + { + $qry.=" AND oe_kurzbz=".$this->db_add_param($oe_kurzbz); + } + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new vorlage(); + $obj->vorlagestudiengang_id = $row->vorlagestudiengang_id; + $obj->vorlage_kurzbz = $row->vorlage_kurzbz; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->version = $row->version; + $obj->text = $row->text; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->style = $row->style; + $obj->berechtigung = $row->berechtigung; + $obj->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang; + + $this->result[]= $obj; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Speichert die Vorlage zu einer OE + * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + * angelegt, ansonsten der Datensatz upgedated + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function saveVorlageOE($new=null) + { + if($new == null) + $new = $this->new; + + if($new) + { + $qry = "INSERT INTO public.tbl_vorlagestudiengang(vorlage_kurzbz,studiengang_kz,version,text,oe_kurzbz,style,berechtigung,anmerkung_vorlagestudiengang) VALUES(". + $this->db_add_param($this->vorlage_kurzbz).','. + $this->db_add_param($this->studiengang_kz).','. + $this->db_add_param($this->version).','. + $this->db_add_param($this->text).','. + $this->db_add_param($this->oe_kurzbz).','. + $this->db_add_param($this->style).','. + $this->db_add_param($this->berechtigung).','. + $this->db_add_param($this->anmerkung_vorlagestudiengang).');'; + } + else + { + $qry = 'UPDATE public.tbl_vorlagestudiengang + SET vorlage_kurzbz='.$this->db_add_param($this->vorlage_kurzbz).', + studiengang_kz='.$this->db_add_param($this->studiengang_kz).', + version='.$this->db_add_param($this->version).', + text='.$this->db_add_param($this->text).', + oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', + style='.$this->db_add_param($this->style).', + berechtigung='.$this->db_add_param($this->berechtigung).', + anmerkung_vorlagestudiengang='.$this->db_add_param($this->anmerkung_vorlagestudiengang).' + WHERE vorlagestudiengang_id='.$this->db_add_param($this->vorlagestudiengang_id).';'; + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern: '.$this->db_last_error(); + return false; + } + } + + /** + * Löscht die Vorlagestudiengagn + * @param type $vorlagestudiengang_id ID der Vorlage + */ + public function deleteVorlagestudiengang($vorlagestudiengang_id) + { + $qry = 'DELETE FROM public.tbl_vorlagestudiengang WHERE vorlagestudiengang_id='.$this->db_add_param($vorlagestudiengang_id).';'; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Vorlage konnte nicht gelöscht werden'; + return false; + } + } + /** + * Liefert die hoechste Version der Vorlage + * + * @param $oe_kurzbz Organisationseinheit der Vorlage + * @param $vorlage_kurzbz Name der Vorlage + */ + public function getMaxVersion($oe_kurzbz, $vorlage_kurzbz) + { + $qry = "SELECT + max(version) maxversion + FROM + public.tbl_vorlagestudiengang + WHERE + vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz)." + AND + oe_kurzbz=".$this->db_add_param($oe_kurzbz); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + return $row->maxversion; + else + return 0; + } + else + { + $this->errormsg='Fehler beim Ermitteln der hoechsten Version'; + return false; + } + } + + /** * Liefert die aktuelle Vorlage * diff --git a/system/checksystem.php b/system/checksystem.php index f90c147d1..2e86a8d33 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3146,6 +3146,75 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } +// Gruppe CMS_LOCK anlegen (benoetigt fuer das Sperren von CMS-Content) +if($result = @$db->db_query("SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz='CMS_LOCK' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,WAHR,FALSE,FALSE); + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_gruppe '.$db->db_last_error().'
'; + else + echo ' public.tbl_gruppe: Gruppe CMS_LOCK angelegt (benoetigt fuer das Sperren von CMS-Content)
'; + } +} + +// DMS-Kategorie Akte anlegen und mit CMS_LOCK sperren +if($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz='Akte' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO campus.tbl_dms_kategorie(kategorie_kurzbz,bezeichnung,beschreibung,parent_kategorie_kurzbz) VALUES('Akte','Akten','Akten zu Personen',NULL); + INSERT INTO campus.tbl_dms_kategorie_gruppe(kategorie_kurzbz,gruppe_kurzbz,insertamum,insertvon) VALUES('Akte','CMS_LOCK',now(),'checksystem'); + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_dms_kategorie '.$db->db_last_error().'
'; + else + echo ' campus.tbl_dms_kategorie: Kategorie Akte angelegt und mit Gruppe CMS_LOCK gesperrt
'; + } +} + +// DMS-Kategorie notiz anlegen und mit CMS_LOCK sperren +if($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz='notiz' LIMIT 1")) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + INSERT INTO campus.tbl_dms_kategorie(kategorie_kurzbz,bezeichnung,beschreibung,parent_kategorie_kurzbz) VALUES('notiz','Notizen',NULL,NULL); + INSERT INTO campus.tbl_dms_kategorie_gruppe(kategorie_kurzbz,gruppe_kurzbz,insertamum,insertvon) VALUES('notiz','CMS_LOCK',now(),'checksystem'); + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_dms_kategorie '.$db->db_last_error().'
'; + else + echo ' campus.tbl_dms_kategorie: Kategorie Notiz angelegt und mit Gruppe CMS_LOCK gesperrt
'; + } +} + +// Spalte style, berechtigung und anmerkung_vorlagestudiengang fuer public.tbl_vorlagestudiengang und neues Recht basis/dokumente fuer die Dokumentenverwaltung +if(!$result = @$db->db_query("SELECT style FROM public.tbl_vorlagestudiengang")) +{ + $qry = "ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN style text; + ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN berechtigung varchar(32)[]; + ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN anmerkung_vorlagestudiengang text; + + INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('basis/dokumente','Verwaltung der Dokumentvorlagen'); + + GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_vorlagestudiengang TO vilesci; + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_vorlagestudiengang: '.$db->db_last_error().'
'; + else + echo '
public.tbl_vorlagestudiengang: Neue Spalten style, berechtigung und anmerkung_vorlagestudiengang hinzugefuegt. Neues Recht basis/dokumente angelegt'; +} + + echo '


'; $tabellen=array( @@ -3359,7 +3428,7 @@ $tabellen=array( "public.tbl_tag" => array("tag"), "public.tbl_variable" => array("name","uid","wert"), "public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype"), - "public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz"), + "public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz","style","berechtigung","anmerkung_vorlagestudiengang"), "testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "insertamum","insertvon","updateamum", "updatevon","ablauf_vorgaben_id"), "testtool.tbl_ablauf_vorgaben" => array("ablauf_vorgaben_id","studiengang_kz","sprache","sprachwahl","content_id","insertamum","insertvon","updateamum", "updatevon"), "testtool.tbl_antwort" => array("antwort_id","pruefling_id","vorschlag_id"), diff --git a/vilesci/stammdaten/dokumentvorlagen_verwaltung.php b/vilesci/stammdaten/dokumentvorlagen_verwaltung.php new file mode 100644 index 000000000..cb2f1d1fa --- /dev/null +++ b/vilesci/stammdaten/dokumentvorlagen_verwaltung.php @@ -0,0 +1,374 @@ + + */ +/** + * Dokumentvorlagen + * + * - Anlegen und Bearbeiten von Dokumentvorlagen + * + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/vorlage.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/organisationseinheit.class.php'); +require_once('../../include/studiengang.class.php'); + +if (!$db = new basis_db()) +{ + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); +} + +$user = get_uid(); +$oe_kurzbz = (isset($_REQUEST['oe_kurzbz']) ? $_REQUEST['oe_kurzbz'] : null); +$vorlage_kurzbz = (isset($_REQUEST['vorlage_kurzbz']) ? $_REQUEST['vorlage_kurzbz'] : null); +$vorlagestudiengang_id = (isset($_REQUEST['vorlagestudiengang_id']) ? $_REQUEST['vorlagestudiengang_id'] : null); +$neu = (isset($_REQUEST['neu']) ? true : false); + +$studiengang = new studiengang(); +$studiengang->load('0'); +$default_oe = $studiengang->oe_kurzbz; + + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('basis/dokumente')) +{ + die($rechte->errormsg); +} + +echo ' + + + + Dokumentvorlagen Verwaltung + + + + + + + + + +

Dokumentvorlagen Verwaltung

'; + +// Speichern einer Dokumentvorlage +if(isset($_POST['speichern'])) +{ + + if(!$rechte->isBerechtigt('basis/dokumente', $oe_kurzbz, 'sui')) + { + die($rechte->errormsg); + } + + $dokumentvorlage = new vorlage(); + + if(isset($_POST['vorlagestudiengang_id']) && $_POST['vorlagestudiengang_id']!='') + { + //Vorlage laden + if(!$dokumentvorlage->loadVorlageOE($_POST['vorlagestudiengang_id'])) + { + die($dokumentvorlage->errormsg); + } + + $dokumentvorlage->new=false; + $dokumentvorlage->vorlagestudiengang_id = $_POST['vorlagestudiengang_id']; + } + else + { + //Neue Vorlage anlegen + $dokumentvorlage->new=true; + } + + $studiengang = new studiengang(); + $studiengang->getStudiengangFromOe($_POST['oe_kurzbz']); + + if ($studiengang->studiengang_kz=='') + $studiengang_kz = 0; + else + $studiengang_kz = $studiengang->studiengang_kz; + + $dokumentvorlage->vorlage_kurzbz = $_POST['vorlage_kurzbz']; + $dokumentvorlage->studiengang_kz = $studiengang_kz; + $dokumentvorlage->version = $_POST['version']; + $dokumentvorlage->text = $_POST['content']; + $dokumentvorlage->oe_kurzbz = $_POST['oe_kurzbz']; + $dokumentvorlage->style = $_POST['style']; + $dokumentvorlage->berechtigung = $_POST['berechtigung']; + $dokumentvorlage->anmerkung_vorlagestudiengang = $_POST['anmerkung']; + + if($dokumentvorlage->saveVorlageOE()) + { + echo 'Daten wurden erfolgreich gespeichert'; + //$reihungstest_id = $reihungstest->reihungstest_id; + //$stg_kz = $reihungstest->studiengang_kz; + } + else + { + echo ''.$db->convert_html_chars($dokumentvorlage->errormsg).''; + } + $neu=false; +} + +// Speichern einer Dokumentvorlage +if(isset($_GET['delete'])) +{ + + if(!$rechte->isBerechtigt('basis/dokumente', $oe_kurzbz, 'suid')) + { + die($rechte->errormsg); + } + + if(isset($_GET['vorlagestudiengang_id']) && $_GET['vorlagestudiengang_id']!='') + { + $dokumentvorlage = new vorlage(); + if($dokumentvorlage->deleteVorlagestudiengang($_GET['vorlagestudiengang_id'])) + echo 'Vorlage wurde erfolgreich gelöscht'; + else + echo ''.$dokumentvorlage->errormsg.''; + } + else + echo 'Vorlagestudiengang_ID ist nicht gesetzt'; + + $neu=true; +} + + +echo '
'; + +//Vorlagen DropDown +$vorlage = new vorlage(); +$vorlage->getAllVorlagen('bezeichnung'); + +echo "'; + +//OE-Dropdown +$organisationseinheit = new organisationseinheit(); +$organisationseinheit->getAll(true, true); + +echo ""; +echo ""; +echo "

"; + +if($vorlagestudiengang_id=='') + $neu=true; +$vorlageOE = new vorlage(); + +if(!$neu) +{ + if(!$vorlageOE->loadVorlageOE($vorlagestudiengang_id)) + die('Vorlage existiert nicht'); +} +else +{ + $vorlageOE->vorlage_kurzbz = $vorlage_kurzbz; + $vorlageOE->oe_kurzbz = $oe_kurzbz; + $vorlageOE->version = ($vorlageOE->getMaxVersion($oe_kurzbz, $vorlage_kurzbz))+1; +} + +//Formular zum Bearbeiten der Vorlage +echo ' + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + '; + if(!$neu) + $val = 'Änderung Speichern'; + else + $val = 'Neu anlegen'; + + echo ' + + + +
Vorlage'; + + if($vorlageOE->oe_kurzbz!='') + $oe=$vorlageOE->oe_kurzbz; + elseif($oe_kurzbz!='') + $oe=$oe_kurzbz; + else + $oe=$default_oe; + //Vorlagen DropDown + $vorlage = new vorlage(); + $vorlage->getAllVorlagen('bezeichnung'); + + echo ' + +
Organisationseinheit'; + //OE-Dropdown + $organisationseinheit = new organisationseinheit(); + $organisationseinheit->getAll(true, true); + + echo " +
Version
Content (XML)
Style (XML)
Berechtigung
Anmerkung
+ + + +
+
+ +
'; + +if($vorlage_kurzbz!='' || $oe_kurzbz!='') +{ + + $vorlage_version = new vorlage(); + $vorlage_version->getAllVersions($vorlage_kurzbz, $oe_kurzbz); + $oe = new organisationseinheit(); + $vorlage = new vorlage(); + //echo 'Anzahl: '.$db->db_num_rows($vorlage_version->result).''; + + echo ' + + + + + + + + + + + '; + + foreach($vorlage_version->result as $row) + { + $oe->load($row->oe_kurzbz); + $vorlage->loadVorlage($row->vorlage_kurzbz); + $vorlage_bezeichnung = ($vorlage->bezeichnung==''?$vorlage->vorlage_kurzbz:$vorlage->bezeichnung); + echo ' + + + + + + + + + + '; + } + echo '
VorlageOrganisationseinheitStudiengangVersionAnmerkung
'.$db->convert_html_chars($vorlage_bezeichnung).''.$db->convert_html_chars($oe->organisationseinheittyp_kurzbz.' '.$oe->bezeichnung).''.$db->convert_html_chars($row->studiengang_kz).''.$db->convert_html_chars($row->version).''.$db->convert_html_chars($row->anmerkung_vorlagestudiengang).'EditDelete
'; +} + +echo ' +'; From 47113b66866434ee4496776cddd381b27ec34e71 Mon Sep 17 00:00:00 2001 From: kindlm Date: Wed, 15 Jul 2015 11:00:07 +0200 Subject: [PATCH 2/3] Neue Funktion getOEsFromVorlage --- include/vorlage.class.php | 27 +++++++++++++++++++ .../dokumentvorlagen_verwaltung.php | 5 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/include/vorlage.class.php b/include/vorlage.class.php index c2a700fbf..ad4f7a820 100644 --- a/include/vorlage.class.php +++ b/include/vorlage.class.php @@ -234,6 +234,33 @@ class vorlage extends basis_db } } + /** + * Liefert alle OEs, welche die $vorlage_kurzbz verwenden + * @param $vorlage_kurzbz Kurzbezeichnung der Vorlage + */ + public function getOEsFromVorlage($vorlage_kurzbz=null) + { + $qry ="SELECT + oe_kurzbz + FROM + public.tbl_vorlagestudiengang + WHERE + vorlage_kurzbz=".$this->db_add_param($vorlage_kurzbz); + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new vorlage(); + $obj->oe_kurzbz = $row->oe_kurzbz; + + $this->result[]= $obj; + } + } + else + return false; + } + /** * Speichert die Vorlage zu einer OE * Wenn $new auf true gesetzt ist wird ein neuer Datensatz diff --git a/vilesci/stammdaten/dokumentvorlagen_verwaltung.php b/vilesci/stammdaten/dokumentvorlagen_verwaltung.php index cb2f1d1fa..0250f659a 100644 --- a/vilesci/stammdaten/dokumentvorlagen_verwaltung.php +++ b/vilesci/stammdaten/dokumentvorlagen_verwaltung.php @@ -192,8 +192,8 @@ foreach ($vorlage->result as $row) echo ''; //OE-Dropdown -$organisationseinheit = new organisationseinheit(); -$organisationseinheit->getAll(true, true); +$organisationseinheit = new vorlage(); +$organisationseinheit->getOEsFromVorlage($vorlage_kurzbz); echo "'; $organisationseinheit = new vorlage(); $organisationseinheit->getOEsFromVorlage($vorlage_kurzbz); +if ($organisationseinheit->result=='') +{ + $organisationseinheit = new organisationseinheit(); + $organisationseinheit->getAll(); +} + echo "