This commit is contained in:
kindlm
2015-09-18 19:30:29 +02:00
8 changed files with 227 additions and 40 deletions
+19 -3
View File
@@ -48,6 +48,7 @@ require_once('../../include/lvangebot.class.php');
require_once('../../include/gruppe.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/vertrag.class.php');
$user = get_uid();
$db = new basis_db();
@@ -703,14 +704,29 @@ if(!$error)
else
{
$leg = new lehreinheitmitarbeiter();
if($leg->delete($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid']))
if($leg->load($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid']))
{
$return = true;
// Wenn ein Vertrag dazu angelegt ist, dann diesen mitloeschen
if($leg->vertrag_id!='')
{
$vertrag = new vertrag();
$vertrag->delete($leg->vertrag_id);
}
if($leg->delete($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid']))
{
$return = true;
}
else
{
$return = false;
$errormsg = $leg->errormsg;
}
}
else
{
$return = false;
$errormsg = $leg->errormsg;
$errormsg='Fehlgeschlagen:'.$leg->errormsg;
}
}
}
+42
View File
@@ -40,6 +40,7 @@ require_once('../../include/projektbetreuer.class.php');
require_once('../../include/vertrag.class.php');
require_once('../../include/lehreinheitmitarbeiter.class.php');
require_once('../../include/wawi_konto.class.php');
require_once('../../include/addon.class.php');
$user = get_uid();
@@ -665,6 +666,47 @@ if(!$error)
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='vertragdelete')
{
if(!$rechte->isBerechtigt('vertrag/mitarbeiter',null,'suid'))
{
$return = false;
$errormsg = 'Sie haben keine Berechtigung für diesen Vorgang';
}
else
{
$vertrag_id = filter_input(INPUT_POST, "vertrag_id");
$vertrag = new vertrag();
// Wenn das Abrechnungsaddon geladen ist dann pruefen ob dieser Vertrag bereits abgerechnet wurde
$addons = new addon();
if(in_array('abrechnung',$addons->aktive_addons))
{
require_once('../../addons/abrechnung/include/abrechnung.class.php');
$abrechnung = new abrechnung();
if($abrechnung->isTeilabgerechnet($vertrag_id))
{
$return =false;
$error=true;
$errormsg='Vertrag kann nicht gelöscht werden da er bereits abgerechnet wurde.';
}
}
if(!$error)
{
if($vertrag->delete($vertrag_id))
{
$return=true;
}
else
{
$return = false;
$errormsg = 'Failed'.$vertrag->errormsg;
}
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='vertragsdetaildelete')
{
if(!$rechte->isBerechtigt('vertrag/mitarbeiter',null,'suid'))
+59 -21
View File
@@ -24,7 +24,7 @@ require_once('../../include/functions.inc.php');
$user = get_uid();
if(false): ?> <script type="text/javascript"><?php endif; ?>
var MitarbeiterVertragLoadedPerson=null
// ****************** FUNKTIONEN ************************** //
@@ -47,11 +47,11 @@ function MitarbeiterVertragLoad(person_id)
var filter;
for (var i = 0; i < e.length; i++)
{
if (e[i].getAttribute("checked"))
if (e[i].getAttribute("checked"))
filter=e[i].value
}
// *** Vertrag ***
// *** Vertrag ***
var treevertrag = document.getElementById('mitarbeiter-vertrag-tree');
url='<?php echo APP_ROOT;?>rdf/vertrag.rdf.php?person_id='+person_id+"&filter="+filter+"&"+gettimestamp();
@@ -106,12 +106,12 @@ function MitarbeiterVertragSelectVertrag()
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
// *** Zugeordnete Vertragselemente laden
vertragzugeordnettree = document.getElementById('mitarbeiter-vertrag-tree-zugeordnet');
@@ -184,7 +184,7 @@ function MitarbeiterVertragGenerateVertrag(windowdocument)
alert('Bitte geben Sie einen Betrag ein');
return false;
}
if(vertragstyp_kurzbz == 'fahrtkosten')
betrag = betrag * fahrten;
@@ -254,10 +254,10 @@ function MitarbeiterVertragStatusAdd(status)
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
@@ -282,7 +282,7 @@ function MitarbeiterVertragStatusAdd(status)
{
MitarbeiterVertragSelectVertrag();
return true;
}
}
}
/**
@@ -292,11 +292,11 @@ function MitarbeiterVertragEdit()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
window.open('<?php echo APP_ROOT?>content/mitarbeiter/mitarbeitervertragneudialog.xul.php?person_id='+MitarbeiterVertragLoadedPerson+'&vertrag_id='+vertrag_id,"Vertrag","status=no, width=500, height=400, centerscreen, resizable");
@@ -306,10 +306,10 @@ function MitarbeiterVertragDetailDelete()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
@@ -362,18 +362,18 @@ function MitarbeiterVertragSelectVertragsstatus()
var tree=document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id";
var col_status = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
vertragstatustree = document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
url='<?php echo APP_ROOT;?>rdf/vertragsstatus.rdf.php?vertrag_id='+vertrag_id+'&vertragsstatus_kurzbz='+vertrag_status+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/vertragsstatus/"+vertrag_status +"/"+ vertrag_id);
@@ -384,7 +384,7 @@ function MitarbeiterVertragSelectVertragsstatus()
// Uhrzeit wegschneiden
vertragsdatum = vertragsdatum.substring(0,10);
document.getElementById('mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum').value=vertragsdatum;
document.getElementById('mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum').disabled=false;
}
@@ -400,7 +400,7 @@ function MitarbeiterVertragVertragsstatusUpdate()
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
var vertrag_datum = document.getElementById("mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum").iso;
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
@@ -440,7 +440,7 @@ function MitarbeiterVertragStatusDelete()
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
@@ -489,3 +489,41 @@ function MitarbeiterVertragVertragsstatusReload(vertrag_id)
return true;
}
function MitarbeiterVertragDelete()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
if(confirm('Wollen Sie diesen Eintrag wirklich löschen'))
{
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'vertragdelete');
req.add('vertrag_id',vertrag_id);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
MitarbeiterVertragLoad(MitarbeiterVertragLoadedPerson);
return true;
}
}
}
@@ -52,6 +52,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</menupopup>
<menupopup id="mitarbeiter-vertrag-tree-popup">
<menuitem label="Bearbeiten" oncommand="MitarbeiterVertragEdit()" />
<menuitem label="Entfernen" oncommand="MitarbeiterVertragDelete()" />
</menupopup>
<menupopup id="mitabeiter-vertrag-tree-detail-popup">
<menuitem label="Entfernen" oncommand="MitarbeiterVertragDetailDelete()" />
@@ -62,7 +63,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<hbox>
<toolbox flex="1">
<toolbar>
<toolbarbutton label="Filter " id="mitarbeiter-vertrag-filter" type="menu">
<toolbarbutton label="Filter " id="mitarbeiter-vertrag-filter" type="menu">
<menupopup id="mitarbeiter-vertrag-menupopup-filter">
<menuitem type="radio" value="alle" label="Alle Verträge anzeigen" oncommand="MitarbeiterVertragLoad()"/>
<menuitem type="radio" value="offen" label="Offene Verträge anzeigen" checked="true" oncommand="MitarbeiterVertragLoad()"/>
@@ -95,7 +96,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecol id="mitarbeiter-vertrag-tree-vertragstyp" label="Vertragstyp" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragstyp_bezeichnung" />
<splitter class="tree-splitter"/>
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-vertrag-tree-status" label="Status" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/vertrag/rdf#status" />
@@ -117,7 +118,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
sort="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragsdatum_iso" />
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
@@ -126,10 +127,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#betrag"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragstyp_bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#status"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragsdatum"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragsdatum"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragstyp_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertrag_id"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragsdatum_iso"/>
<treecell label="rdf:http://www.technikum-wien.at/vertrag/rdf#vertragsdatum_iso"/>
</treerow>
</treeitem>
</treechildren>
@@ -139,7 +140,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</vbox>
<hbox flex="2" id="mitarbeiter-vertrag-vbox-vertragsdetails">
<vbox flex="2">
<description>Vertragsdetails</description>
<description>Vertragsdetails</description>
<tree id="mitarbeiter-vertrag-tree-zugeordnet" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/vertragdetails"
enableColumnDrag="true"
@@ -163,19 +164,19 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-vertrag-tree-zugeordnet-studiensemester_kurzbz" label="Studiensemester" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#studiensemester_kurzbz" />
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#studiensemester_kurzbz" />
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-vertrag-tree-zugeordnet-pruefung_id" label="PruefungID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#pruefung_id" />
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#pruefung_id" />
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-vertrag-tree-zugeordnet-mitarbeiter_uid" label="mitarbeiter_uid" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#mitarbeiter_uid" />
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#mitarbeiter_uid" />
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-vertrag-tree-zugeordnet-projektarbeit_id" label="ProjektarbeitID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#projektarbeit_id" />
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#projektarbeit_id" />
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-vertrag-tree-zugeordnet-lehreinheit_id" label="LehreinheitID" flex="2" hidden="true"
class="sortDirectionIndicator"
@@ -183,7 +184,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-vertrag-tree-zugeordnet-betreuerart_kurzbz" label="BetreuerartKurzbz" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#betreuerart_kurzbz" />
sort="rdf:http://www.technikum-wien.at/vertragdetails/rdf#betreuerart_kurzbz" />
</treecols>
<template>
@@ -207,7 +208,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</vbox>
<vbox flex="2">
<vbox flex="1">
<description>Vertragsstatus</description>
<description>Vertragsstatus</description>
<tree id="mitarbeiter-vertrag-tree-vertragsstatus" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/vertragsstatus"
enableColumnDrag="true"
+17 -3
View File
@@ -65,6 +65,7 @@ require_once('../../include/notenschluessel.class.php');
require_once('../../include/anrechnung.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/anwesenheit.class.php');
require_once('../../include/benutzerfunktion.class.php');
$user = get_uid();
$db = new basis_db();
@@ -2596,8 +2597,21 @@ if(!$error)
$pruefung->student_uid = $student_uid;
$pruefung->lehreinheit_id = $lehreinheit_id;
$pruefung->datum = date("Y-m-d");
if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT)
$stsem_obj = new studiensemester();
$stsem_obj->load($studiensemester_kurzbz);
// In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist
$benutzerfunktion = new benutzerfunktion();
$benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende);
$anwesenheitsbefreit=false;
if(count($benutzerfunktion->result)>0)
$anwesenheitsbefreit=true;
// Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein
// Pruefungsantritt abgezogen
if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit)
{
// 1. Termin mit "nicht beurteilt" erstellen
$pruefung->pruefungstyp_kurzbz = "Termin1";
@@ -2886,7 +2900,7 @@ if(!$error)
{
$errormsg .= "\n".$zeugnisnote->errormsg;
}
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $errormsg == '' && $zeugnisnote->new == true)
{
$anwesenheit = new anwesenheit();
+1
View File
@@ -324,6 +324,7 @@ class anwesenheit extends basis_db
JOIN campus.vw_student_lehrveranstaltung USING(uid)
WHERE
uid='.$this->db_add_param($student_uid).'
AND vw_student_lehrveranstaltung.lehreinheit_id=tbl_anwesenheit.lehreinheit_id
AND lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).'
AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'
AND anwesend=' . $this->db_add_param($anwesend, FHC_BOOLEAN).'
+1
View File
@@ -92,6 +92,7 @@ class lehreinheitmitarbeiter extends basis_db
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
$this->vertrag_id = $row->vertrag_id;
$this->new=false;
return true;
}
+75 -1
View File
@@ -939,7 +939,7 @@ class vertrag extends basis_db
AND vertragsdatum<=".$this->db_add_param($datum)."
AND vertragsdatum>=".$this->db_add_param($prevstsemende)."
AND tbl_benutzer.uid=".$this->db_add_param($mitarbeiter_uid);
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -965,5 +965,79 @@ class vertrag extends basis_db
return false;
}
}
/**
* Loescht einen Vertrag und seine Verbindungen
* @param $vertrag_id ID des Vertrags
*/
public function delete($vertrag_id)
{
$qry = "UPDATE lehre.tbl_lehreinheitmitarbeiter SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";
UPDATE lehre.tbl_projektbetreuer SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";
DELETE FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";
DELETE FROM lehre.tbl_vertrag WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";";
if($this->db_query($qry))
return true;
else
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
}
/**
* Liefert alle Vertraege bei denen die Lehraufträge nicht zur Person passen.
* (zB Aufgrund Lektorenaenderung)
* @param $studiensemester_kurzbz
* @return boolean true wenn ok, false im Fehlerfall
*/
public function getFalscheVertraege($studiensemester_kurzbz)
{
$qry = "SELECT
tbl_vertrag.*
FROM
lehre.tbl_vertrag
JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT IN(SELECT uid FROM public.tbl_benutzer WHERE person_id=tbl_vertrag.person_id)
UNION
SELECT
tbl_vertrag.*
FROM
lehre.tbl_vertrag
JOIN lehre.tbl_projektbetreuer USING(vertrag_id)
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND tbl_projektbetreuer.person_id!=tbl_vertrag.person_id";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
$obj->vertrag_id = $row->vertrag_id;
$obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
$obj->betrag = $row->betrag;
$obj->person_id = $row->person_id;
$obj->anmerkung = $row->anmerkung;
$obj->vertragsdatum = $row->vertragsdatum;
$this->result[]=$obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>