diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php
index 438844071..915efc817 100644
--- a/content/lvplanung/lehrveranstaltungDBDML.php
+++ b/content/lvplanung/lehrveranstaltungDBDML.php
@@ -1388,6 +1388,118 @@ if(!$error)
}
}
}
+ else if ($_POST['do']=='copy')
+ {
+ if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'sui')
+ && !$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'sui')
+ && !$rechte->isBerechtigtMultipleOe('lv-plan', $lva->getAllOe(), 'sui'))
+ {
+ $error = true;
+ $return = false;
+ $errormsg = 'Keine Berechtigung';
+ }
+
+ if(!$leDAO->load($_POST['lehreinheit_id']))
+ {
+ $return = false;
+ $error = true;
+ $errormsg = 'Fehler beim Laden des LV-Teils';
+ }
+
+ if(!$error)
+ {
+ // Neue Lehreinheit anlegen
+ $leDAO->new = true;
+ $leDAO->unr = '';
+ $leDAO->updateamum = date('Y-m-d H:i:s');
+ $leDAO->updatevon = $user;
+ $leDAO->insertamum = date('Y-m-d H:i:s');
+ $leDAO->insertvon = $user;
+
+ if ($leDAO->save())
+ {
+ // Wenn Art "alle" oder "gruppen" ist, werden auch alle Lehreinheitgruppe kopiert
+ if(isset($_POST['art']) && ($_POST['art'] == 'alle' || $_POST['art'] == 'gruppen'))
+ {
+ $legruppe = new lehreinheitgruppe();
+ $legruppe->getLehreinheitgruppe($_POST['lehreinheit_id']);
+
+ if (count($legruppe->lehreinheitgruppe) > 0)
+ {
+ foreach ($legruppe->lehreinheitgruppe as $row)
+ {
+ $legruppe_new = new lehreinheitgruppe();
+ $legruppe_new->lehreinheit_id = $leDAO->lehreinheit_id;
+ $legruppe_new->studiengang_kz = $row->studiengang_kz;
+ $legruppe_new->semester = $row->semester;
+ $legruppe_new->verband = $row->verband;
+ $legruppe_new->gruppe = $row->gruppe;
+ $legruppe_new->gruppe_kurzbz = $row->gruppe_kurzbz;
+ $legruppe_new->updateamum = date('Y-m-d H:i:s');
+ $legruppe_new->updatevon = $user;
+ $legruppe_new->insertamum = date('Y-m-d H:i:s');
+ $legruppe_new->insertvon = $user;
+
+ if (!$legruppe_new->save(true))
+ {
+ $errormsg = 'Fehler beim Kopieren der Gruppe: '.$legruppe_new->errormsg;
+ $return = false;
+ }
+ else
+ {
+ $return = true;
+ }
+ }
+ }
+ }
+ // Wenn Art "alle" oder "lektoren" ist, werden auch alle Lehreinheitmitarbeiter kopiert
+ if(isset($_POST['art']) && ($_POST['art'] == 'alle' || $_POST['art'] == 'lektoren'))
+ {
+ $lema = new lehreinheitmitarbeiter();
+ $lema->getLehreinheitmitarbeiter($_POST['lehreinheit_id']);
+
+ if (count($lema->lehreinheitmitarbeiter) > 0)
+ {
+ foreach ($lema->lehreinheitmitarbeiter as $row)
+ {
+ $lema_new = new lehreinheitmitarbeiter();
+ $lema_new->lehreinheit_id = $leDAO->lehreinheit_id;
+ $lema_new->mitarbeiter_uid = $row->mitarbeiter_uid;
+ $lema_new->lehrfunktion_kurzbz = $row->lehrfunktion_kurzbz;
+ $lema_new->semesterstunden = $row->semesterstunden;
+ $lema_new->planstunden = $row->planstunden;
+ $lema_new->stundensatz = $row->stundensatz;
+ $lema_new->faktor = $row->faktor;
+ $lema_new->anmerkung = $row->anmerkung;
+ $lema_new->bismelden = $row->bismelden;
+ $lema_new->updateamum = date('Y-m-d H:i:s');
+ $lema_new->updatevon = $user;
+ $lema_new->insertamum = date('Y-m-d H:i:s');
+ $lema_new->insertvon = $user;
+ $lema_new->ext_id = $row->ext_id;
+ $lema_new->vertrag_id = $row->vertrag_id;
+
+ if (!$lema_new->save(true))
+ {
+ $errormsg = 'Fehler beim Kopieren der MitarbeiterInnen: '.$lema_new->errormsg;
+ $return = false;
+ }
+ else
+ {
+ $return = true;
+ }
+ }
+ }
+ }
+ $return = true;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = $leDAO->errormsg;
+ }
+ }
+ }
else if ($_POST['do']=='delete') //Lehreinheit loeschen
{
if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php
index dfb1bf4ec..436c48eb8 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.js.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.js.php
@@ -521,7 +521,7 @@ function LeDelete()
}
//Abfrage ob wirklich geloescht werden soll
- if (confirm('Wollen Sie diese Lehreinheit wirklich loeschen?'))
+ if (confirm('Wollen Sie diesen LV-Teil wirklich loeschen?'))
{
//Script zum loeschen der Lehreinheit aufrufen
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
@@ -541,6 +541,52 @@ function LeDelete()
}
}
+// ****
+// * LV-Teile kopieren
+// ****
+function LeCopy(art)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('lehrveranstaltung-tree');
+
+ if (tree.currentIndex==-1)
+ return;
+
+ try
+ {
+ //Ausgewaehlte LV-Teile holen
+ var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id";
+ var lehreinheit_id = tree.view.getCellText(tree.currentIndex,col);
+ if(lehreinheit_id == '')
+ {
+ alert('Lehreinheit_id konnte nicht ermittelt werden');
+ return false;
+ }
+ }
+ catch(e)
+ {
+ alert(e);
+ return false;
+ }
+
+ //Script zum kopieren des LV-Teils aufrufen
+ var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
+
+ req.add('type','lehreinheit');
+ req.add('do','copy');
+ req.add('art',art);
+ req.add('lehreinheit_id',lehreinheit_id);
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response)
+ if(!val.dbdml_return)
+ alert(val.dbdml_errormsg)
+
+ LvTreeRefresh();
+ LeDetailReset();
+ LeDetailDisableFields(true);
+}
+
// ****
// * Leert alle Eingabe- und Auswahlfelder
// ****
@@ -2673,7 +2719,7 @@ function LeMitarbeiterGesamtkosten()
/*
* Oeffnet alle Subtrees
*/
-function LvTreeOpenAllSubtrees()
+function LvTreeOpenAllSubtrees(art)
{
var tree=document.getElementById('lehrveranstaltung-tree');
@@ -2682,10 +2728,21 @@ function LvTreeOpenAllSubtrees()
else
return false;
- for(var i=items-1;i>=0;i--)
+ if (art == 'aus')
{
- if(!tree.view.isContainerOpen(i))
- tree.view.toggleOpenState(i);
+ for(var i=items-1;i>=0;i--)
+ {
+ if(!tree.view.isContainerOpen(i))
+ tree.view.toggleOpenState(i);
+ }
+ }
+ else if (art == 'ein')
+ {
+ for(var i=items-1;i>=0;i--)
+ {
+ if(tree.view.isContainerOpen(i))
+ tree.view.toggleOpenState(i);
+ }
}
}
diff --git a/content/lvplanung/lehrveranstaltungoverlay.xul.php b/content/lvplanung/lehrveranstaltungoverlay.xul.php
index f2cc27b2d..4fde1fcc3 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.xul.php
@@ -54,13 +54,21 @@ echo '
-
-
+
+
@@ -82,7 +90,8 @@ echo '
-
+
+