From f939535444392658f5fcf9a2c6b90e80e1a01bb5 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 2 Oct 2019 17:21:10 +0200 Subject: [PATCH] Adapted JS method LeMitarbeiterAuswahl() to perform Vertragsdetails-GUI --- .../lvplanung/lehrveranstaltungoverlay.js.php | 127 ++++++++++++++++-- 1 file changed, 115 insertions(+), 12 deletions(-) diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index c131cbc36..9a4ac8715 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -1222,7 +1222,7 @@ function LeMitarbeiterDisableFields(val) // **** // * Bei Auswaehlen eines Mitarbeiters werden zu zugehoerigen -// * Details geladen und angezeigt +// * Details sowie ggf. die Vertragsdetails geladen und angezeigt // **** function LeMitarbeiterAuswahl() { @@ -1308,6 +1308,7 @@ function LeMitarbeiterAuswahl() faktor = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#faktor" )); anmerkung = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#anmerkung" )); bismelden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#bismelden" )); + vertrag_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#vertrag_id" )); //Felder aktivieren LeMitarbeiterDisableFields(false); @@ -1328,7 +1329,107 @@ function LeMitarbeiterAuswahl() else document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; - LeMitarbeiterGesamtkosten(); + var gesamtkosten = LeMitarbeiterGesamtkosten(); + + // Prüfe ob Vertragsdetails angezeigt werden + var vertragsdetails_anzeigen = ; + + // Wenn Vertragsdetails angezeigt werden + if (vertragsdetails_anzeigen) { + + // Reset attributes + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstatus').setAttribute("style", "font-weight: normal"); + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-vertrag-stornieren').setAttribute("tooltiptext", + "Stornieren erst ab Status 'Angenommen' möglich.") + + // Wenn es einen Vertrag zum Lehrauftrag gibt + if (vertrag_id != null && vertrag_id != '') + { + // Url zum RDF + var url = "rdf/vertrag.rdf.php?"+gettimestamp(); + // + ////RDF laden + var req = new phpRequest(url, '', ''); + req.add('vertrag_id', vertrag_id); + var response = req.execute(); + + // Trick 17 (sonst gibt's ein Permission denied) + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + // XML in Datasource parsen + var dsource = parseRDFString(response, 'http://www.technikum-wien.at/vertrag/liste'); + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. + getService(Components.interfaces.nsIRDFService); + var subject = rdfService.GetResource("http://www.technikum-wien.at/vertrag/" + vertrag_id); + var predicateNS = "http://www.technikum-wien.at/vertrag/rdf"; + + //Daten holen + betrag = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betrag" )); + vertragsdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsdatum" )); + vertragsstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsstunden" )); + vertragsstunden_studiensemester_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsstunden_studiensemester_kurzbz" )); + + + // Letzten (aktuellsten) Vertragsstatus laden + var url_letzterStatus = 'content/lvplanung/lehrveranstaltungDBDML.php'; + var req_letzterStatus = new phpRequest(url_letzterStatus,'',''); + + req_letzterStatus.add('type', 'getLastVertragsstatus'); + req_letzterStatus.add('vertrag_id', vertrag_id); + + + var response_letzterStatus = req_letzterStatus.executePOST(); + + var val_letzterStatus = new ParseReturnValue(response_letzterStatus); + + if (!val_letzterStatus.dbdml_return) + { + if(val_letzterStatus.dbdml_errormsg=='') + alert(response_letzterStatus); + else + alert(val_letzterStatus.dbdml_errormsg); + } + else + { + var letzterStatus = val_letzterStatus.dbdml_data; + } + + // Vertragsstatus setzen + // * wenn Gesamtkosten im Lehrauftrag nicht gleich Betrag im Vertrag ist: Status 'geändert' hardcoden + if(gesamtkosten != parseFloat(betrag)) + { + vertragsstatus = 'Geändert'; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstatus').setAttribute("style", "font-weight: bold") + } + // * ansonsten Vertragsstatus zeigen + else + { + vertragsstatus = letzterStatus; + } + + // Uppercase status + vertragsstatus = vertragsstatus.charAt(0).toUpperCase() + vertragsstatus.slice(1) + + // Stornierung + // * nur wenn Vertragsstatus 'akzeptiert' ist zulassen und tooltip ausblenden + if(letzterStatus == 'akzeptiert') + { + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-vertrag-stornieren').disabled = false; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-vertrag-stornieren').setAttribute("tooltiptext", ""); + } + } + // Wenn kein Vertrag vorhanden + else { + vertragsstatus = 'Noch kein Vertrag'; + vertragsstunden = '-'; + vertragsstunden_studiensemester_kurzbz = '-'; + } + + // Felder befüllen + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstatus').value = vertragsstatus; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstunden').value = vertragsstunden; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstunden_studiensemester_kurzbz').value = vertragsstunden_studiensemester_kurzbz; + } } // **** @@ -2076,22 +2177,22 @@ function LehrveranstaltungNotenAuswahl() var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz"; var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col); - //Daten holen - var url = 'rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp(); - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. - getService(Components.interfaces.nsIRDFService); + 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/zeugnisnote/" + lehrveranstaltung_id+'/'+student_uid+'/'+studiensemester_kurzbz); + var subject = rdfService.GetResource("http://www.technikum-wien.at/zeugnisnote/" + lehrveranstaltung_id+'/'+student_uid+'/'+studiensemester_kurzbz); - var predicateNS = "http://www.technikum-wien.at/zeugnisnote/rdf"; + var predicateNS = "http://www.technikum-wien.at/zeugnisnote/rdf"; + + //Daten holen + + note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" )); + punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" )); //Daten holen - - note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" )); - punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" )); + var url = 'rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp(); if(note=='') note='9'; @@ -2375,6 +2476,8 @@ function LeMitarbeiterGesamtkosten() document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-gesamtkosten').setAttribute("style",'color: red'); else document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-gesamtkosten').setAttribute("style",'color: black'); + + return gesamtkosten; } /*