diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php
index fd4486fed..6a2141a76 100644
--- a/cis/private/tools/zeitaufzeichnung.php
+++ b/cis/private/tools/zeitaufzeichnung.php
@@ -322,7 +322,7 @@ if($result_projekt = pg_query($conn, $qry_projekt))
echo "
Ende | ";
echo "Dauer | ";
echo "Beschreibung | Stg | ";
- echo "Fachbereich | Aktion | ";
+ echo "FB | Aktion | ";
echo " \n";
if(isset($_GET['filter']))
diff --git a/content/ToDo_FASo.html b/content/ToDo_FASo.html
index c6f48e9dc..fd14ba834 100644
--- a/content/ToDo_FASo.html
+++ b/content/ToDo_FASo.html
@@ -419,6 +419,13 @@ Studenten
Erledigte Anforderungen
+ - AccountInfoBlätter können nur noch von den eigenen
+Studenten erstellt werden. AccountInfoBlätter für Mitarbeiter
+können nun nur mehr erstellt werden wenn Schreibrechte auf
+Mitarbeiterdaten gesetzt sind.
+04.12.2007 oesi
+
+
- die Pflichtfelder beim Personenimport wurden jetzt mit * markiert.
03.12.2007 oesi
diff --git a/content/pdfExport.php b/content/pdfExport.php
index 0daf4a632..2662801f7 100644
--- a/content/pdfExport.php
+++ b/content/pdfExport.php
@@ -95,6 +95,52 @@ if(isset($_GET['typ']))
if(isset($_GET['all']))
$params.='&all='.$_GET['all'];
+if($xsl=='AccountInfo')
+{
+ $isberechtigt = false;
+ $rechte = new benutzerberechtigung($conn);
+ $rechte->getBerechtigungen($user);
+
+ $uids = explode(';',$_GET['uid']);
+ foreach ($uids as $uid)
+ {
+ //Berechtigung fuer das Drucken des Accountinfoblattes pruefen
+ $qry = "SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".$uid."'";
+ if($result_ma = pg_query($conn, $qry))
+ {
+ if(pg_num_rows($result_ma)==1)
+ {
+ //Mitarbeiterrechte erforderlich
+ if($rechte->isBerechtigt('admin', 0, 'suid') || $rechte->isBerechtigt('mitarbeiter', 0, 'suid'))
+ {
+ $isberechtigt=true;
+ }
+ }
+ }
+
+ $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE student_uid='".$uid."'";
+ if($result_std = pg_query($conn, $qry))
+ {
+ if(pg_num_rows($result_std)==1)
+ {
+ $row_std = pg_fetch_object($result_std);
+ //Mitarbeiterrechte erforderlich
+ if($rechte->isBerechtigt('admin', $row_std->studiengang_kz, 'suid') ||
+ $rechte->isBerechtigt('admin', 0, 'suid') ||
+ $rechte->isBerechtigt('assistenz', $row_std->studiengang_kz, 'suid'))
+ {
+ $isberechtigt=true;
+ }
+ }
+ }
+ }
+
+ if(!$isberechtigt)
+ {
+ echo 'Sie haben keine Berechtigung um dieses AccountInfoBlatt zu drucken';
+ exit;
+ }
+}
//Berechtigung pruefen
$rechte = new benutzerberechtigung($conn);
diff --git a/content/tempus.js.php b/content/tempus.js.php
index c30681e03..0eb03d7d9 100644
--- a/content/tempus.js.php
+++ b/content/tempus.js.php
@@ -5,35 +5,27 @@ var menuUndoDatasource=0;
// ----------------------------------------------------------
// ------- CLASS Progressmeter ------------------------------
-function Progressmeter()
+function Progressmeter(progress_id)
{
- var id;
+ var id=progress_id;
+ this.StopPM=StopPM;
this.StartPM=StartPM;
- //var m_data = 5;
- //var m_text = "Hello World";
- //this.SetText = SetText;
- //this.ShowData = DisplayData;
- //this.ShowText = DisplayText;
-
- Progressmeter.prototype.construct = function(id)
- {
- this.id=id;
- };
-
+
function StartPM()
{
// Progressmeter starten.
- document.getElementById(this.id).setAttribute('mode','undetermined');
+ document.getElementById(id).setAttribute('mode','undetermined');
}
- //function SetData( myVal )
- //{
- // m_data = myVal;
- //}
+ function StopPM()
+ {
+ // Progressmeter starten.
+ document.getElementById(id).setAttribute('mode','determined');
+ }
}
// ------ EndOf CLASS Progressmeter ------------------------------
-//var globalProgressmeter=new Progressmeter('statusbar-progressmeter');
+var globalProgressmeter=new Progressmeter('statusbar-progressmeter');
//globalProgressmeter.StartPM();
function closeWindow()
diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index 92f9a32f6..13676177d 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -310,7 +310,7 @@ class mitarbeiter extends benutzer
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
- $l->anmerkungen=$row->anmerkungen;
+ $l->anmerkung=$row->anmerkung;
$l->aktiv=$row->aktiv=='t'?true:false;
$l->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
@@ -319,7 +319,7 @@ class mitarbeiter extends benutzer
$l->personalnummer=$row->personalnummer;
$l->kurzbz=$row->kurzbz;
$l->lektor=$row->lektor=='t'?true:false;
- $l->bismelden=$row->bismelden=='t'?true:false;
+ //$l->bismelden=$row->bismelden=='t'?true:false;
$l->fixangestellt=$row->fixangestellt=='t'?true:false;
$l->standort_kurzbz = $row->standort_kurzbz;
$l->telefonklappe=$row->telefonklappe;
@@ -389,9 +389,9 @@ class mitarbeiter extends benutzer
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
- $l->anmerkungen=$row->anmerkungen;
+ $l->anmerkung=$row->anmerkung;
$l->aktiv=$row->aktiv=='t'?true:false;
- $l->bismelden=$row->bismelden=='t'?true:false;
+ //$l->bismelden=$row->bismelden=='t'?true:false;
$l->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
$l->updatevon=$row->updatevon;
@@ -439,7 +439,7 @@ class mitarbeiter extends benutzer
//$l->gebort=$row->gebort;
//$l->gebzeit=$row->gebzeit;
//$l->foto=$row->foto;
- //$l->anmerkungen=$row->anmerkungen;
+ //$l->anmerkung=$row->anmerkung;
//$l->aktiv=$row->aktiv=='t'?true:false;
//$l->homepage=$row->homepage;
//$l->updateamum=$row->updateamum;
@@ -581,7 +581,7 @@ class mitarbeiter extends benutzer
$obj->gebdatum = $row->gebdatum;
$obj->gebort = $row->gebort;
$obj->gebzeit = $row->gebzeit;
- $obj->anmerkungen = $row->anmerkung;
+ $obj->anmerkung = $row->anmerkung;
$obj->homepage = $row->homepage;
$obj->svnr = $row->svnr;
$obj->ersatzkennzeichen = $row->ersatzkennzeichen;
@@ -709,7 +709,7 @@ class mitarbeiter extends benutzer
$obj->gebdatum = $row->gebdatum;
$obj->gebort = $row->gebort;
$obj->gebzeit = $row->gebzeit;
- $obj->anmerkungen = $row->anmerkung;
+ $obj->anmerkung = $row->anmerkung;
$obj->homepage = $row->homepage;
$obj->svnr = $row->svnr;
$obj->ersatzkennzeichen = $row->ersatzkennzeichen;
diff --git a/include/zeugnisnote.class.php b/include/zeugnisnote.class.php
index 4edbce671..0b21b98e0 100644
--- a/include/zeugnisnote.class.php
+++ b/include/zeugnisnote.class.php
@@ -225,21 +225,15 @@ class zeugnisnote
'AND studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).';';
}
- if(pg_send_query($this->conn, $qry))
- //if(pg_query($this->conn, $qry))
+ //if(pg_send_query($this->conn, $qry))
+ if(pg_query($this->conn, $qry))
{
- if ($result=pg_get_result($this->conn))
- return true;
- else
- {
- $this->errormsg='Fehler beim Speichern der Zeugnisnote:'.pg_result_error();
- return false;
- }
+ return true;
}
else
{
//echo $qry;
- $this->errormsg='Fehler beim senden der BD-Abfrage (Class: zeugnisnote->save())';
+ $this->errormsg='Fehler beim Speichern der Zeugnisnote';
return false;
}
}
diff --git a/system/sync/stp/sync_stp_vilesci_lehrveranstaltung.php b/system/sync/stp/sync_stp_vilesci_lehrveranstaltung.php
index 4f410df4e..911f81862 100644
--- a/system/sync/stp/sync_stp_vilesci_lehrveranstaltung.php
+++ b/system/sync/stp/sync_stp_vilesci_lehrveranstaltung.php
@@ -19,7 +19,7 @@
require_once('../../../include/lehrfach.class.php');
//$adress='pam@technikum-wien.at';
- //$adress='oesi@technikum-wien.at';
+ //$adress_ext='oesi@technikum-wien.at';
//$adress='ruhan@technikum-wien.at';
//$conn=pg_connect(CONN_STRING);
@@ -135,7 +135,7 @@
FROM
lv JOIN semesterplaneintrag on(__LV=_LV)
WHERE
- semesterplaneintrag._lv not in(SELECT _lv FROM studienplaneintrag)
+ (CAST(semesterplaneintrag._lv AS varchar(10))+' '+CAST(inSemester AS varchar(10))) not in(SELECT CAST(_lv AS varchar(10))+ ' ' + CAST(insemester AS varchar(10)) FROM studienplaneintrag)
UNION
SELECT
__LV as _LV, SUBSTRING(chLVNr_new, 0, 200) as chLVNr, SUBSTRING(chBezeichnung, 0, 200) as chBezeichnung, _Studiengang, SUBSTRING(meKommentar, 0, 200) as meKommentar, 0 as inSemester, 0 as inSWS, 0 as ECTS
diff --git a/system/sync/stp/sync_stp_vilesci_note.php b/system/sync/stp/sync_stp_vilesci_note.php
new file mode 100644
index 000000000..e8b519934
--- /dev/null
+++ b/system/sync/stp/sync_stp_vilesci_note.php
@@ -0,0 +1,316 @@
+ VILESCI
+// setzt vorraus: - tbl_lehrveranstaltung
+// - tbl_student
+// - tbl_studiensemester
+// - tbl_note
+// - tbl_synclehrveranstaltung
+//
+// Beschreibung:
+// Kopiert alle Noten von Tabelle Note/SemesterplanEintrag anhand von _LV und insemester
+// in die Tabelle lehre.tbl_zeugnisnote
+// **************************************
+ require_once('sync_config.inc.php');
+ require_once('../../../include/lehrveranstaltung.class.php');
+ require_once('../../../include/studiengang.class.php');
+ require_once('../../../include/zeugnisnote.class.php');
+ require_once('../../../include/studiensemester.class.php');
+
+ //$adress='pam@technikum-wien.at';
+ //$adress='oesi@technikum-wien.at';
+ //$adress='ruhan@technikum-wien.at';
+
+ //$conn=pg_connect(CONN_STRING);
+ if (!$conn_ext=mssql_connect (STPDB_SERVER, STPDB_USER, STPDB_PASSWD))
+ die('Fehler beim Verbindungsaufbau!');
+ mssql_select_db(STPDB_DB, $conn_ext);
+
+ if(!$conn = pg_pconnect(CONN_STRING))
+ die('Fehler beim Verbindungsaufbau!');
+
+ echo '
+
+
+ STP - VILESCI (Noten)
+
+
+ ';
+
+ echo 'Starte Noten Syncronisation '.date('H:i:s').'
';
+ $beginn = date('H:i:s');
+ flush();
+
+ $update_error=0;
+ $insert_error=0;
+ $noten_gesamt=0;
+ $error=0;
+ $student_not_found=0;
+ $stsem_not_found_count=0;
+ $lv_not_found=0;
+ $anz_update=0;
+ $anz_insert=0;
+ $statistik='';
+ $head_text="Dies ist eine automatische Mail!\n\nFolgende Fehler sind bei der Synchronisation der Noten aufgetreten:\n\n";
+ $text='';
+ $stsem_not_found = array();
+
+ $stsem_obj = new studiensemester($conn);
+ $stsem_obj->getAll();
+ $stsem_arr = array();
+
+ foreach ($stsem_obj->studiensemester as $row)
+ $stsem_arr[]=$row->studiensemester_kurzbz;
+
+ $noten_arr = array( "1"=>"1",
+ "2"=>"2",
+ "3"=>"3",
+ "4"=>"4",
+ "5"=>"5",
+ "6"=>"10", //bestanden
+ "7"=>"13", //nicht bestanden->nicht erfolgreich absolviert
+ "8"=>"6", //befreit->angerechnet
+ "9"=>"7", //Nicht beurteilt
+ "10"=>"8", // Teilgenommen
+ "18"=>"12"); //mit Erfolg Teilgenommen->erfolgreich absolviert
+ /*Fehlende Notenzuordnungen
+ 11 ?
+ 12 ?
+ 13 ?
+ 14 ?
+ 16 ?
+ 17 ?
+ */
+
+
+ $stg_arr = array();
+ $stg_obj = new studiengang($conn);
+ $stg_obj->getAll(null, false);
+
+ foreach ($stg_obj->result as $stg)
+ $stg_arr[$stg->ext_id] = $stg->studiengang_kz;
+
+
+ // ******** SYNC START ********** //
+
+ $qry = "SELECT
+ _lv, insemester, _person, _cxbeurteilungsstufe, chKalenderSem, __Note
+ FROM
+ note JOIN semesterplaneintrag ON(_semesterplaneintrag=__semesterplaneintrag)
+ ORDER BY _person
+ ";
+
+ $lastperson='';
+ if($result_ext = mssql_query($qry, $conn_ext))
+ {
+ while($row_ext=mssql_fetch_object($result_ext))
+ {
+ $noten_gesamt++;
+ //Alle 100 Noten einen Punkt ausgeben und alle 10.000 einen Zeilenumbruch
+ if($noten_gesamt%100==0)
+ {
+ echo '.';
+ flush();
+ }
+
+ if($noten_gesamt%10000==0)
+ {
+ echo '
';
+ flush();
+ }
+
+ //Student_uid nur ermitteln wenn die person unterschiedlich zur vorigen ist
+ if($lastperson!=$row_ext->_person)
+ {
+ $lastperson=$row_ext->_person;
+ // student_uid ermitteln
+ $qry_std = "SELECT student_uid FROM public.tbl_student WHERE ext_id='".addslashes($row_ext->_person)."'";
+ if($result_std = pg_query($conn, $qry_std))
+ {
+ if(pg_num_rows($result_std)==0)
+ {
+ //$text.="Es wurde kein Studenteneintrag zu Person_id $row_ext->_person gefunden\n";
+ $student_not_found++;
+ $error++;
+ $student_uid='';
+ continue;
+ }
+ elseif(pg_num_rows($result_std)==1)
+ {
+ $row_std = pg_fetch_object($result_std);
+ $student_uid = $row_std->student_uid;
+ }
+ else
+ {
+ $text.="Es wurde mehr als ein passender Studenteneintrag zu $row_ext->_person gefunden\n";
+ $student_uid='';
+ $error++;
+ continue;
+ }
+ }
+ else
+ {
+ $text.="Fehler beim Ermitteln des Studenten:".pg_last_error($conn)."\n";
+ $student_uid='';
+ $error++;
+ continue;
+ }
+ }
+
+ //wenn keine UID zu dieser Person gefunden wurde, dann Weiterspringen
+ if($student_uid=='')
+ {
+ $student_not_found++;
+ $error++;
+ continue;
+ }
+
+
+ //Nicht zuordenbare Noten entfernen
+ if(!in_array($row_ext->_cxbeurteilungsstufe, $noten_arr))
+ {
+ $text.="Die Note $row_ext->_cxbeurteilungsstufe von $row_ext->_person kann nicht zugeordnet werden\n";
+ $error++;
+ continue;
+ }
+
+ // LV Ermitteln
+ $qry_lv = "SELECT lehrveranstaltung_id FROM sync.tbl_synclehrveranstaltung WHERE lv='".addslashes($row_ext->_lv)."' AND insemester='".addslashes($row_ext->insemester)."'";
+
+ if($result_lv = pg_query($conn, $qry_lv))
+ {
+ if(pg_num_rows($result_lv)==0)
+ {
+ $text.="Lehrveranstaltung zu $row_ext->_lv/$row_ext->insemester wurde nicht gefunden\n";
+ $lv_not_found++;
+ $error++;
+ continue;
+ }
+ elseif(pg_num_rows($result_lv)==1)
+ {
+ $row_lv = pg_fetch_object($result_lv);
+
+ $lehrveranstaltung_id = $row_lv->lehrveranstaltung_id;
+ }
+ else
+ {
+ $text.="Es wurde mehr als eine passende Lehrveranstaltung zu $row_ext->lv/$row_ext->insemester gefunden\n";
+ $error++;
+ continue;
+ }
+ }
+ else
+ {
+ $text.="Fehler beim Ermitteln der LV:".pg_last_error($conn)."\n";
+ $error++;
+ continue;
+ }
+
+ // Studiensemester Ermitteln
+ $stsem=strtoupper((substr($row_ext->chKalenderSem,0,1)).'S'.((integer)substr($row_ext->chKalenderSem,1,2)<11?'20':'19').substr($row_ext->chKalenderSem,1,2));
+ if(!in_array($stsem, $stsem_arr))
+ {
+ if(!in_array($stsem, $stsem_not_found))
+ $stsem_not_found[] = $stsem;
+ $error++;
+ $stsem_not_found_count++;
+ continue;
+ }
+
+ // Nachschauen ob Note im Vilesci vorhanden ist
+ $zeugnisnote = new zeugnisnote($conn);
+
+ $updtext='';
+
+ if($zeugnisnote->load($lehrveranstaltung_id, $student_uid, $stsem))
+ {
+ $zeugnisnote->new = false;
+
+ if($zeugnisnote->note != $noten_arr[$row_ext->_cxbeurteilungsstufe])
+ {
+ $updtext.=" Note wurde bei $lehrveranstaltung_id/$student_uid/$stsem von $zeugnisnote->note auf ".$noten_arr[$row_ext->_cxbeurteilungsstufe]." geaendert\n";
+ }
+ }
+ else
+ {
+ $zeugnisnote->new = true;
+ $zeugnisnote->insertamum = date('Y-m-d H:i:s');
+ $zeugnisnote->insertvon = 'sync';
+ }
+
+ if($updtext!='' || $zeugnisnote->new)
+ {
+ //Daten Speichern
+ $zeugnisnote->lehrveranstaltung_id = $lehrveranstaltung_id;
+ $zeugnisnote->studiensemester_kurzbz = $stsem;
+ $zeugnisnote->student_uid = $student_uid;
+ $zeugnisnote->note = $noten_arr[$row_ext->_cxbeurteilungsstufe];
+ $zeugnisnote->updateamum = date('Y-m-d H:i:s');
+ $zeugnisnote->updatevon = 'sync';
+ $zeugnisnote->ext_id = $row_ext->__Note;
+
+ if($zeugnisnote->save())
+ {
+ if($zeugnisnote->new)
+ {
+ $text.="Es wurde eine neue Note: ".$noten_arr[$row_ext->_cxbeurteilungsstufe]." für Lehrveranstaltung: $lehrveranstaltung_id Student: $student_uid Studiensemester: $stsem angelegt\n";
+ $anz_insert++;
+ }
+ else
+ {
+ $text.="Eintrag von Lehrveranstaltung: $lehrveranstaltung_id Student: $student_uid Studiensemester: $stsem wurde aktualisiert\n".$updtext;
+ $anz_update++;
+ }
+ }
+ else
+ {
+ if($zeugnisnote->new)
+ {
+ $text.="Fehler beim Anlegen einer Neuen Note Lehrveranstaltung: $lehrveranstaltung_id Student: $student_uid Studiensemester: $stsem ".$zeugnisnote->errormsg."\n";
+ $insert_error++;
+ $error++;
+ }
+ else
+ {
+ $text.="Fehler beim Aktualisieren von Lehrveranstaltung: $lehrveranstaltung_id Student: $student_uid Studiensemester: $stsem ".$zeugnisnote->errormsg."\n";
+ $update_error++;
+ $error++;
+ }
+ }
+ }
+ }
+ }
+ else
+ $text.= "Fehler beim Laden der Noten\n\n";
+
+ $ende = date('H:i:s');
+
+ $statistik .="Start: $beginn Ende: $ende\n\n";
+ $statistik .="Noten Import: $noten_gesamt\n";
+ $statistik .="Neue Noten angelegt: $anz_insert\n";
+ $statistik .="Aktualisierte Noten: $anz_update\n";
+ $statistik .="Fehler beim Anlegen von Noten: $insert_error\n";
+ $statistik .="Fehler beim Aktualisieren von Noten: $update_error\n";
+ $statistik .="Nicht gefundene Studenten: $student_not_found\n";
+ $statistik .="Nicht gefundene LVs: $lv_not_found\n";
+ $statistik .="Fehler Gesamt: $error\n";
+ if(count($stsem_not_found)>0)
+ {
+ $statistik .="Folgende Studiensemester sind nicht in der Tabelle tbl_studiensemester vorhanden: ";
+ foreach ($stsem_not_found as $row)
+ $statistik.=$row.', ';
+ $statistik .="\nDadurch aufgetretene Fehler: $stsem_not_found_count\n";
+ }
+
+ $text = $statistik."\n\n".$text;
+
+ if(mail($adress, 'SYNC Noten',$head_text.$text, "From: vilesci@technikum-wien.at"))
+ echo "
Mail wurde an $adress versandt
";
+ else
+ echo "
Fehler beim Senden an $adress
";
+
+ echo nl2br($text);
+?>
+
+
\ No newline at end of file