LV-Teile kopieren

This commit is contained in:
Manfred
2022-04-15 17:50:15 +02:00
parent cdb403c38a
commit 9b6b7c6c7f
3 changed files with 186 additions and 8 deletions
@@ -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') &&
@@ -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);
}
}
}
@@ -54,13 +54,21 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<vbox id="LehrveranstaltungEditor" flex="1" uid="" stg_kz="">
<popupset>
<menupopup id="lehrveranstaltung-tree-popup">
<menu id="lehrveranstaltung-tree-popup-lehreinheit-kopieren" label="LV-Teil kopieren">
<menupopup id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-popup">
<menuitem label="Alles" oncommand="LeCopy('alle');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-alle" hidden="false"/>
<menuitem label="Nur LV-Teil" oncommand="LeCopy('lvteil');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-lvteil" hidden="false"/>
<menuitem label="Nur mit Gruppen" oncommand="LeCopy('gruppen');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-gruppen" hidden="false"/>
<menuitem label="Nur mit Lehrenden" oncommand="LeCopy('lektoren');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-lektoren" hidden="false"/>
</menupopup>
</menu>
<menuitem label="Entfernen" oncommand="LeDelete();" id="lehrveranstaltung-tree-popup-entf" disabled="false"/>
</menupopup>
</popupset>
<toolbox>
<toolbar id="lehrveranstaltung-nav-toolbar">
<toolbarbutton id="lehrveranstaltung-toolbar-neu" label="Neuer LV-Teil" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neue Lehreinheit anlegen" />
<toolbarbutton id="lehrveranstaltung-toolbar-del" label="Loeschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Lehreinheiten löschen"/>
<toolbarbutton id="lehrveranstaltung-toolbar-neu" label="Neuer LV-Teil" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neuen LV-Teil anlegen" />
<toolbarbutton id="lehrveranstaltung-toolbar-del" label="Loeschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="LV-Teil löschen"/>
<toolbarbutton id="lehrveranstaltung-toolbar-refresh" label="Aktualisieren" oncommand="LvTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<toolbarbutton id="lehrveranstaltung-toolbar-lehrauftrag" label="Lehrauftrag" oncommand="LvCreateLehrauftrag()" disabled="false" image="../skin/images/person.gif" tooltiptext="Lehrauftrag ausdrucken" hidden="true"/>
@@ -82,7 +90,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<textbox id="lehrveranstaltung-toolbar-textbox-suche" control="lehrveranstaltung-toolbar-button-search" onkeypress="LehrveranstaltungSearchFieldKeyPress(event)" style="width: 300px" />
<button id="lehrveranstaltung-toolbar-button-search" oncommand="LehrveranstaltungSuche()" label="Suchen"/>
<spacer flex="1" />
<toolbarbutton id="lehrveranstaltung-toolbar-opensubtrees" label="Aufklappen" tooltiptext="Klappt die Untermenüs auf - mehrmaliges klicken möglich um weiter aufzuklappen" oncommand="LvTreeOpenAllSubtrees()" disabled="false" image="../skin/images/tree-diagramm.png" />
<toolbarbutton id="lehrveranstaltung-toolbar-opensubtrees" label="Aufklappen" tooltiptext="Klappt die Untermenüs auf - mehrmaliges klicken möglich um weiter aufzuklappen" oncommand="LvTreeOpenAllSubtrees('aus')" disabled="false" image="../skin/images/tree-diagramm.png" />
<toolbarbutton id="lehrveranstaltung-toolbar-opensubtrees" label="Alles Einklappen" tooltiptext="Klappt alle Untermenüs ein" oncommand="LvTreeOpenAllSubtrees('ein')" disabled="false" image="../skin/images/modul.png" />
</toolbar>
</toolbox>