This commit is contained in:
Andreas Österreicher
2007-12-04 16:54:10 +00:00
parent 9e896a2fb0
commit 739ea06438
8 changed files with 394 additions and 39 deletions
+1 -1
View File
@@ -322,7 +322,7 @@ if($result_projekt = pg_query($conn, $qry_projekt))
echo "<th class='table-sortable:default'>Ende</th>";
echo "<th class='table-sortable:default'>Dauer</th>";
echo "<th class='table-sortable:default'>Beschreibung</th><th class='table-sortable:default'>Stg</th>";
echo "<th class='table-sortable:default'>Fachbereich</th><th colspan='2'>Aktion</th>";
echo "<th class='table-sortable:default'>FB</th><th colspan='2'>Aktion</th>";
echo " </tr></thead><tbody>\n";
if(isset($_GET['filter']))
+7
View File
@@ -419,6 +419,13 @@ Studenten<br>
<hr>
<h2>Erledigte Anforderungen</h2>
<ul>
<li>AccountInfoBl&auml;tter k&ouml;nnen nur noch von den eigenen
Studenten erstellt werden. AccountInfoBl&auml;tter f&uuml;r Mitarbeiter
k&ouml;nnen nun nur mehr erstellt werden wenn Schreibrechte auf
Mitarbeiterdaten gesetzt sind.<br>
04.12.2007 oesi<br>
<br>
</li>
<li>die Pflichtfelder beim Personenimport wurden jetzt mit * markiert.<br>
03.12.2007 oesi<br>
<br>
+46
View File
@@ -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);
+11 -19
View File
@@ -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()
+7 -7
View File
@@ -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;
+4 -10
View File
@@ -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;
}
}
@@ -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
+316
View File
@@ -0,0 +1,316 @@
<?php
// **************************************
// Syncronisiert alle Noten
// StPoelten -> 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 '
<html>
<head>
<title>STP - VILESCI (Noten)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>';
echo 'Starte Noten Syncronisation '.date('H:i:s').'<br>';
$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 '<br>';
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 "<br>Mail wurde an $adress versandt<br><br>";
else
echo "<br>Fehler beim Senden an $adress<br><br>";
echo nl2br($text);
?>
</body>
</html>