Merge branch 'feature-19473/VUE_Filter_Navigation_Widgets' of github.com:FH-Complete/FHC-Core into feature-19473/VUE_Filter_Navigation_Widgets

This commit is contained in:
Paolo
2022-10-10 14:44:31 +02:00
82 changed files with 2417 additions and 656 deletions
+2 -2
View File
@@ -7,8 +7,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
$config['interval_blocking_application'] = 'P1M';
// Application submission period given by start- and enddate.
$config['submit_application_start'] = '01.02.2021';
$config['submit_application_end'] = '22.02.2021';
$config['submit_application_start'] = '05.09.2022';
$config['submit_application_end'] = '22.09.2022';
// Lehrveranstaltungen with these grades will be blocked for application
$config['grades_blocking_application'] = array(
@@ -6,13 +6,13 @@ class requestAnrechnung extends Auth_Controller
{
const REQUEST_ANRECHNUNG_URI = '/lehre/anrechnung/RequestAnrechnung';
const APPROVE_ANRECHNUNG_URI = '/lehre/anrechnung/ApproveAnrechnungUebersicht';
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF';
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
public function __construct()
{
// Set required permissions
@@ -23,22 +23,22 @@ class requestAnrechnung extends Auth_Controller
'download' => 'student/anrechnung_beantragen:rw',
)
);
// Load models
$this->load->model('education/Anrechnung_model', 'AnrechnungModel');
$this->load->model('content/DmsVersion_model', 'DmsVersionModel');
// Load libraries
$this->load->library('WidgetLib');
$this->load->library('PermissionLib');
$this->load->library('AnrechnungLib');
$this->load->library('DmsLib');
// Load helpers
$this->load->helper('form');
$this->load->helper('url');
$this->load->helper('hlp_sancho_helper');
// Load configs
$this->load->config('anrechnung');
@@ -208,11 +208,11 @@ class requestAnrechnung extends Auth_Controller
$this->_checkIfEntitledToReadDMSDoc($dms_id);
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id, $filename);
if (isError($download)) return $download;
$download = $this->dmslib->download($dms_id);
if (isError($download)) return $download;
// Download file
$this->outputFile(getData($download));
// Download file
$this->outputFile(getData($download));
}
/**
@@ -221,10 +221,10 @@ class requestAnrechnung extends Auth_Controller
private function _setAuthUID()
{
$this->_uid = getAuthUID();
if (!$this->_uid) show_error('User authentification failed');
}
/**
* Check if application deadline is expired.
*
@@ -237,7 +237,7 @@ class requestAnrechnung extends Auth_Controller
private function _isExpired($start, $ende, $studiensemester_kurzbz)
{
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
// If start is not given, set to Semesterstart.
if (!isset($start) || isEmptyString($start))
{
@@ -245,7 +245,7 @@ class requestAnrechnung extends Auth_Controller
$result = $this->StudiensemesterModel->load($studiensemester_kurzbz);
$start = getData($result)[0]->start;
}
// If ende is not given, set to Semesterende.
if (!isset($ende) || isEmptyString($ende))
{
@@ -253,15 +253,15 @@ class requestAnrechnung extends Auth_Controller
$result = $this->StudiensemesterModel->load($studiensemester_kurzbz);
$ende = getData($result)[0]->ende;
}
$today = new DateTime('today midnight');
$start = new DateTime($start);
$ende = new DateTime($ende);
// True if expired
return ($today < $start || $today > $ende);
}
/**
* Check if user is entitled to read dms doc.
*
@@ -273,9 +273,9 @@ class requestAnrechnung extends Auth_Controller
{
show_error('Failed loading Student');
}
$result = $this->AnrechnungModel->loadWhere(array('dms_id' => $dms_id));
if($result = getData($result)[0])
{
if ($result->prestudent_id == $student->prestudent_id)
@@ -283,10 +283,10 @@ class requestAnrechnung extends Auth_Controller
return;
}
}
show_error('You are not entitled to read this document');
}
/**
* Check if application already exists.
*
@@ -302,15 +302,15 @@ class requestAnrechnung extends Auth_Controller
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'prestudent_id' => $prestudent_id
));
if (isError($result))
{
show_error(getError($result));
}
return hasData($result);
}
/**
* Check if applications' study semester is actual study semester.
*
@@ -322,10 +322,10 @@ class requestAnrechnung extends Auth_Controller
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$result = $this->StudiensemesterModel->getNearest();
$actual_ss = getData($result)[0]->studiensemester_kurzbz;
return $studiensemester_kurzbz == $actual_ss;
}
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id)
{
// Get Note of Lehrveranstaltung
@@ -336,12 +336,12 @@ class requestAnrechnung extends Auth_Controller
'lehrveranstaltung_id' => $lehrveranstaltung_id
)
);
// If Lehrveranstaltung has Note
if (hasData($result))
{
$note = getData($result)[0]->note;
// Check if Note is a blocking grade
if (in_array($note, $this->config->item('grades_blocking_application')))
{
@@ -350,7 +350,7 @@ class requestAnrechnung extends Auth_Controller
}
return false;
}
/**
* Upload file via DMS library.
*
@@ -367,7 +367,7 @@ class requestAnrechnung extends Auth_Controller
'insertamum' => (new DateTime())->format('Y-m-d H:i:s'),
'insertvon' => $this->_uid
);
// Upload document
return $this->dmslib->upload($dms, 'uploadfile', array('pdf'));
}
@@ -138,7 +138,7 @@ class Studiensemester extends Auth_Controller
$start = $this->input->post("semstart");
$ende = $this->input->post("semende");
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
$beschreibung = $this->input->post("beschreibung");
$beschreibung = isEmptyString($this->input->post("beschreibung")) ? null : $this->input->post("beschreibung");
$onlinebewerbung = $this->input->post("onlinebewerbung");
$onlinebewerbung = isset($onlinebewerbung);
@@ -27,6 +27,7 @@ class Gruppenmanagement extends Auth_Controller
// Loads models
$this->load->model('person/benutzer_model', 'BenutzerModel');
$this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
$this->load->model('person/benutzergruppe_model', 'BenutzergruppeModel');
$this->load->model('system/Log_model', 'LogModel');
@@ -149,11 +150,8 @@ class Gruppenmanagement extends Auth_Controller
if (isSuccess($result))
{
$this->LogModel->insert(array(
'mitarbeiter_uid' => $this->_uid,
'beschreibung' => 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt',
'sql' => $lastQry
));
$beschreibung = 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt';
$this->_writeLog($this->_uid, $beschreibung, $lastQry);
}
}
@@ -185,11 +183,8 @@ class Gruppenmanagement extends Auth_Controller
if (isSuccess($result))
{
$this->LogModel->insert(array(
'mitarbeiter_uid' => $this->_uid,
'beschreibung' => 'Gruppenmanagement: Nutzer aus Gruppe entfernt',
'sql' => $lastQry
));
$beschreibung = 'Gruppenmanagement: Nutzer aus Gruppe entfernt';
$this->_writeLog($this->_uid, $beschreibung, $lastQry);
}
$this->outputJson($result);
@@ -234,4 +229,26 @@ class Gruppenmanagement extends Auth_Controller
if (!$this->_uid) show_error('User authentification failed');
}
/**
* Writes an entry in the log table
*/
private function _writeLog($uid, $beschreibung, $lastQry)
{
$mitarbeiterResult = $this->MitarbeiterModel->load(array('mitarbeiter_uid'=>$this->_uid));
if(!isSuccess($mitarbeiterResult) || !hasData($mitarbeiterResult))
{
$uid = DUMMY_LEKTOR_UID;
$beschreibung .= ': '.$this->_uid;
$beschreibung = mb_substr($beschreibung, 0, 64);
}
$this->LogModel->insert(array(
'mitarbeiter_uid' => $uid,
'beschreibung' => $beschreibung,
'sql' => $lastQry
));
}
}
@@ -88,6 +88,12 @@ class InfoCenter extends Auth_Controller
'message' => 'Type of Document %s was updated, set to %s',
'success' => null
),
'deletedoc' => array(
'logtype' => 'Action',
'name' => 'Document deleted',
'message' => 'Document %s deleted',
'success' => null
),
);
// Name of Interessentenstatus
@@ -131,6 +137,7 @@ class InfoCenter extends Auth_Controller
'reloadZgvPruefungen' => 'infocenter:r',
'reloadMessages' => 'infocenter:r',
'reloadDoks' => 'infocenter:r',
'reloadUebersichtDoks' => 'infocenter:r',
'reloadNotizen' => array('infocenter:r', 'lehre/zgvpruefung:r'),
'reloadLogs' => 'infocenter:r',
'outputAkteContent' => array('infocenter:r', 'lehre/zgvpruefung:r'),
@@ -142,7 +149,9 @@ class InfoCenter extends Auth_Controller
'getStudienjahrEnd' => array('infocenter:r', 'lehre/zgvpruefung:r'),
'setNavigationMenuArrayJson' => 'infocenter:r',
'getAbsageData' => 'infocenter:r',
'saveAbsageForAll' => 'infocenter:rw'
'saveAbsageForAll' => 'infocenter:rw',
'deleteDoc' => 'infocenter:rw',
'getStudienartData' => 'infocenter:rw'
)
);
@@ -159,6 +168,10 @@ class InfoCenter extends Auth_Controller
$this->load->model('system/Message_model', 'MessageModel');
$this->load->model('system/Filters_model', 'FiltersModel');
$this->load->model('system/PersonLock_model', 'PersonLockModel');
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$this->load->model('codex/Zgv_model', 'ZgvModel');
$this->load->model('codex/Zgvmaster_model', 'ZgvmasterModel');
$this->load->model('codex/Nation_model', 'NationModel');
// Loads libraries
$this->load->library('PersonLogLib');
@@ -398,6 +411,35 @@ class InfoCenter extends Auth_Controller
$this->outputJsonSuccess(array($json));
}
public function deleteDoc($person_id)
{
$akte_id = $this->input->post('akteid');
if (isset($akte_id) && isset($person_id))
{
$this->load->library('AkteLib');
$akte = $this->aktelib->get($akte_id);
if (hasData($akte))
{
$akte = getData($akte);
if ($akte->person_id === (int)$person_id)
{
$result = $this->aktelib->remove($akte_id);
if (isError($result))
{
$this->terminateWithJsonError('Error deleting document');
}
$this->_log($person_id, 'deletedoc', array($akte->bezeichnung));
$this->outputJsonSuccess('success');
}
}
}
}
/**
* Gets prestudent data for a person in json format
* @param $person_id
@@ -1074,6 +1116,17 @@ class InfoCenter extends Auth_Controller
$this->load->view('system/infocenter/dokNachzureichend.php', array('dokumente_nachgereicht' => $dokumente_nachgereicht->retval));
}
public function reloadUebersichtDoks($person_id)
{
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false);
$this->DokumentModel->addOrder('bezeichnung');
$dokumentdata = array('dokumententypen' => (getData($this->DokumentModel->load())));
$data = array_merge($dokumentdata, ['dokumente' => $dokumente->retval]);
$this->load->view('system/infocenter/dokpruefung.php', $data);
}
/**
* Outputs content of an Akte, sends appropriate headers (so the document can be downloaded)
* @param $akte_id
@@ -1932,10 +1985,25 @@ class InfoCenter extends Auth_Controller
$abwstatusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$intstatusgruende = $this->StatusgrundModel->getStatus(self::INTERESSENTSTATUS)->retval;
$studienArtBerechtigung = array_column($this->getStudienArtBerechtigung(), 'typ');
$this->ZgvModel->addOrder('zgv_bez');
$allZGVs = getData($this->ZgvModel->load());
$this->ZgvModel->addOrder('zgvmas_bez');
$allZGVsMaster = getData($this->ZgvmasterModel->load());
$this->NationModel->addOrder('langtext');
$allNations = getData($this->NationModel->load());
$data = array (
'zgvpruefungen' => $zgvpruefungen,
'abwstatusgruende' => $abwstatusgruende,
'intstatusgruende' => $intstatusgruende
'intstatusgruende' => $intstatusgruende,
'studienArtBerechtigung' => $studienArtBerechtigung,
'all_zgvs' => $allZGVs,
'all_zgvs_master' => $allZGVsMaster,
'all_nations' => $allNations,
);
return $data;
@@ -2194,18 +2262,36 @@ class InfoCenter extends Auth_Controller
public function getAbsageData()
{
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm']);
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(['b', 'm'], $studienSemester);
if (hasData($stg_typ))
{
$stg_typ = getData($stg_typ);
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(array_column($stg_typ, 'typ'), $studienSemester);
$data = array (
'statusgruende' => $statusgruende,
'studiengaenge' => $studiengaenge->retval
);
$data = array (
'statusgruende' => $statusgruende,
'studiengaenge' => $studiengaenge->retval
);
$this->outputJsonSuccess($data);
$this->outputJsonSuccess($data);
}
else
$this->outputJsonSuccess(null);
}
public function getStudienArtBerechtigung()
{
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm', 'l']);
return getData($stg_typ);
}
public function getStudienartData()
{
$this->outputJsonSuccess($this->getStudienArtBerechtigung());
}
public function saveAbsageForAll()
+118 -169
View File
@@ -50,62 +50,57 @@ class DmsLib
$kategorie_kurzbz = null, $dokument_kurzbz = null, $beschreibung = null, $cis_suche = false, $schlagworte = null
)
{
// write file with content of fileHandle
$writeFileResult = $this->_writeNewFile($name, $fileHandle);
// create unique filename, using original document name to detect file extension
$filename = $this->_getUniqueFilename($name);
if (isError($writeFileResult)) return $writeFileResult;
// copy file from fileHandle to dms folder
$copyFileResult = $this->_copyFile($fileHandle, $filename);
if (hasData($writeFileResult))
if (isError($copyFileResult)) return $copyFileResult;
// if file written successful, insert dms
$dmsResult = $this->_ci->DmsModel->insert(
array(
'kategorie_kurzbz' => $kategorie_kurzbz,
'dokument_kurzbz' => $dokument_kurzbz
)
);
if (isError($dmsResult)) return $dmsResult;
if (hasData($dmsResult))
{
$writeFileData = getData($writeFileResult);
$filename = $writeFileData->filename;
$dms_id = getData($dmsResult);
$version = 0;
// if file written successful, insert dms
$dmsResult = $this->_ci->DmsModel->insert(
array(
'kategorie_kurzbz' => $kategorie_kurzbz,
'dokument_kurzbz' => $dokument_kurzbz
)
// insert dms version
$dmsVersion = array(
'dms_id' => $dms_id,
'version' => $version,
'filename' => $filename,
'mimetype' => $mimetype,
'name' => $name,
'beschreibung' => $beschreibung,
'cis_suche' => $cis_suche,
'schlagworte' => $schlagworte,
'insertvon' => $this->_who,
'insertamum' => date('Y-m-d H:i:s')
);
if (isError($dmsResult)) return $dmsResult;
$dmsVersionResult = $this->_ci->DmsVersionModel->insert($dmsVersion);
if (hasData($dmsResult))
{
$dms_id = getData($dmsResult);
$version = 0;
if (isError($dmsVersionResult)) return $dmsVersionResult;
// insert dms version
$dmsVersion = array(
'dms_id' => $dms_id,
'version' => $version,
'filename' => $filename,
'mimetype' => $mimetype,
'name' => $name,
'beschreibung' => $beschreibung,
'cis_suche' => $cis_suche,
'schlagworte' => $schlagworte,
'insertvon' => $this->_who,
'insertamum' => date('Y-m-d H:i:s')
);
// return dms info
$resObj = new stdClass();
$resObj->dms_id = $dms_id;
$resObj->version = $version;
$resObj->filename = $filename;
$dmsVersionResult = $this->_ci->DmsVersionModel->insert($dmsVersion);
if (isError($dmsVersionResult)) return $dmsVersionResult;
// return dms info
$resObj = new stdClass();
$resObj->dms_id = $dms_id;
$resObj->version = $version;
$resObj->filename = $filename;
return success($resObj);
}
else
return error("error when inserting DMS");
return success($resObj);
}
else
return error("file could not be written");
return error("error when inserting DMS");
}
/**
@@ -125,46 +120,41 @@ class DmsLib
$originalName = isset($name) ? $name : $lastVersion->name;
// write new file with content of fileHandle
$writeFileResult = $this->_writeNewFile($originalName, $fileHandle);
// create unique filename, using original document name to detect file extension
$filename = $this->_getUniqueFilename($originalName);
if (isError($writeFileResult)) return $writeFileResult;
// copy file from fileHandle to dms folder
$copyFileResult = $this->_copyFile($fileHandle, $filename);
if (hasData($writeFileResult))
{
$writeFileData = getData($writeFileResult);
$filename = $writeFileData->filename;
if (isError($copyFileResult)) return $copyFileResult;
// insert new version
$newVersionNumber = $lastVersion->version + 1;
// insert new version
$newVersionNumber = $lastVersion->version + 1;
// if new parameters given, use them, otherwise use parameters from last version
$newVersion = array(
'dms_id' => $dms_id,
'name' => $originalName,
'filename' => $filename,
'version' => $newVersionNumber,
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
'insertvon' => $this->_who,
'insertamum' => date('Y-m-d H:i:s')
);
// if new parameters given, use them, otherwise use parameters from last version
$newVersion = array(
'dms_id' => $dms_id,
'name' => $originalName,
'filename' => $filename,
'version' => $newVersionNumber,
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
'insertvon' => $this->_who,
'insertamum' => date('Y-m-d H:i:s')
);
$addVersionResult = $this->_ci->DmsVersionModel->insert($newVersion);
$addVersionResult = $this->_ci->DmsVersionModel->insert($newVersion);
if (isError($addVersionResult)) return $addVersionResult;
if (isError($addVersionResult)) return $addVersionResult;
// return dms info
$resObj = new stdClass();
$resObj->version = $newVersionNumber;
$resObj->filename = $filename;
// return dms info
$resObj = new stdClass();
$resObj->version = $newVersionNumber;
$resObj->filename = $filename;
return success($resObj);
}
else
return error("file could not be written");
return success($resObj);
}
else
return error("last version not found");
@@ -185,44 +175,37 @@ class DmsLib
if (hasData($lastVersionResult))
{
$lastVersion = getData($lastVersionResult);
$filename = $lastVersion->filename;
// update file in filesystem
$writeFileResult = $this->_writeFile($lastVersion->filename, $fileHandle);
$copyFileResult = $this->_copyFile($fileHandle, $filename);
if (isError($writeFileResult)) return $writeFileResult;
if (isError($copyFileResult)) return $copyFileResult;
if (hasData($writeFileResult))
{
$writeFileData = getData($writeFileResult);
$filename = $writeFileData->filename;
// if new parameters given, use them, otherwise use parameters from last version
$newVersion = array(
'name' => isset($name) ? $name : $lastVersion->name,
'filename' => $filename,
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
);
// if new parameters given, use them, otherwise use parameters from last version
$newVersion = array(
'name' => isset($name) ? $name : $lastVersion->name,
'filename' => $filename,
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
);
// update last dms version
$addVersionResult = $this->_ci->DmsVersionModel->update(
array($dms_id, $lastVersion->version),
$newVersion
);
// update last dms version
$addVersionResult = $this->_ci->DmsVersionModel->update(
array($dms_id, $lastVersion->version),
$newVersion
);
if (isError($addVersionResult)) return $addVersionResult;
if (isError($addVersionResult)) return $addVersionResult;
// return dms info
$resObj = new stdClass();
$resObj->version = $lastVersion->version;
$resObj->filename = $filename;
// return dms info
$resObj = new stdClass();
$resObj->version = $lastVersion->version;
$resObj->filename = $filename;
return success($resObj);
}
else
return error("file could not be written");
return success($resObj);
}
else
return error("last version not found");
@@ -441,68 +424,35 @@ class DmsLib
// Private methods
/**
* Writes file with content of fileHandle using original document name for file extension
* Copies file from sourceFileHandle to destinationFilename in DMS folder
* Returns success or error on fail
*/
private function _writeNewFile($originalName, $fileHandle)
private function _copyFile($sourceFileHandle, $destinationFilename)
{
// create unique filename, using original document name to detect file extension
$filename = $this->_getUniqueFilename($originalName);
// get file location from file handle
$metaData = stream_get_meta_data($sourceFileHandle);
// write the file
return $this->_writeFile($filename, $fileHandle);
}
/**
* Writes file with content of fileHandle
* Returns number of bytes written and filename
*/
private function _writeFile($filename, $fileHandle)
{
// file content provided by fileHandle
$fileContent = '';
$readBlockResult = success();
// While the end of the file is not reached and the read does not fail
while (!feof($fileHandle) && isSuccess($readBlockResult = $this->_ci->DmsFSModel->readBlock($fileHandle)))
if (isset($metaData['uri']) && !isEmptyString($metaData['uri']))
{
// Concatenate the content of the file
$fileContent .= getData($readBlockResult);
// if file location determined, copy file
$source = $metaData['uri'];
if (copy($source, DMS_PATH.$destinationFilename))
{
return success();
}
else
{
// error if copy returned false
return error('error occured while copying file');
}
}
// If an error occurred while reading then return it
if (isError($readBlockResult)) return $readBlockResult;
// open file for writing
$openFileResult = $this->_ci->DmsFSModel->openReadWrite($filename);
if (isError($openFileResult)) return $openFileResult;
if (!hasData($openFileResult)) return error("File could not be opened");
$newFileHandle = getData($openFileResult);
// write file
$writeFileResult = $this->_ci->DmsFSModel->write($newFileHandle, $fileContent);
if (isError($writeFileResult)) return $writeFileResult;
// return number of bytes written and filename
$resObj = new stdClass();
$resObj->bytesWritten = 0;
$resObj->filename = '';
if (hasData($writeFileResult))
else
{
$resObj->bytesWritten = getData($writeFileResult);
$resObj->filename = $filename;
// error when source location could not be determined
return error('error occured while getting source file name');
}
// close handle
$closeResult = $this->_ci->DmsFSModel->close($newFileHandle, $fileContent);
if (isError($closeResult)) return $closeResult;
return success($resObj);
}
@@ -527,7 +477,7 @@ class DmsLib
// -----------------------------------------------------------------------------------------------------------
// Deprecated methods, not to be used
/**
* Load a DMS Document.
* If no version is particularly given, the latest version is loaded.
@@ -543,7 +493,7 @@ class DmsLib
$this->_ci->DmsModel->addJoin('campus.tbl_dms_version', 'dms_id');
$this->_ci->DmsModel->addOrder('version', 'DESC');
$this->_ci->DmsModel->addLimit(1);
if (!is_numeric($version))
{
return $this->_ci->DmsModel->load($dms_id);
@@ -620,7 +570,7 @@ class DmsLib
return $result;
}
/**
* Uploads a document and saves it to DMS
* @param $dms DMS assoc array
@@ -659,7 +609,7 @@ class DmsLib
// Return result of uploaded data
return success($upload_data);
}
/**
* Download a document.
*
@@ -678,7 +628,7 @@ class DmsLib
if (hasData($fileInfoResult))
{
$fileObj = getData($fileInfoResult);
// Change filename, if filename is provided
if (!isEmptyString($filename)) $fileObj->name = $filename;
@@ -694,7 +644,7 @@ class DmsLib
// If no data have been found then return an empty success
return success();
}
/**
* Get file information.
*
@@ -706,7 +656,7 @@ class DmsLib
{
// Checks the dms_id parameter
if (!is_numeric($dms_id)) return error('Wrong parameter');
// Load DMS from database
$result = $this->load($dms_id, $version);
if (isError($result)) return error(getError($result));
@@ -951,4 +901,3 @@ class DmsLib
$this->_ci->upload->initialize($config);
}
}
+15 -10
View File
@@ -340,20 +340,25 @@ class FilterWidgetLib
{
$filterDefinition = $filters[$filtersCounter]; // definition of one filter
if ($filtersCounter > 0)
$where .= ' AND '; // if it's NOT the last one
if (!isEmptyString($filterDefinition->name)) // if the name of the applied filter is valid
// If the name of the applied filter is valid
if (!isEmptyString($filterDefinition->name))
{
// ...build the condition
$where .= '"'.$filterDefinition->name.'"'.$this->_getDatasetQueryCondition($filterDefinition);
// Build the query conditions
$datasetQueryCondition = $this->_getDatasetQueryCondition($filterDefinition);
// If the built condition is valid then add it to the query clause
if (!isEmptyString($datasetQueryCondition))
{
// // If this is NOT the first one
if ($filtersCounter > 0) $where .= ' AND ';
$where .= '"'.$filterDefinition->name.'"'.$datasetQueryCondition;
}
}
}
if ($where != '') // if the SQL where clause was built
{
$datasetQuery .= ' WHERE '.$where;
}
// If the SQL where clause was built
if ($where != '') $datasetQuery .= ' WHERE '.$where;
}
return $datasetQuery;
+13 -4
View File
@@ -122,14 +122,21 @@ class SearchBarLib
p.person_id AS person_id,
p.vorname || \' \' || p.nachname AS name,
ARRAY_AGG(DISTINCT(org.bezeichnung)) AS organisationunit_name,
b.uid || \''.'@'.DOMAIN.'\' AS email,
COALESCE(b.alias, b.uid) || \''.'@'.DOMAIN.'\' AS email,
TRIM(COALESCE(k.kontakt, \'\') || \' \' || COALESCE(m.telefonklappe, \'\')) AS phone,
\''.base_url(self::PHOTO_IMG_URL).'\' || p.person_id AS photo_url,
ARRAY_AGG(DISTINCT(oe.bezeichnung)) AS standardkostenstelle
ARRAY_AGG(DISTINCT(stdkst.bezeichnung)) AS standardkostenstelle
FROM public.tbl_mitarbeiter m
JOIN public.tbl_benutzer b ON(b.uid = m.mitarbeiter_uid)
JOIN public.tbl_benutzerfunktion bf ON bf.uid = b.uid AND bf.funktion_kurzbz = \'kstzuordnung\'
JOIN public.tbl_organisationseinheit oe ON oe.oe_kurzbz = bf.oe_kurzbz
JOIN (
SELECT o.bezeichnung, bf.uid
FROM public.tbl_benutzerfunktion bf
JOIN public.tbl_organisationseinheit o USING(oe_kurzbz)
WHERE bf.funktion_kurzbz = \'kstzuordnung\'
AND (bf.datum_von IS NULL OR bf.datum_von <= NOW())
AND (bf.datum_bis IS NULL OR bf.datum_bis >= NOW())
GROUP BY o.bezeichnung, bf.uid
) stdkst ON stdkst.uid = b.uid
JOIN public.tbl_person p USING(person_id)
JOIN (
SELECT o.bezeichnung, bf.uid
@@ -148,6 +155,8 @@ class SearchBarLib
WHERE b.uid ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
OR p.vorname ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
OR p.nachname ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
OR org.bezeichnung ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
OR stdkst.bezeichnung ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
GROUP BY type, b.uid, p.person_id, name, email, m.telefonklappe, phone
');
+7
View File
@@ -528,6 +528,13 @@ class Messages_model extends CI_Model
*/
public function sendReply($receiver_id, $subject, $body, $relationmessage_id, $token)
{
// Checks that the receiver_id, relationmessage_id and token belongs to the same message
$crossedDataResult = $this->MessageTokenModel->crossClientData($token, $relationmessage_id, $receiver_id);
if (isError($crossedDataResult)) show_error(getError($crossedDataResult));
if (!hasData($crossedDataResult)) show_error(
'The parameters token, relationmessage_id and receiver_id do not belong to the same message'
);
// Retrieves message sender information
$senderResult = $this->MessageTokenModel->getSenderData($receiver_id);
if (isError($senderResult)) show_error(getError($senderResult));
+2 -2
View File
@@ -3,7 +3,7 @@
class Nation_model extends DB_Model
{
/**
*
*
*/
public function __construct()
{
@@ -11,4 +11,4 @@ class Nation_model extends DB_Model
$this->dbTable = 'bis.tbl_nation';
$this->pk = 'nation_code';
}
}
}
@@ -10,6 +10,7 @@ class Dokumentprestudent_model extends DB_Model
parent::__construct();
$this->dbTable = 'public.tbl_dokumentprestudent';
$this->pk = array('prestudent_id', 'dokument_kurzbz');
$this->hasSequence = false;
}
/**
+4 -3
View File
@@ -74,10 +74,11 @@ class Konto_model extends DB_Model
}
}
public function getLastStudienbeitrag($uid, $buchungstypen)
public function getStudienbeitraege($uid, $buchungstypen)
{
$query = 'SELECT konto.studiensemester_kurzbz
FROM public.tbl_konto konto,
FROM public.tbl_konto konto
JOIN public.tbl_studiensemester studiensemester ON konto.studiensemester_kurzbz = studiensemester.studiensemester_kurzbz,
public.tbl_benutzer,
public.tbl_student
WHERE tbl_benutzer.uid = \'' . $uid . '\'
@@ -91,7 +92,7 @@ class Konto_model extends DB_Model
WHERE skonto.buchungsnr = konto.buchungsnr_verweis
OR skonto.buchungsnr_verweis = konto.buchungsnr_verweis
)
ORDER BY buchungsnr DESC LIMIT 1;
ORDER BY studiensemester.start DESC;
';
return $this->execQuery($query);
@@ -507,4 +507,14 @@ class Studiengang_model extends DB_Model
return $this->execQuery($query, array($typ, $semester));
}
public function getStudiengangTyp($studiengang_kz, $typ)
{
$query = "SELECT DISTINCT(sgt.*)
FROM tbl_studiengangstyp sgt JOIN tbl_studiengang sg on sgt.typ = sg.typ
WHERE studiengang_kz IN ? and sgt.typ IN ?";
return $this->execQuery($query, array($studiengang_kz, $typ));
}
}
@@ -176,4 +176,20 @@ class MessageToken_model extends DB_Model
return $this->execQuery($sql, array($oe_kurzbz));
}
/**
*
*/
public function crossClientData($token, $relationmessage_id, $receiver_id)
{
$sql = 'SELECT mm.message_id
FROM public.tbl_msg_message mm
JOIN public.tbl_msg_recipient mr USING(message_id)
WHERE mr.token = ?
AND mm.message_id = ?
AND mm.person_id = ?';
return $this->execQuery($sql, array($token, $relationmessage_id, $receiver_id));
}
}
@@ -11,7 +11,6 @@
'tablesorter2' => true,
'ajaxlib' => true,
'dialoglib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
'gruppenmanagement',
@@ -8,7 +8,7 @@
JOIN public.tbl_gruppe_manager grpmgr USING (gruppe_kurzbz)
WHERE grp.aktiv = TRUE
AND grpmgr.uid = \''.$uid.'\'',
'requiredPermissions' => 'admin',
'requiredPermissions' => 'lehre/gruppenmanager',
'datasetRepresentation' => 'tablesorter',
'additionalColumns' => array('Teilnehmer'),
'columnsAliases' => array(
@@ -1,10 +1,11 @@
<div class="table-responsive">
<table id="doctable" class="table table-bordered">
<div class="table-responsive" id="uebersichtDoks">
<table id="doctable" class="table table-bordered table-condensed tablesorter tablesorter-default">
<thead>
<tr>
<th><?php echo ucfirst($this->p->t('global','name')) ?></th>
<th><?php echo ucfirst($this->p->t('global','typ')) ?></th>
<th><?php echo ucfirst($this->p->t('global','uploaddatum')) ?></th>
<th><?php echo ucfirst($this->p->t('ui','loeschen')) ?></th>
<th><?php echo ucfirst($this->p->t('infocenter','ausstellungsnation')) ?></th>
<?php
if (!isset($formalReadonly))
@@ -22,7 +23,7 @@
<a href="outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo isEmptyString($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
</td>
<td>
<select class="aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
<select class="form-control aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
<?php
foreach($dokumententypen as $dokumenttyp)
echo "<option " . ($dokumenttyp->bezeichnung === $dokument->dokument_bezeichnung ? 'selected' : '') . " value = " . $dokumenttyp->dokument_kurzbz . ">" . $dokumenttyp->bezeichnung . "</option>"
@@ -30,7 +31,7 @@
</select>
<div class="row">
<button class="nachreichungInfos hidden" id="nachreichungInfos_<?php echo $dokument->akte_id?>"><?php echo ucfirst($this->p->t('infocenter','dokumentWirdNachgereicht')) ?></button>
<button class="nachreichungInfos hidden btn btn-default" id="nachreichungInfos_<?php echo $dokument->akte_id?>"><?php echo ucfirst($this->p->t('infocenter','dokumentWirdNachgereicht')) ?></button>
</div>
<div class="nachreichungInputs hidden" id="nachreichungInputs_<?php echo $dokument->akte_id?>">
@@ -49,7 +50,7 @@
<div class="row">
<div class="col-sm-12">
<div class="btn-group pull-right">
<input type="button" value="OK" class="btn btn-primary nachreichungSpeichern" id="nachreichungSpeichern_<?php echo $dokument->akte_id?>">
<input type="button" value="OK" class="btn btn-primary nachreichungSpeichern btn-default" id="nachreichungSpeichern_<?php echo $dokument->akte_id?>">
<input type="button" value="Abbrechen" class="btn btn-default nachreichungAbbrechen" id="nachreichungAbbrechen_<?php echo $dokument->akte_id?>">
</div>
</div>
@@ -60,6 +61,7 @@
</td>
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
<td><input type="button" value="<?php echo ucfirst($this->p->t('ui','loeschen')); ?>" class="btn btn-default dokLoeschen" id="dokLoeschen_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?>></td>
<td><?php echo $dokument->langtext ?></td>
<?php
if (!isset($formalReadonly)) :
@@ -15,6 +15,7 @@
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$ONLINE = '\'online\'';
$query = '
SELECT
@@ -55,10 +56,13 @@
a.dokument_kurzbz in ('.$AKTE_TYP.')
) AS "AnzahlAkte",
(
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
SELECT CASE WHEN student.student_uid IS NULL THEN
(CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END)
ELSE '. $ONLINE .' END
FROM system.tbl_log l
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
LEFT JOIN public.tbl_student student ON tbl_benutzer.uid = student.student_uid
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
@@ -12,6 +12,7 @@
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$IDENTITY = '\'identity\'';
$ONLINE = '\'online\'';
$query = '
SELECT
@@ -42,10 +43,13 @@ $query = '
LIMIT 1
) AS "LastActionType",
(
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
SELECT CASE WHEN student.student_uid IS NULL THEN
(CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END)
ELSE '. $ONLINE .' END
FROM system.tbl_log l
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
LEFT JOIN public.tbl_student student ON tbl_benutzer.uid = student.student_uid
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
@@ -178,7 +182,7 @@ $query = '
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
ORDER BY rtp.teilgenommen NULLS FIRST, pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "ReihungstestAngetreten",
(
@@ -199,7 +203,7 @@ $query = '
LIMIT 1
) AS "ReihungstestApplied",
(
SELECT CONCAT(rtp.datum, rtp.uhrzeit)
SELECT (ARRAY_TO_STRING(array_agg(DISTINCT(CONCAT(rtp.datum, \' \', to_char(rtp.uhrzeit, \'HH24:MI\'), \' \', studiengang.kurzbzlang))), \', \'))
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
LEFT JOIN (
@@ -207,14 +211,17 @@ $query = '
rt.studiensemester_kurzbz,
rtp.teilgenommen,
rt.datum,
rt.uhrzeit
rt.uhrzeit,
rt.studiengang_kz
FROM public.tbl_rt_person rtp
JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id)
WHERE rt.stufe = 1
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
JOIN tbl_studiengang studiengang ON rtp.studiengang_kz = studiengang.studiengang_kz
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
GROUP BY pss.datum, pss.insertamum, pss.ext_id
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "ReihungstestDate",
@@ -414,10 +421,6 @@ $query = '
{
$datasetRaw->{'ReihungstestDate'} = '-';
}
else
{
$datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d H:i');
}
if ($datasetRaw->{'ZGVNation'} == null)
{
@@ -124,6 +124,32 @@
</div>
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
class="panel-collapse collapse<?php echo $infoonly ? '' : ' in' ?>">
<?php
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = $disabledStg = 'disabled';
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
}
if ($studiengangtyp !== 'b' && $studiengangtyp !== 'm')
{
$disabled = 'disabled';
$disabledTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
{
$disabledStg = 'disabled';
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
}
}
if (!in_array($studiengangtyp, $studienArtBerechtigung))
$disabledPer = 'disabled';
else
$disabledPer = '';
?>
<div class="panel-body">
<form action="javascript:void(0);" class="zgvform" id="zgvform_<?php echo $zgvpruefung->prestudent_id ?>">
<input type="hidden" name="prestudentid" value="<?php echo $zgvpruefung->prestudent_id ?>" class="prestudentidinput">
@@ -196,12 +222,25 @@
<a href="javascript:void(0)"><i class="fa fa-info-circle"></i> <?php echo $this->p->t('infocenter', 'zgv') ?> <?php echo $studiengangkurzbz ?></a>
</div>
</div>
<?php if (!$infoonly)
echo $this->widgetlib->widget(
'Zgv_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
array('name' => 'zgv', 'id' => 'zgv_'.$zgvpruefung->prestudent_id)
); ?>
<?php if (!$infoonly):
echo "<select id='zgv_" . $zgvpruefung->prestudent_id . "' name='zgv' class='form-control'>";
$selectedDefault = (is_null($zgvpruefung->zgv_code) ? 'selected' : '');
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
foreach ($all_zgvs as $zgv)
{
$selected = ($zgvpruefung->zgv_code === $zgv->zgv_code) ? 'selected' : '';
$aktiv = '';
$class = '';
if (!$zgv->aktiv)
{
$aktiv = '(inaktiv)';
$class = 'gesperrtoption';
}
echo "<option " . $selected . " value='" . $zgv->zgv_code . "' class='". $class ."'>" . $zgv->zgv_bez . " " . $aktiv ."</option>";
}
echo "</select>";
endif;?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
@@ -239,11 +278,26 @@
<?php if ($infoonly)
echo $zgvpruefung->zgvnation_bez;
else
echo $this->widgetlib->widget(
'Nation_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code),
array('name' => 'zgvnation', 'id' => 'zgvnation_'.$zgvpruefung->prestudent_id)
); ?>
{
echo "<select id='zgvnation_" . $zgvpruefung->prestudent_id . "' name='zgvnation' class='form-control'>";
$selectedDefault = (is_null($zgvpruefung->zgvnation_code) ? 'selected' : '');
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
foreach ($all_nations as $nation)
{
$selected = ($nation->nation_code === $zgvpruefung->zgvnation_code) ? 'selected' : '';
$sperre = '';
$class = '';
if ($nation->sperre == 'true')
{
$sperre = '(gesperrt)';
$class = 'gesperrtoption';
}
echo "<option " . $selected . " value='" . $nation->nation_code . "' class='" . $class ."'>" . $nation->langtext . " " . $sperre ."</option>";
}
echo "</select>";
}
?>
</div>
</div>
</div>
@@ -256,11 +310,25 @@
if ($infoonly)
echo $zgvpruefung->zgvmas_bez;
else
echo $this->widgetlib->widget(
'Zgvmaster_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmas_code),
array('name' => 'zgvmas', 'id' => 'zgvmas_'.$zgvpruefung->prestudent_id)
); ?>
{
echo "<select id='zgvmas_" . $zgvpruefung->prestudent_id . "' name='zgvmas' class='form-control'>";
$selectedDefault = (is_null($zgvpruefung->zgvmas_code) ? 'selected' : '');
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
foreach ($all_zgvs_master as $zgv)
{
$selected = ($zgvpruefung->zgvmas_code === $zgv->zgvmas_code) ? 'selected' : '';
$aktiv = '';
$class = '';
if (!$zgv->aktiv)
{
$aktiv = '(inaktiv)';
$class = 'gesperrtoption';
}
echo "<option " . $selected . " value='" . $zgv->zgvmas_code . "' class='" . $class . "'>" . $zgv->zgvmas_bez . " " . $aktiv ."</option>";
}
echo "</select>";
}
?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
@@ -300,11 +368,28 @@
if ($infoonly)
echo $zgvpruefung->zgvmanation_bez;
else
echo $this->widgetlib->widget(
'Nation_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmanation_code),
array('name' => 'zgvmanation', 'id' => 'zgvmanation_'.$zgvpruefung->prestudent_id)
); ?>
{
echo "<select id='zgvmanation_" . $zgvpruefung->prestudent_id . "' name='zgvmanation' class='form-control'>";
$selectedDefault = (is_null($zgvpruefung->zgvmanation_code) ? 'selected' : '');
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
foreach ($all_nations as $nation)
{
$selected = ($nation->nation_code === $zgvpruefung->zgvmanation_code) ? 'selected' : '';
$sperre = '';
$class = '';
if ($nation->sperre == 'true')
{
$sperre = '(gesperrt)';
$class = 'gesperrtoption';
}
echo "<option " . $selected . " value='" . $nation->nation_code . "' class='" . $class . "'>" . $nation->langtext . " " . $sperre ."</option>";
}
echo "</select>";
}
?>
</div>
</div>
</div>
@@ -318,17 +403,17 @@
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-xs-8 text-left zgvBearbeitungButtons" id="zgvBearbeitungButtons_<?php echo $zgvpruefung->prestudent_id ?>">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>" <?php echo $disabledPer?>>
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
<button class="btn btn-default zgvRueckfragen" id="zgvRueckfragen_<?php echo $zgvpruefung->prestudent_id ?>">
<button class="btn btn-default zgvRueckfragen" <?php echo $disabledStg . ' ' . $disabledPer?> id="zgvRueckfragen_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'zgvRueckfragen') ?>
</button>
<span class="zgvStatusText" id="zgvStatusText_<?php echo $zgvpruefung->prestudent_id ?>" <?php (!(isset($zgvpruefung->statusZGV))) ?: print_r('data-info="need"')?>>
</span>
</div>
<div class="col-xs-4 text-right">
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>" <?php echo $disabledPer?>>
<?php echo $this->p->t('ui', 'speichern') ?>
</button>
</div>
@@ -336,7 +421,7 @@
<?php endif; ?>
<br />
<?php
if (isset($zgvpruefung->prestudentUdfs))
if (isset($zgvpruefung->prestudentUdfs) && $studiengangtyp !== 'l')
{
echo $this->udflib->UDFWidget(
array(
@@ -362,6 +447,8 @@
<div class="form-inline">
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="absgstatusgrund"
<?php echo $disabledStg ?>
<?php echo $disabledPer ?>
class="d-inline float-right"
required>
<option value="null"
@@ -373,7 +460,7 @@
</select>
<span class="input-group-btn">
<button type="button"
class="btn btn-default absageBtn" id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
class="btn btn-default absageBtn" <?php echo $disabledStg . ' ' . $disabledPer?> id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'absagen') ?>
</button>
</span>
@@ -381,25 +468,6 @@
</div>
</div><!-- /.column-absage -->
<?php
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = $disabledStg = 'disabled';
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
}
if ($studiengangtyp !== 'b' && $studiengangtyp !== 'm')
{
$disabled = 'disabled';
$disabledTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
{
$disabledStg = 'disabled';
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
}
}
if (!$infoonly) :
?>
<div class="col-lg-8 text-right">
@@ -408,6 +476,7 @@
<select name="frgstatusgrund"
class="d-inline float-right"
<?php echo $disabledStg ?>
<?php echo $disabledPer ?>
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
@@ -417,14 +486,14 @@
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg . ' ' . $disabledPer?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledStgTxt ?>">
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
</button>
</span>
</div>
<div class="input-group" id="igrfrgbtn">
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled . ' ' . $disabledPer?>
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
</button>
@@ -489,6 +558,8 @@
<div class="col-lg-4 text-left">
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="absgstatusgrund"
<?php echo $disabledStg?>
<?php echo $disabledPer?>
class="d-inline float-right"
required>
<option value="null"
@@ -500,6 +571,8 @@
</select>
<span class="input-group-btn">
<button type="button"
<?php echo $disabledStg ?>
<?php echo $disabledPer ?>
class="btn btn-default absageBtn" id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'absagen') ?>
</button>
@@ -552,4 +625,3 @@
endforeach; // end foreach zgvpruefungen
?>
</div><!-- /.panel-group -->
View File
View File
View File
@@ -233,12 +233,21 @@ if (isset($_REQUEST["submit"]))
continue;
}
$punkte=str_replace(',','.', $punkte);
//UID ermitteln
//check ob statt Matrikelnummer nicht bereits student_uid (Moodle Grade Import) vorliegt..
$student = new student();
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
if (!$student->checkIfValidStudentUID($matrikelnummer))
{
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
continue;
//UID ermitteln
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
{
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
continue;
}
}
else
{
$student_uid = $matrikelnummer;
}
// Hole Zeugnisnote wenn schon eine eingetragen ist
@@ -803,6 +803,7 @@ if (defined('CIS_ANWESENHEITSLISTE_NOTENLISTE_ANZEIGEN') && CIS_ANWESENHEITSLIST
{
$hrefpath = "../notenliste.xls.php?stg=$stg_obj->studiengang_kz&lvid=$lvid&stsem=$stsem";
echo "<br><a class='Item' href='" . $hrefpath . "'>" . $p->t('benotungstool/notenlisteImport') . "</a>";
}
// eingetragene lv-gesamtnoten freigeben
+13 -1
View File
@@ -103,6 +103,7 @@ $gruppen_string = '';
$gruppen_string_arr = array();
$stg_typ = $stg->typ;
$stg_bezeichnung = $stg->bezeichnung;
$lv_bezeichnung = '';
//structure overall lehrveranstaltungs data
if ($result = $db->db_query($qry)) {
@@ -154,6 +155,7 @@ $qry = 'SELECT DISTINCT ON
(nachname, vorname, person_id)
vorname,
nachname,
wahlname,
matrikelnr,
tbl_studentlehrverband.semester,
tbl_studentlehrverband.verband,
@@ -238,6 +240,16 @@ if ($result = $db->db_query($qry)) {
if ($row->stg_kz_student == $a_o_kz) //Außerordentliche Studierende
$zusatz .= '(a.o.)';
//wenn Wahlname vorhanden, wird dieser anstelle des Vornamens angezeigt
if ($row->wahlname != '')
{
$vorname = $row->wahlname;
}
else
{
$vorname = $row->vorname;
}
//allow admin and assistenz to see ALL fotos (even if locked by user)
if ($show_all_fotos)
$row->foto_sperre = 'f';
@@ -272,7 +284,7 @@ if ($result = $db->db_query($qry)) {
//add studierenden data for XML
$data[] = array('studierende' => array(
'vorname' => $row->vorname,
'vorname' => $vorname,
'nachname' => mb_strtoupper($row->nachname, 'UTF-8'),
'personenkennzeichen' => trim($row->matrikelnr),
'geschlecht' => $row->geschlecht,
+3 -2
View File
@@ -136,7 +136,7 @@ if (! check_student($user))
}
else
{
$qry = "SELECT vw_student.vorname, vw_student.nachname, vw_student.prestudent_id, tbl_studiengang.studiengang_kz
$qry = "SELECT vw_student.vorname, vw_student.nachname, vw_student.wahlname, vw_student.prestudent_id, tbl_studiengang.studiengang_kz
FROM public.tbl_studiengang JOIN campus.vw_student USING (studiengang_kz)
WHERE campus.vw_student.uid = " . $db->db_add_param($user) . ";";
@@ -148,6 +148,7 @@ else
$vorname = $row->vorname;
$nachname = $row->nachname;
$wahlname = $row->wahlname;
$prestudent_id = $row->prestudent_id;
$stg_obj = new studiengang();
$stg_obj->load($row->studiengang_kz);
@@ -313,7 +314,7 @@ else
// Noten ohne Wert werden entfernen
if(isset($notenarr[$row->note]['notenwert']))
{
$notenSummenArray[$row->lehrveranstaltung_id]['notenwert'] = $notenarr[$row->note]['notenwert'];
$notenSummenArray[$row->lehrveranstaltung_id]['notenwert'] = $notenarr[$row->note]['notenwert'];
$notenSummenArray[$row->lehrveranstaltung_id]['ects'] = $row->ects;
}
}
+4 -2
View File
@@ -167,7 +167,7 @@ else
//Lektoren ermitteln
$qry = "SELECT
distinct vorname, nachname
distinct vorname, nachname, wahlname
FROM
campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE
@@ -211,7 +211,7 @@ else
$qry = "
SELECT
distinct on(nachname, vorname, person_id)
vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid,
vorname, nachname, wahlname, matrikelnr, person_id, tbl_student.student_uid as uid,
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
(SELECT status_kurzbz
FROM public.tbl_prestudentstatus
@@ -277,6 +277,8 @@ else
$worksheet->write($lines,1,$elem->uid);
$worksheet->write($lines,2,$elem->nachname.$inc);
$worksheet->write($lines,3,$elem->vorname);
//wenn Wahlname vorhanden überschreibt dieser den Vornamen
$worksheet->write($lines,3,$elem->wahlname);
$worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
$worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
$worksheet->write($lines,6, $note, $format_highlightright);
+34 -24
View File
@@ -19,7 +19,7 @@
*/
/*
* GUI fuer die FreeBusy Verwaltung
*
*
* Mit diesem Tool koennen FreeBusy URLs aus verschiedenen Quellen zu einer
* FreeBusy URL zusammengefasst werden
*/
@@ -32,7 +32,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
$user = get_uid();
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -60,23 +60,23 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
<link rel="stylesheet" href="../../../skin/jquery.css" type="text/css">
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<title>'.$p->t('freebusy/titel').'</title>
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript">
$(document).ready(function()
$(document).ready(function()
{
$("#myTable").tablesorter(
{
sortList: [[0,1]],
widgets: [\'zebra\']
});
});
});
function seturl()
{
url = $("#typ option:selected").attr("url");
@@ -116,25 +116,25 @@ if($action=='delete')
elseif($action=='save')
{
//Speichern von Eintraegen
$id = (isset($_POST['id'])?$_POST['id']:'');
$aktiv = isset($_POST['aktiv']);
if(isset($_POST['bezeichnung']))
$bezeichnung = $_POST['bezeichnung'];
else
die($p->t('global/fehlerBeiDerParameteruebergabe'));
if(isset($_POST['typ']))
$typ = $_POST['typ'];
else
die($p->t('global/fehlerBeiDerParameteruebergabe'));
if(isset($_POST['url']))
$url = $_POST['url'];
else
die($p->t('global/fehlerBeiDerParameteruebergabe'));
//Pruefen ob die URL geoeffnet werden kann
$fp = @fopen($url,'r');
if (!$fp)
@@ -142,7 +142,7 @@ elseif($action=='save')
else
{
fclose($fp);
$fb = new freebusy();
if($id!='')
{
@@ -150,8 +150,8 @@ elseif($action=='save')
die($p->t('global/fehleraufgetreten'));
if($fb->uid!=$user)
die($p->t('global/keineBerechtigungZumAendernDesDatensatzes'));
$fb->new=false;
}
else
@@ -161,20 +161,20 @@ elseif($action=='save')
$fb->insertvon = $user;
$fb->uid = $user;
}
$fb->updateamum = date('Y-m-d H:i:s');
$fb->updatevon = $user;
$fb->bezeichnung = $bezeichnung;
$fb->url = $url;
$fb->freebusytyp_kurzbz = $typ;
$fb->aktiv = $aktiv;
if($fb->save())
echo '<span class="ok">'.$p->t('global/erfolgreichgespeichert').'</span>';
else
echo '<span class="error">'.$p->t('global/fehleraufgetreten').'</span>';
echo '<span class="error">'.$p->t('global/fehleraufgetreten').'</span>';
}
}
//Tabelle mit den vorhandenen Eintraegen anzeigen
@@ -201,7 +201,17 @@ echo '<table id="myTable" class="tablesorter">
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
//zeitsperren
echo '<tr>';
echo '<td>'.$p->t('freebusy/ZeitsperrenBezeichnung').'</td>';
echo '<td>'.$p->t('freebusy/ZeitsperrenTyp').'</td>';
echo '<td></td>';
echo '<td>'.$p->t('global/ja').'</td>';
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
foreach($fb->result as $row)
{
$typ = new freebusy();
@@ -223,7 +233,7 @@ echo '<a href="'.$_SERVER['PHP_SELF'].'?action=neu">'.$p->t('freebusy/neuerEintr
if($action=='edit' || $action=='neu')
{
$fb = new freebusy();
if($action=='neu')
{
$new = true;
@@ -236,7 +246,7 @@ if($action=='edit' || $action=='neu')
if(!$fb->load($id))
die($p->t('global/fehlerBeimLadenDesDatensatzes'));
}
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=save" method="POST">';
echo '<input type="hidden" name="id" value="'.$fb->freebusy_id.'" />';
echo '<table>
@@ -259,7 +269,7 @@ if($action=='edit' || $action=='neu')
$selected='selected';
else
$selected='';
$vorlage = mb_str_replace('$uid',$user, $row->url_vorlage);
echo '<OPTION value="'.$db->convert_html_chars($row->freebusytyp_kurzbz).'" '.$selected.' url="'.$db->convert_html_chars($vorlage).'">'.$db->convert_html_chars($row->bezeichnung),'</OPTION>';
}
@@ -275,4 +285,4 @@ if($action=='edit' || $action=='neu')
}
?>
</body>
</html>
</html>
View File
+10 -5
View File
@@ -108,7 +108,7 @@ if (defined('LOG_CONTENT') && LOG_CONTENT==true)
//Easter Egg
$easteregg = array ('antwort','leben','universum','rest','answer','universe','life','everything');
$easteregg_intersect = array_intersect(array_map('strtolower',$searchItems), $easteregg);
if (count($easteregg_intersect)==4)
if (count($easteregg_intersect)==3)
{
echo '<table width="100%"><tr><td align="center"><br><br><br><p style="align:center; font-size: 2000%;"><strong>42</strong></p></td></tr></table>';
exit;
@@ -178,20 +178,25 @@ function searchPerson($searchItems)
echo '<tr>';
//echo '<td>',$row->titelpre,'</td>';
echo '<td>',$row->anrede,'</td>';
echo '<td>',$row->vorname,'</td>';
if ($row->wahlname)
echo '<td>',$row->wahlname, ' ' ,$row->vorname, '</td>';
else
echo '<td>',$row->vorname, '</td>';
echo '<td>';
if(!defined('CIS_SUCHE_PROFIL_ANZEIGEN'))
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname, ' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
else if(!CIS_SUCHE_PROFIL_ANZEIGEN)
{
$mitarbeiter = new Mitarbeiter($uid);
if($mitarbeiter->errormsg === NULL)
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname, ' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
else
echo $row->nachname;
}
else
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
if($row->aktiv==false)
echo '<span style="color: red"> (ausgeschieden)</span>';
elseif($bisverwendung->beschausmasscode=='5')
+20
View File
@@ -105,6 +105,26 @@ else
$ical->importFreeBusy($doc, 'LVPLAN');
}
//Zeitsperren
$fp = fopen(APP_ROOT.'cis/public/freebusy_zeitsperren.php/'.$uid,'r');
if (!$fp)
{
echo "URL kann nicht geoeffnet werden<br />\n";
}
else
{
$doc = '';
while (!feof($fp))
{
$line = fgets($fp);
$doc.=$line;
}
fclose($fp);
$ical->importFreeBusy($doc, 'Zeitsperren');
}
echo $ical->getFreeBusy();
echo "\nEND:VCALENDAR";
?>
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<title>TestTool - FH Technikum Wien</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
</head>
<body>
+3
View File
@@ -258,6 +258,9 @@ define('STIP_USER_PASSWORD','password');
// Array mit Usern die nicht Kollidieren
define('KOLLISIONSFREIE_USER',serialize(array('_DummyLektor')));
// UID des Dummy Lektors
define('DUMMY_LEKTOR_UID','_DummyLektor');
// Soll der Lageplan am Infoterminal angezeigt werden (true|false)
//define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN', true);
+2 -1
View File
@@ -74,6 +74,7 @@ if(!$error)
$mitarbeiter->titelpre = $_POST['titelpre'];
$mitarbeiter->titelpost = $_POST['titelpost'];
$mitarbeiter->vorname = $_POST['vorname'];
$mitarbeiter->wahlname = $_POST['wahlname'];
$mitarbeiter->vornamen = $_POST['vornamen'];
$mitarbeiter->nachname = $_POST['nachname'];
$mitarbeiter->gebdatum = $_POST['geburtsdatum'];
@@ -181,7 +182,7 @@ if(!$error)
$verwendung->azgrelevant = false;
else
$verwendung->azgrelevant = '';
if($_POST['homeoffice']=='true')
$verwendung->homeoffice = true;
elseif($_POST['homeoffice']=='false')
@@ -85,6 +85,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label value="Vornamen" control="mitarbeiter-detail-textbox-vornamen"/>
<textbox id="mitarbeiter-detail-textbox-vornamen" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
</row>
<row>
<label value="Wahlname" control="mitarbeiter-detail-textbox-wahlname"/>
<textbox id="mitarbeiter-detail-textbox-wahlname" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
</row>
<row <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?>>
<label value="Geburtsdatum" control="mitarbeiter-detail-textbox-geburtsdatum" />
<hbox>
@@ -414,6 +414,7 @@ function MitarbeiterDetailDisableFields(val)
document.getElementById('mitarbeiter-detail-textbox-titelpost').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-nachname').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-vorname').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-wahlname').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-vornamen').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-geburtsdatum').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-geburtsort').disabled=val;
@@ -535,6 +536,7 @@ function MitarbeiterAuswahl()
titelpre=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpre" ));
titelpost=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpost" ));
vorname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vorname" ));
wahlname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wahlname" ));
vornamen=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vornamen" ));
nachname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachname" ));
geburtsdatum=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#geburtsdatum" ));
@@ -576,6 +578,7 @@ function MitarbeiterAuswahl()
document.getElementById('mitarbeiter-detail-textbox-titelpre').value=titelpre;
document.getElementById('mitarbeiter-detail-textbox-titelpost').value=titelpost;
document.getElementById('mitarbeiter-detail-textbox-vorname').value=vorname;
document.getElementById('mitarbeiter-detail-textbox-wahlname').value=wahlname;
document.getElementById('mitarbeiter-detail-textbox-vornamen').value=vornamen;
document.getElementById('mitarbeiter-detail-textbox-nachname').value=nachname;
document.getElementById('mitarbeiter-detail-textbox-geburtsdatum').value=geburtsdatum;
@@ -631,7 +634,7 @@ function MitarbeiterAuswahl()
document.getElementById('mitarbeiter-detail-textbox-alias').value=alias;
// ***** KONTAKTE *****
document.getElementById('mitarbeiter-kontakt').setAttribute('src','kontakt.xul.php?person_id='+person_id);
document.getElementById('mitarbeiter-kontakt').setAttribute('src','kontakt.xul.php?person_id='+person_id+'&'+gettimestamp());
// ***** BETRIEBSMITTEL *****
document.getElementById('mitarbeiter-betriebsmittel').setAttribute('src','betriebsmitteloverlay.xul.php?person_id='+person_id+'&uid='+uid);
@@ -818,6 +821,7 @@ function MitarbeiterSave()
titelpre = document.getElementById('mitarbeiter-detail-textbox-titelpre').value;
titelpost = document.getElementById('mitarbeiter-detail-textbox-titelpost').value;
vorname = document.getElementById('mitarbeiter-detail-textbox-vorname').value;
wahlname = document.getElementById('mitarbeiter-detail-textbox-wahlname').value;
vornamen = document.getElementById('mitarbeiter-detail-textbox-vornamen').value;
nachname = document.getElementById('mitarbeiter-detail-textbox-nachname').value;
geburtsdatum = document.getElementById('mitarbeiter-detail-textbox-geburtsdatum').value;
@@ -873,6 +877,7 @@ function MitarbeiterSave()
req.add('titelpre', titelpre);
req.add('titelpost', titelpost);
req.add('vorname', vorname);
req.add('wahlname', wahlname);
req.add('vornamen', vornamen);
req.add('nachname', nachname);
req.add('geburtsdatum', ConvertDateToISO(geburtsdatum));
@@ -988,6 +993,7 @@ function MitarbeiterDetailgetSpaltenname(id)
if(id=='mitarbeiter-treecol-titelpre') return 'titelpre';
if(id=='mitarbeiter-treecol-vorname') return 'vorname';
if(id=='mitarbeiter-treecol-vornamen') return 'vornamen';
if(id=='mitarbeiter-treecol-wahlname') return 'wahlname';
if(id=='mitarbeiter-treecol-nachname') return 'nachname';
if(id=='mitarbeiter-treecol-titelpost') return 'titelpost';
if(id=='mitarbeiter-treecol-personalnummer') return 'personalnummer';
@@ -111,9 +111,13 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" onclick="MitarbeiterTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-treecol-wahlname" label="Wahlname" flex="1" persist="hidden, width, ordinal" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#wahlname" onclick="MitarbeiterTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-treecol-vornamen" label="Vornamen" flex="1" persist="hidden, width, ordinal" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" onclick="MitarbeiterTreeSort()"/>
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#wahlname" onclick="MitarbeiterTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="mitarbeiter-treecol-titelpost" label="TitelPost" flex="1" persist="hidden, width, ordinal" hidden="true"
class="sortDirectionIndicator"
@@ -208,7 +212,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#wahlname" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
<?php
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
+2
View File
@@ -582,6 +582,7 @@ if(!$error)
$student->titelpre = $_POST['titelpre'];
$student->titelpost = $_POST['titelpost'];
$student->vorname = $_POST['vorname'];
$student->wahlname = $_POST['wahlname'];
$student->vornamen = $_POST['vornamen'];
$student->nachname = $_POST['nachname'];
$student->gebdatum = $_POST['geburtsdatum'];
@@ -735,6 +736,7 @@ if(!$error)
$person->titelpost = $_POST['titelpost'];
$person->vorname = $_POST['vorname'];
$person->vornamen = $_POST['vornamen'];
$person->wahlname = $_POST['wahlname'];
$person->nachname = $_POST['nachname'];
$person->gebdatum = $_POST['geburtsdatum'];
$person->gebort = $_POST['geburtsort'];
@@ -226,17 +226,28 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row>
<label value="Vorsitz" control="student-abschlusspruefung-menulist-vorsitz" />
<menulist id="student-abschlusspruefung-menulist-vorsitz"
xmlns:MITARBEITER_AKTIV="http://www.technikum-wien.at/mitarbeiter/rdf#"
editable="true" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/mitarbeiter/liste"
oninput="StudentAbschlusspruefungMenulistMitarbeiterLoad(this)">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost"
myvalue="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
uri="rdf:*"/>
</menupopup>
<rule MITARBEITER_AKTIV:aktiv='inaktiv'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost ( rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid )"
myvalue="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
uri="rdf:*" style="color: grey;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost ( rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid )"
myvalue="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
<label value="PrueferIn 1" id="student-abschlusspruefung-label-pruefer1" control="student-abschlusspruefung-menulist-pruefer1" />
+79 -27
View File
@@ -95,6 +95,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label value="Vornamen" control="student-detail-textbox-vornamen"/>
<textbox id="student-detail-textbox-vornamen" disabled="true" maxlength="128"/>
</row>
<row>
<label value="Wahlname" control="student-detail-textbox-wahlname"/>
<textbox id="student-detail-textbox-wahlname" disabled="true" maxlength="128"/>
</row>
<row>
<label value="Geburtsdatum" control="student-detail-textbox-geburtsdatum"/>
<hbox>
@@ -303,17 +307,14 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<menuitem label="Status vorrücken" oncommand="StudentPrestudentRolleVorruecken();" id="student-prestudent-rolle-tree-popup-move_forward" hidden="false"/>
</menupopup>
</popupset>
<vbox hidden="true">
<label value="Neu"/>
<checkbox id="student-prestudent-checkbox-new" checked="false" />
<label value="Person_id"/>
<textbox id="student-prestudent-textbox-person_id" disabled="true"/>
<label value="Prestudent_id"/>
<textbox id="student-prestudent-textbox-prestudent_id" disabled="true"/>
<label value="studiengang_kz"/>
<textbox id="student-prestudent-textbox-studiengang_kz" disabled="true"/>
</vbox>
<hbox hidden="true">
<toolbox flex="1">
<label value="Neu"/>
<checkbox id="student-prestudent-checkbox-new" checked="false" />
<label value="studiengang_kz"/>
<textbox id="student-prestudent-textbox-studiengang_kz"/>
</toolbox>
</hbox>
<groupbox id="student-detail-groupbox-zgv">
<caption id="student-detail-groupbox-caption" label="Zugangsvoraussetzung" />
<grid id="student-prestudent-grid-zgv" style="margin:4px;" flex="1">
@@ -330,18 +331,44 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<column flex="1"/>
</columns>
<rows>
<?php
$hidden = 'hidden="true"';
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if($rechte->isBerechtigt('admin'))
$hidden = '';
?>
<row <?php echo $hidden ?>>
<label value="Prestudent_id"/>
<hbox><textbox id="student-prestudent-textbox-prestudent_id" readonly="true" maxlength="16" size="16"/></hbox>
<label value="Person_id"/>
<hbox><textbox id="student-prestudent-textbox-person_id" readonly="true" maxlength="16" size="16"/></hbox>
</row>
<row>
<label value="ZGV" control="student-prestudent-menulist-zgvcode"/>
<menulist id="student-prestudent-menulist-zgvcode" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/zgv.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/zgv/alle"
xmlns:ZGV="http://www.technikum-wien.at/zgv/rdf#"
style="min-width: 130px">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
uri="rdf:*"/>
<rule ZGV:aktiv='f'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
uri="rdf:*"
style="text-decoration:line-through;"
/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
uri="rdf:*"
/>
</menupopup>
</rule>
</template>
</menulist>
<label value="ZGV Ort" control="student-prestudent-textbox-zgvort"/>
@@ -392,14 +419,26 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<menulist id="student-prestudent-menulist-zgvmastercode" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/zgvmaster.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/zgvmaster/alle"
xmlns:ZGVMASTER="http://www.technikum-wien.at/zgvmaster/rdf#"
style="min-width: 130px" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
uri="rdf:*"
/>
</menupopup>
<rule ZGVMASTER:aktiv='f'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
uri="rdf:*"
style="text-decoration:line-through;"
/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
uri="rdf:*"
/>
</menupopup>
</rule>
</template>
</menulist>
<label value="ZGV Master Ort" control="student-prestudent-textbox-zgvmasterort"/>
@@ -452,13 +491,26 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label value="ZGV Doktor" control="student-prestudent-menulist-zgvdoktorcode"/>
<menulist id="student-prestudent-menulist-zgvdoktorcode" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/zgvdoktor.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/zgvdoktor/alle" >
ref="http://www.technikum-wien.at/zgvdoktor/alle"
xmlns:ZGVDOKTOR="http://www.technikum-wien.at/zgvdoktor/rdf#">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
uri="rdf:*"/>
</menupopup>
<rule ZGVDOKTOR:aktiv='f'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
uri="rdf:*"
style="text-decoration:line-through;"
/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
uri="rdf:*"
/>
</menupopup>
</rule>
</template>
</menulist>
<label value="ZGV Doktor Ort" control="student-prestudent-textbox-zgvdoktorort"/>
+6 -1
View File
@@ -131,7 +131,7 @@ else
echo '<menuitem label="Student" oncommand="StudentUnterbrecherZuStudent()" disabled="false" tooltiptext="Status ändern auf Student"/>';
if ($id == 'interessent-toolbar-zustudent')
echo '<menuitem label="Student" oncommand="InteressentzuStudent()" disabled="false" tooltiptext="Status ändern auf Student"/>';
foreach($gruende[$status_kurzbz] as $row)
{
$commandWithID = str_replace('STATUSGRUNDID',$row['statusgrund_id'],$command);
@@ -270,6 +270,10 @@ else
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#vorname" onclick="StudentTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="student-treecol-wahlname" label="Wahlname" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#wahlname" onclick="StudentTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="student-treecol-vornamen" label="Vornamen" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#vornamen" onclick="StudentTreeSort()"/>
@@ -436,6 +440,7 @@ else
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#titelpre" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#nachname" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#vorname" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#wahlname" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#vornamen" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#titelpost" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#svnr" />
+6
View File
@@ -727,6 +727,7 @@ function StudentDetailReset()
document.getElementById('student-detail-textbox-titelpre').value='';
document.getElementById('student-detail-textbox-titelpost').value='';
document.getElementById('student-detail-textbox-vorname').value='';
document.getElementById('student-detail-textbox-wahlname').value='';
document.getElementById('student-detail-textbox-vornamen').value='';
document.getElementById('student-detail-textbox-nachname').value='';
document.getElementById('student-detail-textbox-geburtsdatum').value='';
@@ -759,6 +760,7 @@ function StudentDetailDisableFields(val)
document.getElementById('student-detail-textbox-titelpre').disabled=val;
document.getElementById('student-detail-textbox-titelpost').disabled=val;
document.getElementById('student-detail-textbox-vorname').disabled=val;
document.getElementById('student-detail-textbox-wahlname').disabled=val;
document.getElementById('student-detail-textbox-vornamen').disabled=val;
document.getElementById('student-detail-textbox-nachname').disabled=val;
document.getElementById('student-detail-textbox-geburtsdatum').disabled=val;
@@ -799,6 +801,7 @@ function StudentDetailSave()
titelpre = document.getElementById('student-detail-textbox-titelpre').value;
titelpost = document.getElementById('student-detail-textbox-titelpost').value;
vorname = document.getElementById('student-detail-textbox-vorname').value;
wahlname = document.getElementById('student-detail-textbox-wahlname').value;
vornamen = document.getElementById('student-detail-textbox-vornamen').value;
nachname = document.getElementById('student-detail-textbox-nachname').value;
geburtsdatum = document.getElementById('student-detail-textbox-geburtsdatum').value;
@@ -857,6 +860,7 @@ function StudentDetailSave()
req.add('titelpre', titelpre);
req.add('titelpost', titelpost);
req.add('vorname', vorname);
req.add('wahlname', wahlname);
req.add('vornamen', vornamen);
req.add('nachname', nachname);
req.add('geburtsdatum', ConvertDateToISO(geburtsdatum));
@@ -1104,6 +1108,7 @@ function StudentAuswahl()
titelpre=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpre" ));
titelpost=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpost" ));
vorname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vorname" ));
wahlname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wahlname" ));
vornamen=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vornamen" ));
nachname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachname" ));
geburtsdatum=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#geburtsdatum" ));
@@ -1147,6 +1152,7 @@ function StudentAuswahl()
document.getElementById('student-detail-textbox-titelpre').value=titelpre;
document.getElementById('student-detail-textbox-titelpost').value=titelpost;
document.getElementById('student-detail-textbox-vorname').value=vorname;
document.getElementById('student-detail-textbox-wahlname').value=wahlname;
document.getElementById('student-detail-textbox-vornamen').value=vornamen;
document.getElementById('student-detail-textbox-nachname').value=nachname;
document.getElementById('student-detail-textbox-geburtsdatum').value=geburtsdatum;
+3 -3
View File
@@ -306,7 +306,7 @@ class OLE extends PEAR
{
$rawname = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$rawname .= $ascii{$i}."\x00";
$rawname .= $ascii[$i]."\x00";
}
return $rawname;
}
@@ -378,7 +378,7 @@ class OLE extends PEAR
$high_part = 0;
for ($i=0; $i<4; $i++)
{
$al = unpack('C', $string{(7 - $i)});
$al = unpack('C', $string[(7 - $i)]);
$high_part += $al[''];
if ($i < 3) {
$high_part *= 0x100;
@@ -387,7 +387,7 @@ class OLE extends PEAR
$low_part = 0;
for ($i=4; $i<8; $i++)
{
$al = unpack('C', $string{(7 - $i)});
$al = unpack('C', $string[(7 - $i)]);
$low_part += $al[''];
if ($i < 7) {
$low_part *= 0x100;
+7 -7
View File
@@ -1084,7 +1084,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
$col = 0;
$col_ref_length = strlen($col_ref);
for ($i = 0; $i < $col_ref_length; $i++) {
$col += (ord($col_ref{$i}) - ord('A') + 1) * pow(26, $expn);
$col += (ord($col_ref[$i]) - ord('A') + 1) * pow(26, $expn);
$expn--;
}
@@ -1106,20 +1106,20 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
$formula_length = strlen($this->_formula);
// eat up white spaces
if ($i < $formula_length) {
while ($this->_formula{$i} == " ") {
while ($this->_formula[$i] == " ") {
$i++;
}
if ($i < ($formula_length - 1)) {
$this->_lookahead = $this->_formula{$i+1};
$this->_lookahead = $this->_formula[$i+1];
}
$token = '';
}
while ($i < $formula_length) {
$token .= $this->_formula{$i};
$token .= $this->_formula[$i];
if ($i < ($formula_length - 1)) {
$this->_lookahead = $this->_formula{$i+1};
$this->_lookahead = $this->_formula[$i+1];
} else {
$this->_lookahead = '';
}
@@ -1134,7 +1134,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
}
if ($i < ($formula_length - 2)) {
$this->_lookahead = $this->_formula{$i+2};
$this->_lookahead = $this->_formula[$i+2];
} else { // if we run out of characters _lookahead becomes empty
$this->_lookahead = '';
}
@@ -1282,7 +1282,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
{
$this->_current_char = 0;
$this->_formula = $formula;
$this->_lookahead = $formula{1};
$this->_lookahead = $formula[1];
$this->_advance();
$this->_parse_tree = $this->_condition();
if (PEAR::isError($this->_parse_tree)) {
+4 -1
View File
@@ -315,7 +315,7 @@ class benutzer extends person
$qry = "SELECT * FROM (
SELECT
distinct on (uid) vorname, nachname, uid, mitarbeiter_uid, personalnummer, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv, anrede,
distinct on (uid) vorname, nachname, wahlname, uid, mitarbeiter_uid, personalnummer, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv, anrede,
(SELECT UPPER
(tbl_studiengang.typ || tbl_studiengang.kurzbz)
FROM public.tbl_student
@@ -356,6 +356,8 @@ class benutzer extends person
$qry.=" (lower(vorname || ' ' || nachname) ~* lower(".$this->db_add_param($searchItems_string).")";
$qry.=" OR lower(nachname || ' ' || vorname) ~* lower(".$this->db_add_param($searchItems_string).")";
$qry.=" OR lower(nachname || ' ' || wahlname) ~* lower(".$this->db_add_param($searchItems_string).")";
$qry.=" OR lower(wahlname || ' ' || nachname) ~* lower(".$this->db_add_param($searchItems_string).")";
$qry.=" OR lower(uid) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
$qry.=" OR lower(telefonklappe) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
@@ -376,6 +378,7 @@ class benutzer extends person
$obj->titelpre = $row->titelpre;
$obj->vorname = $row->vorname;
$obj->wahlname = $row->wahlname;
$obj->nachname = $row->nachname;
$obj->titelpost = $row->titelpost;
$obj->uid = $row->uid;
+1 -1
View File
@@ -109,7 +109,7 @@ class ical extends basis_db
$dtend='';
}
}
elseif($typ=='SoGo')
elseif($typ=='SoGo' || $typ=='Zeitsperren')
{
if(mb_strstr($row,'FREEBUSY'))
{
+16 -2
View File
@@ -200,7 +200,7 @@ class LehreListHelper
//Studierende der LV laden und in ein Array schreiben
$qry = 'SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid,
distinct on(nachname, vorname, person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus
WHERE prestudent_id=tbl_student.prestudent_id
@@ -276,10 +276,24 @@ class LehreListHelper
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student
$zusatz .= '(d.d.)';
if(($row->wahlname != ''))
{
//als Zusatz speichern
//$zusatz .= '(Wahlname: ' . $row->wahlname . ')';
//wenn vorhanden statt Vornamen anzeigen
$vorname = $row->wahlname;
}
else
{
$vorname = $row->vorname;
}
$this->studentuids[] = $row->student_uid;
$this->data[]=array('student'=>array(
'uid' => $row->student_uid,
'vorname'=>$row->vorname,
'vorname'=>$vorname,
'nachname'=>$row->nachname,
'personenkennzeichen'=>trim($row->matrikelnr),
'matr_nr'=>$row->matr_nr,
+22 -4
View File
@@ -319,7 +319,7 @@ class mitarbeiter extends benutzer
*/
public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null)
{
$sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
$sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, wahlname, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
homepage, campus.vw_mitarbeiter.updateamum, campus.vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
LEFT OUTER JOIN public.tbl_benutzerfunktion USING (uid)
WHERE TRUE';
@@ -364,6 +364,7 @@ class mitarbeiter extends benutzer
$l->titelpre=$row->titelpre;
$l->titelpost=$row->titelpost;
$l->vorname=$row->vorname;
$l->wahlname=$row->wahlname;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
@@ -475,6 +476,7 @@ class mitarbeiter extends benutzer
$l->titelpre=$row->titelpre;
$l->titelpost=$row->titelpost;
$l->vorname=$row->vorname;
$l->wahlname=$row->wahlname;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
@@ -601,7 +603,7 @@ class mitarbeiter extends benutzer
return false;
}
$qry = "SELECT uid, vorname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter, lehre.tbl_lehreinheit
$qry = "SELECT uid, vorname, wahlname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter, lehre.tbl_lehreinheit
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND mitarbeiter_uid=uid AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id;";
if($this->db_query($qry))
@@ -616,6 +618,7 @@ class mitarbeiter extends benutzer
$obj->titelpre = $row->titelpre;
$obj->titelpost = $row->titelpost;
$obj->kurzbz = $row->kurzbz;
$obj->wahlname = $row->wahlname;
$obj->vornamen = $row->vornamen;
$this->result[] = $obj;
@@ -752,6 +755,7 @@ class mitarbeiter extends benutzer
$obj->titelpre = $row->titelpre;
$obj->nachname = $row->nachname;
$obj->vorname = $row->vorname;
$obj->wahlname = $row->wahlname;
$obj->vornamen = $row->vornamen;
$obj->gebdatum = $row->gebdatum;
$obj->gebort = $row->gebort;
@@ -833,7 +837,12 @@ class mitarbeiter extends benutzer
*/
public function getMitarbeiterFilter($filter)
{
$qry = "SELECT * FROM campus.vw_mitarbeiter WHERE lower(nachname) ~* lower(".$this->db_add_param($filter).") OR uid ~* ".$this->db_add_param($filter);
$qry = "SELECT * FROM campus.vw_mitarbeiter
WHERE lower(nachname) ~* lower(".$this->db_add_param($filter).")
OR lower(wahlname) ~* lower(".$this->db_add_param($filter).")
--OR lower(wahlname || ' ' || nachname) like lower(".$this->db_add_param($filter).")
--OR lower(nachname || ' ' || wahlname) like lower(".$this->db_add_param($filter).")
OR uid ~* ".$this->db_add_param($filter);
$qry .= " ORDER BY nachname, vorname, kurzbz;";
if($this->db_query($qry))
@@ -849,6 +858,7 @@ class mitarbeiter extends benutzer
$obj->titelpost = $row->titelpost;
$obj->kurzbz = $row->kurzbz;
$obj->vornamen = $row->vornamen;
$obj->wahlname = $row->wahlname;
$obj->aktiv =$this->db_parse_bool($row->aktiv);
$obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
@@ -871,14 +881,17 @@ class mitarbeiter extends benutzer
*/
public function search($filter, $limit=null, $aktiv=true, $positivePersonalnr=false)
{
$qry = "SELECT vorname, nachname, titelpre, titelpost, kurzbz, vornamen, uid
$qry = "SELECT vorname, nachname, titelpre, titelpost, kurzbz, vornamen, wahlname, uid
FROM campus.vw_mitarbeiter
WHERE
lower(nachname) like lower('%".$this->db_escape($filter)."%')
OR lower(uid) like lower('%".$this->db_escape($filter)."%')
OR lower(vorname) like lower('%".$this->db_escape($filter)."%')
OR lower(wahlname) like lower('%".$this->db_escape($filter)."%')
OR lower(vorname || ' ' || nachname) like lower('%".$this->db_escape($filter)."%')
OR lower(nachname || ' ' || vorname) like lower('%".$this->db_escape($filter)."%')
OR lower(wahlname || ' ' || nachname) like lower('%".$this->db_escape($filter)."%')
OR lower(nachname || ' ' || wahlname) like lower('%".$this->db_escape($filter)."%')
ORDER BY nachname, vorname";
if(!is_null($limit) && is_numeric($limit))
@@ -897,6 +910,7 @@ class mitarbeiter extends benutzer
$obj->titelpost = $row->titelpost;
$obj->kurzbz = $row->kurzbz;
$obj->vornamen = $row->vornamen;
$obj->wahlname = $row->wahlname;
$this->result[] = $obj;
}
@@ -931,6 +945,8 @@ class mitarbeiter extends benutzer
JOIN public.tbl_person USING(person_id)
WHERE lower(COALESCE(nachname,'') ||' '|| COALESCE(vorname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
lower(COALESCE(vorname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
lower(COALESCE(wahlname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
lower(COALESCE(nachname,'') ||' '|| COALESCE(wahlname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
uid ~* ".$this->db_add_param($filter)." ";
if(is_numeric($filter))
$qry.="OR personalnummer = ".$this->db_add_param($filter)." OR svnr = ".$this->db_add_param($filter).";";
@@ -950,6 +966,7 @@ class mitarbeiter extends benutzer
$obj->titelpre = $row->titelpre;
$obj->nachname = $row->nachname;
$obj->vorname = $row->vorname;
$obj->wahlname = $row->wahlname;
$obj->vornamen = $row->vornamen;
$obj->gebdatum = $row->gebdatum;
$obj->gebort = $row->gebort;
@@ -1509,6 +1526,7 @@ class mitarbeiter extends benutzer
$obj->titelpre = $row->titelpre;
$obj->nachname = $row->nachname;
$obj->vorname = $row->vorname;
$obj->wahlname = $row->wahlname;
$obj->vornamen = $row->vornamen;
$obj->gebdatum = $row->gebdatum;
$obj->gebort = $row->gebort;
+14 -4
View File
@@ -66,6 +66,7 @@ class person extends basis_db
public $matr_nr; //varchar(32)
public $bpk; //varchar(255)
public $udf_values; //json
public $wahlname;
/**
* Konstruktor - Uebergibt die Connection und laedt optional eine Person
@@ -95,7 +96,7 @@ class person extends basis_db
gebdatum, gebort, gebzeit, foto, anmerkung, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id,
geschlecht, staatsbuergerschaft, geburtsnation, kurzbeschreibung, zugangscode, foto_sperre,
matr_nr, bpk";
matr_nr, bpk, wahlname";
if ($hasUDF = $udf->personHasUDF())
$qry .= ", udf_values ";
@@ -142,6 +143,7 @@ class person extends basis_db
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
$this->matr_nr = $row->matr_nr;
$this->bpk = $row->bpk;
$this->wahlname = $row->wahlname;
if ($hasUDF)
{
$this->udf_values = $row->udf_values;
@@ -441,7 +443,7 @@ class person extends basis_db
gebdatum, gebort, gebzeit, foto, anmerkung, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon,
geschlecht, geburtsnation, staatsbuergerschaft, kurzbeschreibung, zugangscode,
foto_sperre, matr_nr, bpk)
foto_sperre, matr_nr, bpk, wahlname)
VALUES('.$this->db_add_param($this->sprache).','.
$this->db_add_param($this->anrede).','.
$this->db_add_param($this->titelpost).','.
@@ -471,7 +473,8 @@ class person extends basis_db
$this->db_add_param($this->zugangscode).','.
$this->db_add_param($this->foto_sperre, FHC_BOOLEAN).','.
$this->db_add_param($this->matr_nr).','.
$this->db_add_param($this->bpk).');';
$this->db_add_param($this->bpk).','.
$this->db_add_param($this->wahlname).');';
}
else
{
@@ -510,7 +513,8 @@ class person extends basis_db
' foto_sperre='.$this->db_add_param($this->foto_sperre, FHC_BOOLEAN).','.
' zugangscode='.$this->db_add_param($this->zugangscode).','.
' matr_nr ='.$this->db_add_param($this->matr_nr).','.
' bpk = '.$this->db_add_param($this->bpk).
' bpk = '.$this->db_add_param($this->bpk).','.
' wahlname = '.$this->db_add_param($this->wahlname).
' WHERE person_id='.$this->person_id.';';
}
@@ -568,6 +572,8 @@ class person extends basis_db
UPPER (vorname) ~* UPPER(".$this->db_add_param($filter).") OR
UPPER (nachname || ' ' || vorname) ~* UPPER(".$this->db_add_param($filter).") OR
UPPER (vorname || ' ' || nachname) ~* UPPER(".$this->db_add_param($filter).") OR
UPPER (nachname || ' ' || wahlname) ~* UPPER(".$this->db_add_param($filter).") OR
UPPER (wahlname || ' ' || nachname) ~* UPPER(".$this->db_add_param($filter).") OR
uid=".$this->db_add_param($filter);
}
@@ -611,6 +617,7 @@ class person extends basis_db
$l->foto_sperre = $this->db_parse_bool($row->foto_sperre);
$l->matr_nr = $row->matr_nr;
$l->bpk = $row->bpk;
$l->wahlname = $row->wahlname;
$this->personen[] = $l;
}
}
@@ -684,6 +691,7 @@ class person extends basis_db
$adrObj->nachname = $row->nachname;
$adrObj->vorname = $row->vorname;
$adrObj->vornamen = $row->vornamen;
$adrObj->wahlname = $row->wahlname;
$adrObj->gebdatum = $row->gebdatum;
$adrObj->gebort = $row->gebort;
$adrObj->gebzeit = $row->gebzeit;
@@ -868,6 +876,7 @@ class person extends basis_db
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
$this->matr_nr = $row->matr_nr;
$this->bpk = $row->bpk;
$this->wahlname = $row->wahlname;
}
else
{
@@ -986,6 +995,7 @@ class person extends basis_db
$this->updateaktivam = $row->updateaktivam;
$this->aktivierungscode = $row->aktivierungscode;
$this->bpk = $row->bpk;
$this->wahlname = $row->wahlname;
return true;
}
else
+76
View File
@@ -2542,4 +2542,80 @@ class prestudent extends person
return false;
}
}
/**
* Prueft, ob eine Person offene Bewerbungen besitzt
* @param int $person_id ID der zu überprüfenden Person.
* @return true wenn vorhanden, false wenn nicht vorhanden
*/
public function existsOffeneBewerbung($person_id)
{
if (!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$db = new basis_db();
$qry = "SELECT
prestudent_id
FROM
tbl_prestudent ps
WHERE
person_id = ".$this->db_add_param($person_id)."
And
get_rolle_prestudent(prestudent_id, null) in ('Interessent','Bewerber','Aufgenommener','Wartender');";
if ($db->db_query($qry))
{
$num_rows = $db->db_num_rows();
if ($num_rows > 0)
{
return true;
}
else
return false;
}
else
return false;
}
/**
* Prueft, ob es sich um einen Student / Unterbrecher handelt
* @param int $person_id ID der zu überprüfenden Person.
* @return true wenn zutreffend, false wenn nicht zutreffend
*/
public function isStudent($person_id)
{
if (!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$db = new basis_db();
$qry = "SELECT
prestudent_id
FROM
tbl_prestudent ps
WHERE
person_id = ".$this->db_add_param($person_id)."
And
get_rolle_prestudent(prestudent_id, null) in ('Student','Unterbrecher');";
if ($db->db_query($qry))
{
$num_rows = $db->db_num_rows();
if ($num_rows > 0)
{
return true;
}
else
return false;
}
else
return false;
}
}
+8 -1
View File
@@ -524,6 +524,14 @@ class statistik extends basis_db
}
foreach($_REQUEST as $name=>$value)
{
// Inputs, die in eckigen Klammern stehen, werden als Array interpretiert
if (substr($value, 0, 1) == '[' && substr($value, -1) == ']')
{
//Eckige Klammern entfernen und String aufsplitten
$value = substr($value, 1);
$value = substr($value, 0, -1);
$value = explode(',', $value);
}
if (is_array($value))
{
$in = $this->db_implode4SQL($value);
@@ -532,7 +540,6 @@ class statistik extends basis_db
else
$sql = str_replace('$'.$name,$this->db_add_param($value),$sql);
}
if($this->data = $this->db_query($sql))
{
$this->html.= '<thead><tr>';
+27
View File
@@ -531,6 +531,33 @@ class student extends benutzer
}
}
/**
* Check, ob inputparameter gültige studenten_id ist
* @param matrikelnummer oder student_uid
* @return ok, wenn gültige Id, sonst false
*/
public function checkIfValidStudentUID($uid)
{
$qry = "SELECT student_uid FROM public.tbl_student WHERE student_uid=".$this->db_add_param($uid);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
return true;
}
else
{
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt die UID anhand der Matrikelnummer
* @param matrikelnummer
+23 -10
View File
@@ -952,21 +952,34 @@ class studienplan extends basis_db
/**
* Laedt die Studienplaene zu denen eine Lehrveranstaltung zugeordnet ist
*/
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz)
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz = null)
{
$qry= "
SELECT
distinct tbl_studienplan.*
DISTINCT tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id)
lehre.tbl_studienplan
JOIN lehre.tbl_studienplan_lehrveranstaltung
USING(studienplan_id)
WHERE
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
AND EXISTS (
SELECT 1 FROM lehre.tbl_studienplan_semester
WHERE studienplan_id=tbl_studienplan.studienplan_id
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND semester = tbl_studienplan_lehrveranstaltung.semester)
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id IN (
SELECT
lv.lehrveranstaltung_id
FROM
lehre.tbl_lehrveranstaltung AS lv
LEFT JOIN lehre.tbl_lehrveranstaltung AS t ON t.lehrveranstaltung_id=lv.lehrveranstaltung_template_id
WHERE
lv.lehrtyp_kurzbz<>'tpl'
AND (lv.lehrveranstaltung_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " OR (lv.lehrveranstaltung_template_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " AND t.lehrtyp_kurzbz='tpl'))
)
AND EXISTS (
SELECT 1
FROM
lehre.tbl_studienplan_semester
WHERE studienplan_id=tbl_studienplan.studienplan_id".
($studiensemester_kurzbz != null ? "
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz) : "")."
AND semester = tbl_studienplan_lehrveranstaltung.semester)
ORDER BY bezeichnung";
if($result = $this->db_query($qry))
+1 -1
View File
@@ -940,7 +940,7 @@ or not exists
$tagessaldo = $tagessaldo - $pausesumme;
//check if blocking error
if (($tagessaldo > 19800 && $pausesumme < 1800) || ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000))
if (($tagessaldo >= 19800 && $pausesumme < 1800) || ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000))
{
$blockingError = true;
}
+1 -1
View File
@@ -170,7 +170,7 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Eingetragene Noten';
$this->phrasen['benotungstool/zeunis']='Zeugnis';
$this->phrasen['benotungstool/handbuch']='Handbuch';
$this->phrasen['benotungstool/punkte']='Punkte';
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste und fügen Sie diese in folgendes Feld ein';
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
$this->phrasen['benotungstool/pruefung']='Prüfung';
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
+2
View File
@@ -6,6 +6,8 @@ $this->phrasen['freebusy/aktiv']='Aktiv';
$this->phrasen['freebusy/PfadZuFreebusyUrl']='Ihre Freebusy URL ist unter folgendem Link erreichbar:';
$this->phrasen['freebusy/LVPlanBezeichnung']='Persönlicher LVPlan';
$this->phrasen['freebusy/LVPlanTyp']='LVPlan';
$this->phrasen['freebusy/ZeitsperrenBezeichnung']='Meine Zeitsperren';
$this->phrasen['freebusy/ZeitsperrenTyp']='Zeitsperren';
$this->phrasen['freebusy/neuerEintrag']='Neuen Eintrag hinzufügen';
$this->phrasen['freebusy/beschreibungstext1']='Auf dieser Seite können Sie verschiedene externe FreeBusy Informationen zu Ihrer persönlichen FreeBusy URL zusammenfassen. <br>
Diese wird z.B. für das hausinterne "Coodle" herangezogen.<br><br>
+1
View File
@@ -71,6 +71,7 @@ $this->phrasen['global/aenderungenZuruecksetzen']= "&Auml;nderungen zur&uuml;cks
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='Vorname';
$this->phrasen['global/nachname']='Nachname';
$this->phrasen['global/wahlname']='Wahlname';
$this->phrasen['global/anrede']='Anrede';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
+1 -1
View File
@@ -169,7 +169,7 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Submitted Grades';
$this->phrasen['benotungstool/zeunis']='Transcript';
$this->phrasen['benotungstool/handbuch']='Handbook';
$this->phrasen['benotungstool/punkte']='Points';
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list and insert them in the following field';
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list (or "student ID number" and "grade" from the moodle export file) and insert them in the following field';
$this->phrasen['benotungstool/pruefung']='Examination';
$this->phrasen['benotungstool/notenlisteImport']='Grade list for the subject grade import (Excel)';
$this->phrasen['benotungstool/geaenderteNotenVorhanden']='There are changed grades. Please send the changes to the assistant by clicking "Approval"';
+5 -3
View File
@@ -6,13 +6,15 @@ $this->phrasen['freebusy/aktiv']='Active';
$this->phrasen['freebusy/PfadZuFreebusyUrl']='Your Freebusy URL can be accessed at:';
$this->phrasen['freebusy/LVPlanBezeichnung']='Personal schedule';
$this->phrasen['freebusy/LVPlanTyp']='Schedule';
$this->phrasen['freebusy/ZeitsperrenBezeichnung']='My Planned Absences';
$this->phrasen['freebusy/ZeitsperrenTyp']='Absences';
$this->phrasen['freebusy/neuerEintrag']='Add a new Entry';
$this->phrasen['freebusy/beschreibungstext1']='On this page you can combine different external FreeBusy information to create your personal FreeBusy URL.<br>
This is used for example for the in-house "Coodle".<br><br>
This is used for example for the in-house "Coodle".<br><br>
FreeBusy is a function that allows you to see when others are free or busy (without revealing sensitive details such as the appointment titles or content).<br>
This tool allows you and your colleagues to efficiently schedule meetings.<br><br>
This tool allows you and your colleagues to efficiently schedule meetings.<br><br>
To effectively use your FreeBusy URL it is necessary to carefully enter and update your calendar data.<br>
In general, you can enter the times that you are available or busy in a web calendar for both entire calendars as well as individual appointments.<br><br>
In general, you can enter the times that you are available or busy in a web calendar for both entire calendars as well as individual appointments.<br><br>
<b>Examples:</b>
<i>If I enter the vacations of my colleagues, it makes sense to add them to a separate calendar that is not included in MY availability.<br>
Any notes that I add to my personal calendar should also be marked as "available", unless I am actually busy for that time period.</i><br>';
+1
View File
@@ -70,6 +70,7 @@ $this->phrasen['global/aenderungenZuruecksetzen']= "Reset changes";
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='First Name';
$this->phrasen['global/nachname']='Last Name';
$this->phrasen['global/wahlname']='Name of Choice';
$this->phrasen['global/anrede']='Title';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
@@ -104,3 +104,7 @@
display: inline-block
}
}
.gesperrtoption {
color: gray;
}
+110 -52
View File
@@ -7,58 +7,7 @@ $(document).ready(function ()
var personid = $("#hiddenpersonid").val();
//add click events to "formal geprüft" checkboxes
$(".prchbox").click(function ()
{
var boxid = this.id;
var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid);
var checked = this.checked;
DocUeberpruefung.saveFormalGeprueft(personid, akteid, checked)
});
$('select.aktenid').change(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var typ = $(this).val();
DocUeberpruefung.saveDocTyp(personid, akteid, typ);
});
$('.nachreichungInfos').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
DocUeberpruefung.checkNachreichungInputs(akteid);
});
$('.nachreichungAbbrechen').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
DocUeberpruefung.checkNachreichungInputs(akteid);
});
$('.nachreichungSpeichern').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var typ = $('#aktenid_' + akteid).val();
var nachreichungAm = $('#nachreichungAm_' + akteid).val();
var nachreichungAnmerkung = $('#nachreichungAnmerkung_' + akteid).val();
if(nachreichungAm === '')
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'));
return false;
}
var regEx = /^\d{2}\.\d{2}\.(\d{2}|\d{4})$/;
if(nachreichungAm.match(regEx) === null)
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'))
return false;
}
DocUeberpruefung.saveNachreichung(personid, nachreichungAm, nachreichungAnmerkung, typ);
})
DocUeberpruefung._addDocUeberpruefungEvents(personid)
});
var DocUeberpruefung = {
@@ -158,6 +107,33 @@ var DocUeberpruefung = {
);
},
deleteDoc: function(personid, akteid)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + "/deleteDoc/" + encodeURIComponent(personid),
{
"akteid": akteid
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isSuccess(data))
{
DocUeberpruefung._refreshUbersichtDoks();
InfocenterDetails._refreshLog();
}
else
{
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
}
},
errorCallback: function(data)
{
FHC_DialogLib.alertWarning("Fehler beim Speichern!");
}
}
);
},
checkNachreichungInputs: function(akteid)
{
var inputs = $('#nachreichungInputs_' + akteid);
@@ -197,6 +173,19 @@ var DocUeberpruefung = {
}
},
_refreshUbersichtDoks: function()
{
var personid = $("#hiddenpersonid").val();
$("#uebersichtDoks").load(
CONTROLLER_URL + '/reloadUebersichtDoks/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'),
function () {
DocUeberpruefung._formatDocTable();
DocUeberpruefung._addDocUeberpruefungEvents(personid);
}
);
},
_refreshNachzureichendeDoks: function()
{
var personid = $("#hiddenpersonid").val();
@@ -205,10 +194,79 @@ var DocUeberpruefung = {
CONTROLLER_URL + '/reloadDoks/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'),
function () {
DocUeberpruefung._formatDocTable();
DocUeberpruefung._addDocUeberpruefungEvents(personid);
}
);
},
_addDocUeberpruefungEvents: function(personid)
{
//add click events to "formal geprüft" checkboxes
$(".prchbox").click(function ()
{
var boxid = this.id;
var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid);
var checked = this.checked;
DocUeberpruefung.saveFormalGeprueft(personid, akteid, checked)
});
$('select.aktenid').change(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var typ = $(this).val();
DocUeberpruefung.saveDocTyp(personid, akteid, typ);
});
$('.nachreichungInfos').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
DocUeberpruefung.checkNachreichungInputs(akteid);
});
$('.nachreichungAbbrechen').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
DocUeberpruefung.checkNachreichungInputs(akteid);
});
$('.nachreichungSpeichern').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var typ = $('#aktenid_' + akteid).val();
var nachreichungAm = $('#nachreichungAm_' + akteid).val();
var nachreichungAnmerkung = $('#nachreichungAnmerkung_' + akteid).val();
if(nachreichungAm === '')
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'));
return false;
}
var regEx = /^\d{2}\.\d{2}\.(\d{2}|\d{4})$/;
if(nachreichungAm.match(regEx) === null)
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'))
return false;
}
DocUeberpruefung.saveNachreichung(personid, nachreichungAm, nachreichungAnmerkung, typ);
})
$('.dokLoeschen').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var confirmed = confirm('Wollen Sie sicher das Dokument des Dokumentypens: ' + $('#aktenid_' + akteid).find(':selected').text() + ' löschen?');
if (confirmed)
{
DocUeberpruefung.deleteDoc(personid, akteid);
}
});
},
_formatDocTable: function()
{
Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
+2 -2
View File
@@ -543,8 +543,8 @@ var InfocenterDetails = {
var prestudentdata = prestudentresponse.retval;
var prestudent_id = freigabedata.prestudent_id;
var statusgrund_id = freigabedata.statusgrund_id;
var prestudent_id = parseInt(freigabedata.prestudent_id);
var statusgrund_id = parseInt(freigabedata.statusgrund_id);
var rtfreigabe = !$.isNumeric(statusgrund_id);//no Statusgrund - RT Freigabe
var rtFreigegeben = false;
+46 -36
View File
@@ -34,11 +34,10 @@ var InfocenterPersonDataset = {
var auswahlStudienart =
'<select class="form-control auswahlStudienArt" style="width:auto;">' +
'<option data-id="all"> Alle </option>' +
'<option data-id="master"> Master </option>' +
'<option data-id="bachelor"> Bachelor </option>' +
'</select>';
InfocenterPersonDataset.getStudienartData(infocenter_studiengangstyp);
var auswahlAbsageToggle =
'<a class="absageToggle">Erweiterte Einstellungen</a>';
@@ -90,11 +89,9 @@ var InfocenterPersonDataset = {
"<div class='h-divider'></div><hr class='studiensemesterline'>"
);
InfocenterPersonDataset.selectStudiengangTyp(infocenter_studiengangstyp)
$('.auswahlStudienArt').change(function()
{
InfocenterPersonDataset.changeStudengangsTyp($(this).find('option:selected').attr('data-id'));
InfocenterPersonDataset.changeStudengangsTyp($(this).find('option:selected').val());
});
$("#datasetActionsBottom").append(
@@ -183,22 +180,6 @@ var InfocenterPersonDataset = {
);
},
selectStudiengangTyp: function(typ)
{
switch (typ)
{
case 'b, m' :
$('.auswahlStudienArt [data-id="all"]').attr('selected', 'selected');
break;
case 'b' :
$('.auswahlStudienArt [data-id="bachelor"]').attr('selected', 'selected');
break;
case 'm' :
$('.auswahlStudienArt [data-id="master"]').attr('selected', 'selected');
break;
}
},
/**
* sets functionality for the actions above and beneath the person table
*/
@@ -257,20 +238,12 @@ var InfocenterPersonDataset = {
});
},
changeStudengangsTyp: function($typ)
changeStudengangsTyp: function(typ)
{
switch ($typ)
{
case 'all' :
var change = 'b\', \'m';
break;
case 'bachelor' :
var change = 'b';
break;
case 'master' :
var change = 'm';
break;
}
let change = typ;
if (typ === 'all')
change = change = 'b\', \'m\', \'l';
FHC_AjaxClient.showVeil();
@@ -372,7 +345,8 @@ var InfocenterPersonDataset = {
'system/infocenter/InfoCenter/getAbsageData',
{},
{
successCallback: function(data, textStatus, jqXHR) {
successCallback: function(data, textStatus, jqXHR)
{
if (FHC_AjaxClient.hasData(data))
{
data = FHC_AjaxClient.getData(data);
@@ -397,6 +371,42 @@ var InfocenterPersonDataset = {
}
);
},
getStudienartData: function(infocenter_studiengangstyp)
{
FHC_AjaxClient.ajaxCallGet(
'system/infocenter/InfoCenter/getStudienartData',
{},
{
successCallback: function(data, textStatus, jqXHR)
{
if (FHC_AjaxClient.hasData(data))
{
data = FHC_AjaxClient.getData(data);
let all = data.map(item => item.typ).join('\',\'');
$('.auswahlStudienArt').append($("<option/>")
.val(all)
.text('Alle')
);
$.each(data, function(key, value)
{
let isSelected;
isSelected = (infocenter_studiengangstyp === value.typ && all.length !== 1) ? 'selected' : false;
$('.auswahlStudienArt').append($("<option/>")
.val(value.typ)
.text(value.bezeichnung)
.attr('selected', isSelected)
)
});
}
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(textStatus);
}
}
);
},
/**
* initializes call to get the Studiensemester user variable
*/
@@ -607,9 +607,10 @@ var approveAnrechnungDetail = {
{
return;
}
if(
(parseFloat($('#ects').text()) + parseFloat($('#sumEctsSchulisch').text())) > 60 ||
(parseFloat($('#ects').text()) + parseFloat($('#sumEctsBeruflich').text())) > 60 ||
if (
(begruendung_id != 4 && (parseFloat($('#ects').text()) + parseFloat($('#sumEctsSchulisch').text()))) > 60 ||
(begruendung_id == 4 && (parseFloat($('#ects').text()) + parseFloat($('#sumEctsBeruflich').text()))) > 60 ||
(parseFloat($('#ects').text()) + parseFloat($('#sumEctsSchulisch').text()) + parseFloat($('#sumEctsBeruflich').text())) > 90
)
{
+49 -44
View File
@@ -7,49 +7,6 @@ const COLOR_DANGER = '#f2dede';
$(function(){
const uploadMaxFilesize = $('#requestAnrechnung-uploadfile').data('maxsize') ; // in byte
let status_kurzbz = $('#requestAnrechnung-status_kurzbz').data('status_kurzbz');
if (status_kurzbz != ' ' && status_kurzbz != ANRECHNUNGSTATUS_APPROVED)
{
var ectsLv = parseFloat($('#ects').text());
var sumEctsSchulisch = parseFloat($('#sumEctsSchulisch').text());
var sumEctsBeruflich = parseFloat($('#sumEctsBeruflich').text());
var begruendung_id = $('#requestAnrechnung-form :input[name="begruendung"]:checked').val();
// If Begründung is 'Hochschulzeugnis', return. They are accepted without limit.
if (begruendung_id == 5)
{
exit;
}
// If max ECTS is ecceeded
if (begruendung_id == 4)
{
if ((sumEctsSchulisch + sumEctsBeruflich + ectsLv) > 90 ||
(sumEctsBeruflich + ectsLv) > 60
)
{
// Get ECTS Überschreitungs-message, depending on schulische or berufliche Qualifikation
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('label').append(msgBeiEctsUeberschreitung);
}
}
else
{
if ((sumEctsSchulisch + sumEctsBeruflich + ectsLv) > 90 ||
(sumEctsSchulisch + ectsLv) > 60
)
{
// Get ECTS Überschreitungs-message, depending on schulische or berufliche Qualifikation
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('label').append(msgBeiEctsUeberschreitung);
}
}
}
// Set status alert color
requestAnrechnung.setStatusAlertColor();
@@ -62,9 +19,12 @@ $(function(){
// Init tooltips
requestAnrechnung.initTooltips();
// // Alert message, if maximum ECTS exceeded
// Alert message, if maximum ECTS exceeded
requestAnrechnung.alertIfMaxEctsExceeded();
// Alert message inside Begruendungsbox, if maximum ECTS exceeded
requestAnrechnung.alertIfMaxEctsExceededInsideBegruendungsbox();
// Set chars counter for textarea 'Herkunft der Kenntnisse'
requestAnrechnung.setCharsCounter();
@@ -318,6 +278,51 @@ var requestAnrechnung = {
});
}
},
alertIfMaxEctsExceededInsideBegruendungsbox: function(){
let status_kurzbz = $('#requestAnrechnung-status_kurzbz').data('status_kurzbz');
if (status_kurzbz != ' ' && status_kurzbz != ANRECHNUNGSTATUS_APPROVED)
{
var ectsLv = parseFloat($('#ects').text());
var sumEctsSchulisch = parseFloat($('#sumEctsSchulisch').text());
var sumEctsBeruflich = parseFloat($('#sumEctsBeruflich').text());
var begruendung_id = $('#requestAnrechnung-form :input[name="begruendung"]:checked').val();
// If Begründung is 'Hochschulzeugnis', return. They are accepted without limit.
if (begruendung_id == 5)
{
return;
}
// If max ECTS is ecceeded
if (begruendung_id == 4)
{
if ((sumEctsSchulisch + sumEctsBeruflich + ectsLv) > 90 ||
(sumEctsBeruflich + ectsLv) > 60
)
{
// Get ECTS Überschreitungs-message, depending on schulische or berufliche Qualifikation
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('label').append(msgBeiEctsUeberschreitung);
}
}
else
{
if ((sumEctsSchulisch + sumEctsBeruflich + ectsLv) > 90 ||
(sumEctsSchulisch + ectsLv) > 60
)
{
// Get ECTS Überschreitungs-message, depending on schulische or berufliche Qualifikation
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('label').append(msgBeiEctsUeberschreitung);
}
}
}
},
getMsgBeiEctsUeberschreitung: function(begruendung_id, ects, sumEctsSchulisch, sumEctsBeruflich){
return $('<span id="sumEctsMsg"></span>')
+4 -3
View File
@@ -61,7 +61,7 @@ $i=0;
if(isset($anwesenheit->result) && is_array($anwesenheit->result))
{
foreach($anwesenheit->result as $row)
{
{
$i=$oRdf->newObjekt($i);
$oRdf->obj[$i]->setAttribut('lehrveranstaltung_bezeichnung',$row->bezeichnung,true);
$oRdf->obj[$i]->setAttribut('prozent',$row->prozent,true);
@@ -69,12 +69,13 @@ if(isset($anwesenheit->result) && is_array($anwesenheit->result))
$oRdf->obj[$i]->setAttribut('nichtanwesend',$row->nichtanwesend,true);
$oRdf->obj[$i]->setAttribut('vorname',$row->vorname,true);
$oRdf->obj[$i]->setAttribut('nachname',$row->nachname,true);
$oRdf->obj[$i]->setAttribut('wahlname',$row->wahlname,true);
$oRdf->obj[$i]->setAttribut('uid',$row->uid,true);
$ampel='makeIt'.$anwesenheit->getAmpel($row->prozent);
$oRdf->obj[$i]->setAttribut('ampel',$ampel,true);
$oRdf->addSequence($i);
$i++;
}
+3 -3
View File
@@ -89,7 +89,7 @@ if($db->db_query($qry))
{
if(empty($row))
die("Lehreinheit $lehreinheit am $von nicht gefunden");
$data[$row->lehreinheit_id]['tage'][$row->datum][] = $row;
}
}
@@ -97,7 +97,7 @@ if($db->db_query($qry))
foreach($data as $key => $value)
{
$currentDay = key($value['tage']);
// Daten der Vortragenden ermitteln
$qry = "SELECT vorname, nachname, titelpre, titelpost "
. "FROM lehre.tbl_lehreinheitmitarbeiter lema "
@@ -114,7 +114,7 @@ foreach($data as $key => $value)
}
// Daten der Studenten ermitteln
$qry = "SELECT pe.person_id, vorname, nachname, titelpre, titelpost, note, "
$qry = "SELECT pe.person_id, vorname, nachname, wahlname, titelpre, titelpost, note, "
. "get_rolle_prestudent(tbl_student.prestudent_id, " . $db->db_add_param($studiensemester) . ") AS laststatus "
. "FROM campus.vw_student_lehrveranstaltung stlv "
. "JOIN public.tbl_benutzer be ON be.uid = stlv.uid "
+4
View File
@@ -112,6 +112,7 @@ function draw_row($mitarbeiter)
<MITARBEITER:uid><![CDATA['.$mitarbeiter->uid.']]></MITARBEITER:uid>
<MITARBEITER:titelpre><![CDATA['.$mitarbeiter->titelpre.']]></MITARBEITER:titelpre>
<MITARBEITER:titelpost><![CDATA['.$mitarbeiter->titelpost.']]></MITARBEITER:titelpost>
<MITARBEITER:wahlname><![CDATA['.$mitarbeiter->wahlname.']]></MITARBEITER:wahlname>
<MITARBEITER:vornamen><![CDATA['.$mitarbeiter->vornamen.']]></MITARBEITER:vornamen>
<MITARBEITER:vorname><![CDATA['.$mitarbeiter->vorname.']]></MITARBEITER:vorname>
<MITARBEITER:nachname><![CDATA['.$mitarbeiter->nachname.']]></MITARBEITER:nachname>
@@ -143,6 +144,7 @@ if($lehrveranstaltung_id==null && $filter==null && $mitarbeiter_uid==null)
<MITARBEITER:uid></MITARBEITER:uid>
<MITARBEITER:titelpre></MITARBEITER:titelpre>
<MITARBEITER:titelpost></MITARBEITER:titelpost>
<MITARBEITER:wahlname></MITARBEITER:wahlname>
<MITARBEITER:vornamen></MITARBEITER:vornamen>
<MITARBEITER:vorname></MITARBEITER:vorname>
<MITARBEITER:nachname></MITARBEITER:nachname>
@@ -182,6 +184,7 @@ if($lehrveranstaltung_id==null && $filter==null && $mitarbeiter_uid==null)
"\n\t\t\t<MITARBEITER:uid></MITARBEITER:uid>".
"\n\t\t\t<MITARBEITER:titelpre></MITARBEITER:titelpre>".
"\n\t\t\t<MITARBEITER:titelpost></MITARBEITER:titelpost>".
"\n\t\t\t<MITARBEITER:wahlname></MITARBEITER:wahlname>".
"\n\t\t\t<MITARBEITER:vornamen></MITARBEITER:vornamen>".
"\n\t\t\t<MITARBEITER:vorname></MITARBEITER:vorname>".
"\n\t\t\t<MITARBEITER:nachname></MITARBEITER:nachname>".
@@ -214,6 +217,7 @@ else
<MITARBEITER:uid><![CDATA[]]></MITARBEITER:uid>
<MITARBEITER:titelpre><![CDATA[]]></MITARBEITER:titelpre>
<MITARBEITER:titelpost><![CDATA[]]></MITARBEITER:titelpost>
<MITARBEITER:wahlname><![CDATA[]]></MITARBEITER:wahlname>
<MITARBEITER:vornamen><![CDATA[]]></MITARBEITER:vornamen>
<MITARBEITER:vorname><![CDATA[]]></MITARBEITER:vorname>
<MITARBEITER:nachname><![CDATA[-- Keine Auswahl --]]></MITARBEITER:nachname>
+1
View File
@@ -152,6 +152,7 @@ function draw_row($mitarbeiter)
<MITARBEITER:nachname><![CDATA['.$mitarbeiter->nachname.']]></MITARBEITER:nachname>
<MITARBEITER:vorname><![CDATA['.$mitarbeiter->vorname.']]></MITARBEITER:vorname>
<MITARBEITER:vornamen><![CDATA['.$mitarbeiter->vornamen.']]></MITARBEITER:vornamen>
<MITARBEITER:wahlname><![CDATA['.$mitarbeiter->wahlname.']]></MITARBEITER:wahlname>
<MITARBEITER:anrede><![CDATA['.$mitarbeiter->anrede.']]></MITARBEITER:anrede>
<MITARBEITER:geschlecht><![CDATA['.$mitarbeiter->geschlecht.']]></MITARBEITER:geschlecht>
<MITARBEITER:geburtsdatum><![CDATA['.$datum->convertISODate($mitarbeiter->gebdatum).']]></MITARBEITER:geburtsdatum>
+11 -2
View File
@@ -196,6 +196,7 @@ function draw_content_liste($row)
<STUDENT:uid><![CDATA['.(isset($row->uid)?$row->uid:'').']]></STUDENT:uid>
<STUDENT:titelpre><![CDATA['.$row->titelpre.']]></STUDENT:titelpre>
<STUDENT:titelpost><![CDATA['.$row->titelpost.']]></STUDENT:titelpost>
<STUDENT:wahlname><![CDATA['.$row->wahlname.']]></STUDENT:wahlname>
<STUDENT:vornamen><![CDATA['.$row->vornamen.']]></STUDENT:vornamen>
<STUDENT:vorname><![CDATA['.$row->vorname.']]></STUDENT:vorname>
<STUDENT:nachname><![CDATA['.$row->nachname.']]></STUDENT:nachname>
@@ -304,6 +305,7 @@ function draw_content($row)
<STUDENT:titelpre><![CDATA['.$row->titelpre.']]></STUDENT:titelpre>
<STUDENT:titelpost><![CDATA['.$row->titelpost.']]></STUDENT:titelpost>
<STUDENT:vornamen><![CDATA['.$row->vornamen.']]></STUDENT:vornamen>
<STUDENT:wahlname><![CDATA['.$row->wahlname.']]></STUDENT:wahlname>
<STUDENT:vorname><![CDATA['.$row->vorname.']]></STUDENT:vorname>
<STUDENT:nachname><![CDATA['.$row->nachname.']]></STUDENT:nachname>
<STUDENT:geburtsdatum><![CDATA['.$datum_obj->convertISODate($row->gebdatum).']]></STUDENT:geburtsdatum>
@@ -424,6 +426,7 @@ function draw_empty_content()
<STUDENT:titelpre><![CDATA[]]></STUDENT:titelpre>
<STUDENT:titelpost><![CDATA[]]></STUDENT:titelpost>
<STUDENT:vornamen><![CDATA[]]></STUDENT:vornamen>
<STUDENT:wahlname><![CDATA[]]></STUDENT:wahlname>
<STUDENT:vorname><![CDATA[]]></STUDENT:vorname>
<STUDENT:nachname><![CDATA[KEINE RESULTATE]]></STUDENT:nachname>
<STUDENT:geburtsdatum><![CDATA[]]></STUDENT:geburtsdatum>
@@ -609,7 +612,7 @@ if($xmlformat=='rdf')
$sql_query="
SELECT
p.person_id, tbl_student.prestudent_id, tbl_benutzer.uid, titelpre, titelpost,vorname, vornamen, geschlecht,
p.person_id, tbl_student.prestudent_id, tbl_benutzer.uid, titelpre, titelpost,vorname, wahlname, vornamen, geschlecht,
nachname, gebdatum, tbl_prestudent.anmerkung,ersatzkennzeichen,svnr, tbl_student.matrikelnr, p.anmerkung as anmerkungen,
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
tbl_student.studiengang_kz, aufmerksamdurch_kurzbz, mentor, public.tbl_benutzer.aktiv AS bnaktiv,
@@ -879,8 +882,11 @@ if($xmlformat=='rdf')
WHERE
UPPER(nachname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR
UPPER(vorname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR
UPPER(wahlname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR
UPPER(vorname || ' ' || nachname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR
UPPER(nachname || ' ' || vorname) = UPPER(".$db->db_add_param($searchItems_string_orig).");";
UPPER(nachname || ' ' || vorname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR
UPPER(wahlname || ' ' || nachname) = UPPER(".$db->db_add_param($searchItems_string_orig).") OR
UPPER(nachname || ' ' || wahlname) = UPPER(".$db->db_add_param($searchItems_string_orig).");";
if($db->db_query($qry))
{
@@ -931,6 +937,8 @@ if($xmlformat=='rdf')
{
$qry .= " UPPER(vorname || ' ' || nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
UPPER(nachname || ' ' || vorname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
UPPER(nachname || ' ' || wahlname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
UPPER(wahlname || ' ' || nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
student_uid ~* LOWER(".$db->db_add_param($searchItems_string).")";
}
else
@@ -1194,6 +1202,7 @@ else
<titelpre><![CDATA['.$student->titelpre.']]></titelpre>
<titelpost><![CDATA['.$student->titelpost.']]></titelpost>
<vornamen><![CDATA['.$student->vornamen.']]></vornamen>
<wahlname><![CDATA['.$student->wahlname.']]></wahlname>
<vorname><![CDATA['.$student->vorname.']]></vorname>
<nachname><![CDATA['.$student->nachname.']]></nachname>
<matrikelnummer><![CDATA['.$student->matrikelnr.']]></matrikelnummer>
+3 -1
View File
@@ -53,6 +53,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
<BT:code></BT:code>
<BT:bezeichnung>-- keine Auswahl --</BT:bezeichnung>
<BT:kurzbz>-- keine Auswahl --</BT:kurzbz>
<BT:aktiv></BT:aktiv>
</RDF:Description>
</RDF:li>
';
@@ -70,6 +71,7 @@ if($db->db_query($qry))
<BT:code><![CDATA[<?php echo $row->zgv_code; ?>]]></BT:code>
<BT:bezeichnung><![CDATA[<?php echo $row->zgv_bez; ?>]]></BT:bezeichnung>
<BT:kurzbz><![CDATA[<?php echo $row->zgv_kurzbz; ?>]]></BT:kurzbz>
<BT:aktiv><![CDATA[<?php echo $row->aktiv; ?>]]></BT:aktiv>
</RDF:Description>
</RDF:li>
<?php
@@ -77,4 +79,4 @@ if($db->db_query($qry))
}
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+4 -2
View File
@@ -19,7 +19,7 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
// header für no cache
// header fr no cache
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
@@ -52,6 +52,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
<ZGVDOKTOR:code></ZGVDOKTOR:code>
<ZGVDOKTOR:bezeichnung>-- keine Auswahl --</ZGVDOKTOR:bezeichnung>
<ZGVDOKTOR:kurzbz>-- keine Auswahl --</ZGVDOKTOR:kurzbz>
<ZGVDOKTOR:aktiv></ZGVDOKTOR:aktiv>
</RDF:Description>
</RDF:li>
';
@@ -69,6 +70,7 @@ if($db->db_query($qry))
<ZGVDOKTOR:code><![CDATA[<?php echo $row->zgvdoktor_code; ?>]]></ZGVDOKTOR:code>
<ZGVDOKTOR:bezeichnung><![CDATA[<?php echo $row->zgvdoktor_bez; ?>]]></ZGVDOKTOR:bezeichnung>
<ZGVDOKTOR:kurzbz><![CDATA[<?php echo $row->zgvdoktor_kurzbz; ?>]]></ZGVDOKTOR:kurzbz>
<ZGVDOKTOR:aktiv><![CDATA[<?php echo $row->aktiv; ?>]]></ZGVDOKTOR:aktiv>
</RDF:Description>
</RDF:li>
<?php
@@ -76,4 +78,4 @@ if($db->db_query($qry))
}
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+3 -1
View File
@@ -52,6 +52,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
<ZGVMASTER:code></ZGVMASTER:code>
<ZGVMASTER:bezeichnung>-- keine Auswahl --</ZGVMASTER:bezeichnung>
<ZGVMASTER:kurzbz>-- keine Auswahl --</ZGVMASTER:kurzbz>
<ZGVMASTER:aktiv></ZGVMASTER:aktiv>
</RDF:Description>
</RDF:li>
';
@@ -69,6 +70,7 @@ if($db->db_query($qry))
<ZGVMASTER:code><![CDATA[<?php echo $row->zgvmas_code; ?>]]></ZGVMASTER:code>
<ZGVMASTER:bezeichnung><![CDATA[<?php echo $row->zgvmas_bez; ?>]]></ZGVMASTER:bezeichnung>
<ZGVMASTER:kurzbz><![CDATA[<?php echo $row->zgvmas_kurzbz; ?>]]></ZGVMASTER:kurzbz>
<ZGVMASTER:aktiv><![CDATA[<?php echo $row->aktiv?>]]></ZGVMASTER:aktiv>
</RDF:Description>
</RDF:li>
<?php
@@ -76,4 +78,4 @@ if($db->db_query($qry))
}
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+320 -57
View File
@@ -5681,6 +5681,46 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='dvuh'"))
}
}
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app = 'international' "))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_app(app) VALUES('international');";
if(!$db->db_query($qry))
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Neue App international in system.tbl_app hinzugefügt';
}
}
// Add DMS category "international_nachweis"
if ($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz = 'international_nachweis';"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO campus.tbl_dms_kategorie (
kategorie_kurzbz,
bezeichnung,
beschreibung,
parent_kategorie_kurzbz,
oe_kurzbz,
berechtigung_kurzbz
) VALUES(
'international_nachweis',
'International Nachweis',
'Nachweis der Internationalisierungsmaßnahmen',
'fas',
'etw',
NULL
);";
if (!$db->db_query($qry))
echo '<strong>campus.tbl_dms_kategorie '.$db->db_last_error().'</strong><br>';
else
echo ' campus.tbl_dms_kategorie: Added category "international_nachweis"!<br>';
}
}
// Add table issue_status
if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_issue_status LIMIT 1;"))
{
@@ -6203,6 +6243,181 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
}
}
//Add column wahlname to public.tbl_person
if(!@$db->db_query("SELECT wahlname FROM public.tbl_person LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_person ADD COLUMN wahlname varchar(128);";
if(!$db->db_query($qry))
echo '<strong>public.tbl_person '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_person: Spalte wahlname hinzugefügt';
}
// Adds Column wahlname to campus.vw_student
if (!$result = @$db->db_query('SELECT wahlname FROM campus.vw_student LIMIT 1'))
{
$qry = "
CREATE OR REPLACE VIEW campus.vw_student AS
SELECT tbl_benutzer.uid,
tbl_student.matrikelnr,
tbl_student.prestudent_id,
tbl_student.studiengang_kz,
tbl_student.semester,
tbl_student.verband,
tbl_student.gruppe,
tbl_benutzer.person_id,
tbl_benutzer.alias,
tbl_person.geburtsnation,
tbl_person.sprache,
tbl_person.anrede,
tbl_person.titelpost,
tbl_person.titelpre,
tbl_person.nachname,
tbl_person.vorname,
tbl_person.vornamen,
tbl_person.gebdatum,
tbl_person.gebort,
tbl_person.gebzeit,
tbl_person.foto,
tbl_person.anmerkung,
tbl_person.homepage,
tbl_person.svnr,
tbl_person.ersatzkennzeichen,
tbl_person.geschlecht,
tbl_person.familienstand,
tbl_person.anzahlkinder,
tbl_benutzer.aktiv,
tbl_student.updateamum,
tbl_student.updatevon,
tbl_student.insertamum,
tbl_student.insertvon,
tbl_student.ext_id,
tbl_benutzer.updateaktivam,
tbl_benutzer.updateaktivvon,
tbl_benutzer.aktivierungscode,
( SELECT tbl_kontakt.kontakt
FROM tbl_kontakt
WHERE tbl_kontakt.person_id = tbl_person.person_id AND tbl_kontakt.kontakttyp::text = 'email'::text
ORDER BY tbl_kontakt.zustellung DESC
LIMIT 1) AS email_privat,
tbl_person.wahlname
FROM public.tbl_student
JOIN public.tbl_benutzer ON tbl_student.student_uid::text = tbl_benutzer.uid::text
JOIN public.tbl_person USING (person_id);";
if (!$db->db_query($qry))
echo '<strong>campus.vw_student: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.vw_student: added column wahlname';
}
// Adds Column wahlname to campus.vw_benutzer
if (!$result = @$db->db_query('SELECT wahlname FROM campus.vw_benutzer LIMIT 1'))
{
$qry = "
CREATE OR REPLACE VIEW campus.vw_benutzer AS
SELECT tbl_benutzer.person_id,
tbl_benutzer.uid,
tbl_benutzer.alias,
tbl_person.geburtsnation,
tbl_person.sprache,
tbl_person.anrede,
tbl_person.titelpost,
tbl_person.titelpre,
tbl_person.nachname,
tbl_person.vorname,
tbl_person.vornamen,
tbl_person.gebdatum,
tbl_person.gebort,
tbl_person.gebzeit,
tbl_person.foto,
tbl_person.geschlecht,
tbl_person.anmerkung,
tbl_person.homepage,
tbl_person.svnr,
tbl_person.ersatzkennzeichen,
tbl_person.familienstand,
tbl_person.anzahlkinder,
tbl_benutzer.aktiv,
tbl_benutzer.insertamum,
tbl_benutzer.insertvon,
tbl_benutzer.updateamum,
tbl_benutzer.updatevon,
tbl_benutzer.ext_id,
tbl_person.wahlname
FROM public.tbl_benutzer
JOIN public.tbl_person USING (person_id);";
if (!$db->db_query($qry))
echo '<strong>campus.vw_benutzer: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.vw_benutzer: added column wahlname';
}
// Adds Column wahlname to campus.vw_mitarbeiter
if (!$result = @$db->db_query('SELECT wahlname FROM campus.vw_mitarbeiter LIMIT 1'))
{
$qry = "
CREATE OR REPLACE VIEW campus.vw_mitarbeiter AS
SELECT tbl_benutzer.uid,
tbl_mitarbeiter.ausbildungcode,
tbl_mitarbeiter.personalnummer,
tbl_mitarbeiter.kurzbz,
tbl_mitarbeiter.lektor,
tbl_mitarbeiter.fixangestellt,
tbl_mitarbeiter.telefonklappe,
tbl_benutzer.person_id,
tbl_benutzer.alias,
tbl_person.geburtsnation,
tbl_person.sprache,
tbl_person.anrede,
tbl_person.titelpost,
tbl_person.titelpre,
tbl_person.nachname,
tbl_person.vorname,
tbl_person.vornamen,
tbl_person.gebdatum,
tbl_person.gebort,
tbl_person.gebzeit,
tbl_person.foto,
tbl_mitarbeiter.anmerkung,
tbl_person.homepage,
tbl_person.svnr,
tbl_person.ersatzkennzeichen,
tbl_person.geschlecht,
tbl_person.familienstand,
tbl_person.anzahlkinder,
tbl_mitarbeiter.ort_kurzbz,
tbl_benutzer.aktiv,
tbl_mitarbeiter.bismelden,
tbl_mitarbeiter.standort_id,
tbl_mitarbeiter.updateamum,
tbl_mitarbeiter.updatevon,
tbl_mitarbeiter.insertamum,
tbl_mitarbeiter.insertvon,
tbl_mitarbeiter.ext_id,
tbl_benutzer.aktivierungscode,
( SELECT tbl_kontakt.kontakt
FROM tbl_kontakt
WHERE tbl_kontakt.person_id = tbl_person.person_id AND tbl_kontakt.kontakttyp::text = 'email'::text
ORDER BY tbl_kontakt.zustellung DESC
LIMIT 1) AS email_privat,
tbl_benutzer.updateaktivam,
tbl_benutzer.updateaktivvon,
GREATEST(tbl_person.updateamum, tbl_benutzer.updateamum, tbl_mitarbeiter.updateamum) AS lastupdate,
tbl_person.wahlname
FROM public.tbl_mitarbeiter
JOIN public.tbl_benutzer ON tbl_mitarbeiter.mitarbeiter_uid::text = tbl_benutzer.uid::text
JOIN public.tbl_person USING (person_id);";
if (!$db->db_query($qry))
echo '<strong>campus.vw_mitarbeiter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.vw_mitarbeiter: added column wahlname';
}
// Creates table public.tbl_gruppe_manager if it doesn't exist and grants privileges
if (!$result = @$db->db_query('SELECT 1 FROM public.tbl_gruppe_manager LIMIT 1'))
{
@@ -6353,18 +6568,18 @@ if(!@$db->db_query("SELECT public.get_ects_summe_schulisch('', 0, 0)"))
DECLARE rec_quereinstiegs_studiensemester RECORD;
DECLARE sum_quereinstiegs_ects numeric(4, 1) := 0;
DECLARE sum_schulische_ects numeric(4, 1) := 0;
BEGIN
-- IF STUDENT IS QUEREINSTEIGER, GET ECTS SUMME OF ANGERECHNETE SEMESTER
-- Get Einstiegssemester
SELECT INTO var_einstiegsausbildungssemester , var_einstiegsstudiensemester_kurzbz, var_einstiegsorgform_kurzbz ausbildungssemester, studiensemester_kurzbz, orgform_kurzbz from public.tbl_prestudentstatus
WHERE prestudent_id = var_prestudent_id
-- Get Einstiegssemester
SELECT INTO var_einstiegsausbildungssemester , var_einstiegsstudiensemester_kurzbz, var_einstiegsorgform_kurzbz ausbildungssemester, studiensemester_kurzbz, orgform_kurzbz from public.tbl_prestudentstatus
WHERE prestudent_id = var_prestudent_id
AND status_kurzbz = \'Student\'
ORDER BY datum, insertamum, ext_id
LIMIT 1;
-- If Einstiegssemester > 1 (= Quereinsteiger)
IF (var_einstiegsausbildungssemester > 1) THEN
-- ...get all Quereinstiegssemester
@@ -6383,66 +6598,66 @@ if(!@$db->db_query("SELECT public.get_ects_summe_schulisch('', 0, 0)"))
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
WHERE
tbl_studienplan.studienplan_id = (
SELECT
SELECT
studienplan_id
FROM
lehre.tbl_studienordnung
JOIN lehre.tbl_studienplan USING (studienordnung_id)
FROM
lehre.tbl_studienordnung
JOIN lehre.tbl_studienplan USING (studienordnung_id)
JOIN lehre.tbl_studienplan_semester USING (studienplan_id)
WHERE tbl_studienordnung.studiengang_kz = var_studiengang_kz
WHERE tbl_studienordnung.studiengang_kz = var_studiengang_kz
AND tbl_studienplan_semester.semester = var_einstiegsausbildungssemester - 1
AND tbl_studienplan_semester.studiensemester_kurzbz = rec_quereinstiegs_studiensemester.studiensemester_kurzbz
AND tbl_studienplan.orgform_kurzbz = var_einstiegsorgform_kurzbz
AND tbl_studienplan.orgform_kurzbz = var_einstiegsorgform_kurzbz
LIMIT 1
)
AND tbl_studienplan_lehrveranstaltung.semester = var_einstiegsausbildungssemester
AND studienplan_lehrveranstaltung_id_parent IS NULL -- auf Modulebene
AND tbl_studienplan_lehrveranstaltung.export = TRUE);
var_einstiegsausbildungssemester = var_einstiegsausbildungssemester - 1;
END LOOP;
END IF;
-- GET ECTS SUMME OF ALLE BISHER ANGERECHNETEN LEHRVERANSTALTUNGEN. ANRECHNUNGSGRUND: SCHULISCH.
SELECT INTO sum_schulische_ects COALESCE(SUM(ects), 0) FROM (
SELECT
SELECT
lehrveranstaltung_id, studiensemester_kurzbz, ects
FROM
lehre.tbl_zeugnisnote
LEFT JOIN lehre.tbl_anrechnung USING(lehrveranstaltung_id, studiensemester_kurzbz)
FROM
lehre.tbl_zeugnisnote
LEFT JOIN lehre.tbl_anrechnung USING(lehrveranstaltung_id, studiensemester_kurzbz)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_student USING(student_uid)
WHERE
WHERE
tbl_zeugnisnote.note = 6
AND student_uid = var_student_uid
AND lehre.tbl_anrechnung.prestudent_id IN (tbl_student.prestudent_id, NULL)
AND begruendung_id != 5 -- universitäre ECTS nicht mitrechnen
AND begruendung_id != 4 -- berufliche ECTS nicht mitrechnen
AND (anrechnung_id IS NULL OR (anrechnung_id IS NOT NULL AND genehmigt_von IS NOT NULL )) -- Anrechnungen aus Zeit vor Anrechnungstool ODER digitale Anrechnungen mit Noteneintrag UND Genehmigung (wichtig, um zurückgenommene Genehmigungen, die in der Notentabelle noch als angerechnet eingetragen sind, rauszufiltern)
UNION
SELECT
AND begruendung_id != 4 -- berufliche ECTS nicht mitrechnen
AND (anrechnung_id IS NULL OR (anrechnung_id IS NOT NULL AND genehmigt_von IS NOT NULL )) -- Anrechnungen aus Zeit vor Anrechnungstool ODER digitale Anrechnungen mit Noteneintrag UND Genehmigung (wichtig, um zurückgenommene Genehmigungen, die in der Notentabelle noch als angerechnet eingetragen sind, rauszufiltern)
UNION
SELECT
lehrveranstaltung_id, studiensemester_kurzbz, ects
FROM
lehre.tbl_anrechnung
FROM
lehre.tbl_anrechnung
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_student USING(prestudent_id)
WHERE
WHERE
genehmigt_von IS NOT NULL
AND student_uid = var_student_uid
AND student_uid = var_student_uid
AND begruendung_id != 5 -- universitäre ECTS nicht mitrechnen
AND begruendung_id != 4 -- berufliche ECTS nicht mitrechnen
AND begruendung_id != 4 -- berufliche ECTS nicht mitrechnen
) lvsangerechnet;
-- BUILD ECTS SUMME OF QUEREINSTIEGSSEMESTER- + ANGERECHNETEN LVs-ECTS
-- Summe aller bisher schulisch begründet angerechneten LVs + der Quereinstiegssemester
sum_schulische_ects = sum_schulische_ects + sum_quereinstiegs_ects;
RETURN sum_schulische_ects ;
END;
$_$;
@@ -6462,40 +6677,40 @@ if(!@$db->db_query("SELECT public.get_ects_summe_beruflich('')"))
AS $_$
DECLARE var_student_uid ALIAS FOR $1;
DECLARE sum_berufliche_ects numeric(4, 1) := 0;
BEGIN
SELECT INTO sum_berufliche_ects COALESCE(SUM(ects), 0) FROM (
SELECT
SELECT
lehrveranstaltung_id, studiensemester_kurzbz, ects
FROM
lehre.tbl_zeugnisnote
LEFT JOIN lehre.tbl_anrechnung USING(lehrveranstaltung_id, studiensemester_kurzbz)
FROM
lehre.tbl_zeugnisnote
LEFT JOIN lehre.tbl_anrechnung USING(lehrveranstaltung_id, studiensemester_kurzbz)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_student USING(student_uid)
WHERE
WHERE
tbl_zeugnisnote.note = 6
AND student_uid = var_student_uid
AND lehre.tbl_anrechnung.prestudent_id IN (tbl_student.prestudent_id, NULL)
AND begruendung_id = 4 -- beruflich
AND (anrechnung_id IS NULL OR (anrechnung_id IS NOT NULL AND genehmigt_von IS NOT NULL )) -- Anrechnungen aus Zeit vor Anrechnungstool ODER digitale Anrechnungen mit Noteneintrag UND Genehmigung (wichtig, um zurückgenommene Genehmigungen, die in der Notentabelle noch als angerechnet eingetragen sind, rauszufiltern)
UNION
SELECT
UNION
SELECT
lehrveranstaltung_id, studiensemester_kurzbz, ects
FROM
lehre.tbl_anrechnung
FROM
lehre.tbl_anrechnung
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_student USING(prestudent_id)
WHERE
WHERE
genehmigt_von is not null
AND student_uid = var_student_uid
AND student_uid = var_student_uid
AND begruendung_id = 4 -- beruflich
) lvsangerechnet;
RETURN sum_berufliche_ects;
END;
$_$;
@@ -6521,6 +6736,54 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
// Insert document type Grant Agreement
if($result = @$db->db_query("SELECT 1 FROM public.tbl_dokument WHERE dokument_kurzbz = 'GrantAgr';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_dokument(dokument_kurzbz, bezeichnung, bezeichnung_mehrsprachig) VALUES('GrantAgr', 'Grant Agreement', '{\"Grant Agreement\",\"Grant Agreement\"}');";
if(!$db->db_query($qry))
echo '<strong>public.tbl_dokument '.$db->db_last_error().'</strong><br>';
else
echo 'public.tbl_dokument: Added value \'GrantAgr\'<br>';
}
}
//Spalte aktiv zu bis.tbl_zgv hinzufügen
if (!$result = @$db->db_query("SELECT aktiv FROM bis.tbl_zgv LIMIT 1"))
{
$qry = "ALTER TABLE bis.tbl_zgv ADD COLUMN aktiv BOOLEAN NOT NULL DEFAULT true;";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_zgv '.$db->db_last_error().'</strong><br>';
else
echo '<br>Spalte aktiv zu bis.tbl_zgv hinzugefügt';
}
//Spalte aktiv zu bis.tbl_zgvmaster hinzufügen
if (!$result = @$db->db_query("SELECT aktiv FROM bis.tbl_zgvmaster LIMIT 1"))
{
$qry = "ALTER TABLE bis.tbl_zgvmaster ADD COLUMN aktiv BOOLEAN NOT NULL DEFAULT true;";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_zgvmaster '.$db->db_last_error().'</strong><br>';
else
echo '<br>Spalte aktiv zu bis.tbl_zgvmaster hinzugefügt';
}
//Spalte aktiv zu bis.tbl_zgvdoktor hinzufügen
if (!$result = @$db->db_query("SELECT aktiv FROM bis.tbl_zgvdoktor LIMIT 1"))
{
$qry = "ALTER TABLE bis.tbl_zgvdoktor ADD COLUMN aktiv BOOLEAN NOT NULL DEFAULT true;";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_zgvdoktor '.$db->db_last_error().'</strong><br>';
else
echo '<br>Spalte aktiv zu bis.tbl_zgvdoktor hinzugefügt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -6556,9 +6819,9 @@ $tabellen=array(
"bis.tbl_oehbeitrag" => array("oehbeitrag_id","studierendenbeitrag","versicherung","von_studiensemester_kurzbz","bis_studiensemester_kurzbz","insertamum","insertvon","updateamum","updatevon"),
"bis.tbl_orgform" => array("orgform_kurzbz","code","bezeichnung","rolle","bisorgform_kurzbz","bezeichnung_mehrsprachig"),
"bis.tbl_verwendung" => array("verwendung_code","verwendungbez"),
"bis.tbl_zgv" => array("zgv_code","zgv_bez","zgv_kurzbz","bezeichnung"),
"bis.tbl_zgvmaster" => array("zgvmas_code","zgvmas_bez","zgvmas_kurzbz","bezeichnung"),
"bis.tbl_zgvdoktor" => array("zgvdoktor_code", "zgvdoktor_bez", "zgvdoktor_kurzbz","bezeichnung"),
"bis.tbl_zgv" => array("zgv_code","zgv_bez","zgv_kurzbz","bezeichnung","aktiv"),
"bis.tbl_zgvmaster" => array("zgvmas_code","zgvmas_bez","zgvmas_kurzbz","bezeichnung","aktiv"),
"bis.tbl_zgvdoktor" => array("zgvdoktor_code", "zgvdoktor_bez", "zgvdoktor_kurzbz","bezeichnung","aktiv"),
"bis.tbl_zweck" => array("zweck_code","kurzbz","bezeichnung","incoming","outgoing"),
"bis.tbl_zgvgruppe" => array("gruppe_kurzbz","bezeichnung"),
"bis.tbl_zgvgruppe_zuordnung" => array("zgvgruppe_id" ,"studiengang_kz","zgv_code","zgvmas_code","gruppe_kurzbz"),
@@ -6727,7 +6990,7 @@ $tabellen=array(
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix","standort_id"),
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values","bpk","matr_aktiv"),
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values","bpk","matr_aktiv","wahlname"),
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
"public.tbl_personfunktionstandort" => array("personfunktionstandort_id","funktion_kurzbz","person_id","standort_id","position","anrede"),
"public.tbl_preincoming" => array("preincoming_id","person_id","mobilitaetsprogramm_code","zweck_code","firma_id","universitaet","aktiv","bachelorthesis","masterthesis","von","bis","uebernommen","insertamum","insertvon","updateamum","updatevon","anmerkung","zgv","zgv_ort","zgv_datum","zgv_name","zgvmaster","zgvmaster_datum","zgvmaster_ort","zgvmaster_name","program_name","bachelor","master","jahre","person_id_emergency","person_id_coordinator_dep","person_id_coordinator_int","code","deutschkurs1","deutschkurs2","research_area","deutschkurs3","ext_id"),
+852 -2
View File
@@ -8740,13 +8740,13 @@ Any unusual occurrences
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Der Plagiatscheck wurde durchgeführt und bestätigt, dass der zentrale Inhalt der Arbeit im erforderlichen Ausmaß eigenständig verfasst wurde (vgl. Satzungsteil Studienrechtliche Bestimmungen / Prüfungsordnung, § 18 Abs. 2 und 3).',
'text' => 'Der Plagiatscheck wurde durchgeführt und bestätigt, dass der zentrale Inhalt der Arbeit im erforderlichen Ausmaß eigenständig verfasst wurde (vgl. Satzungsteil Studienrechtliche Bestimmungen / Prüfungsordnung, § 20 Abs. 2 und 3).',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'The plagiarism check has been carried out and confirms that the central content of the paper has been written independently to the required extent (cf. part of the Statutes on Studies Act Provisions / Examination Regulations, § 18 Para. 2 and 3).',
'text' => 'The plagiarism check has been carried out and confirms that the central content of the paper has been written independently to the required extent (cf. part of the Statutes on Studies Act Provisions / Examination Regulations, § 20 Para. 2 and 3).',
'description' => '',
'insertvon' => 'system'
)
@@ -16108,6 +16108,856 @@ array(
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'studiensemesterGeplant',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Studiensemester geplant',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Semester planned',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'bestaetigungHochladen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bestätigung hochladen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Upload confirmation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'massnahmeLoeschen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Maßnahme löschen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Delete measure',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'massnahmen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Maßnahmen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Measures',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'internationalskills',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'International skills',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'International skills',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'massnahmen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Internationalisierungsmaßnahmen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Internationalization measures',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'internationalbeschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Ab dem Studienjahr 2022/23 ist der Erwerb von internationalen und interkulturellen Kompetenzen Teil des Curriculums. <br />
Auf der Grundlage der vorliegenden Maßnahmen absolvieren Sie im Laufe ihres Studiums Internationalisierungsaktivitäten, die mit unterschiedlichen ECTS-Punkten hinterlegt sind. <br />
In Summe müssen 5 ECTS erworben werden, die im 6. Semester wirksam werden. <br/>
Das Modul „International skills“ wird mit der Beurteilung „Mit Erfolg teilgenommen“ abgeschlossen. <br />
Bitte wählen Sie die für Sie in Frage kommenden Maßnahmen aus und planen Sie das entsprechende Semester. <br />
Sobald die 5 ECTS erreicht wurden, überprüft der Studiengang die von Ihnen hochgeladenen Dokumente.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Starting with the study year 2022/23, the acquisition of international and intercultural competencies is part of the curriculum.<br />
On the basis of the measures at-hand, you will complete internationalization activities during the course of your studies, which are assigned different ECTS credits.<br />
In total, 5 ECTS must be acquired, which become effective in the 6th semester.<br />
The module “International skills” is completed with the assessment "Successfully participated". <br />
Please select the measures that apply to you and schedule the appropriate semester. <br />
Once the 5 ECTS have been achieved, the degree program will review the documents you have uploaded.',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'nurBachelor',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Nur für Bachelorstudiengänge.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Only for bachelor programmes.',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'bezeichnung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bezeichnung Deutsch',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'title german',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'bezeichnungeng',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bezeichnung Englisch',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'title english',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'beschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Beschreibung Deutsch',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'description german',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'beschreibungeng',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Beschreibung Englisch',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'description english',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'massnahmeBearbeiten',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Massnahme bearbeiten',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Edit measure',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'massnahmeLoeschenConfirm',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Wollen Sie die ausgewählte Maßnahme wirklich löschen?',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Do you really want to delete the measure?',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'fileLoeschenConfirm',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Wollen Sie die ausgewählte Bestätigung wirklich löschen?',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Do you really want to delete the confirmation?',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'planAblehnen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Plan ablehnen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Reject plan',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'entbestaetigenConfirm',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bestätigung widerrufen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Revoke confirmation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'entakzeptierenConfirm',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Wollen Sie die Planbestätigung wirklich widerrufen?',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Do you really want to cancel the plan confirmation?',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'allegeplanten',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle geplanten',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'All planned',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'alleMassnahmenJetzt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle Maßnahmen anzeigen die im jetzigen Studiensemester geplant sind',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Show all measures that are planned for the current study semester',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'alleStudierendeJetzt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle Studierende anzeigen aus dem jetzigen Studiensemester',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Show all students from the current study semester',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'lastSemester',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle Studierende anzeigen aus dem letzten Semester',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Show all students from the last semester"',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'meinMassnahmeplan',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Mein Maßnahmenplan',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'My action plan',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'ectsBestaetigt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ECTS bestätigt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ECTS confirmed',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'ectsMassnahme',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ECTS - Maßnahme',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ECTS - Measures',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'geplanteMassnahmen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Maßnahmen - geplant',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Measures - planned',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'akzpetierteMassnahmen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Plan - akzeptiert',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Plan - accepted',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'durchgefuehrteMassnahmen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Maßnahmen - durchgeführt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Measures - performed',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'bestaetigteMassnahmen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ECTS - bestätigt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ECTS - confirmed',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'abgelehnteMassnahmen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Maßnahmen - abgelehnt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Measures - declined',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'planAkzeptieren',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Plan akzeptieren',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Accept plan',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'bestaetigungAkzeptieren',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bestätigung akzeptieren',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Accept confirmation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'bestaetigungAblehnen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bestätigung ablehnen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Reject confirmation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'grund',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Grund',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Reason',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'anmerkungstgl',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Anmerkung - Studiengangsleitung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Note - Study course Director',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'mehrverplant',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => '>=5 ECTS verplant',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '>=5 ECTS planned',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'wenigerverplant',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => '<5 ECTS verplant',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '<5 ECTS planned',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'mehrbestaetigt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => '>=5 ECTS bestätigt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '>=5 ECTS confirmed',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'wenigerbestaetigt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => '<5 ECTS bestätigt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '<5 ECTS confirmed',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'alleAkzeptierenPlan',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle markierten Pläne akzeptieren',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Accept all marked plans',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'downloadBestaetigung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bestätigung herunterladen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Download confirmation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'addMassnahme',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Maßnahme hinzufügen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Add measure',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'gruppenmanagement',
+24 -6
View File
@@ -124,6 +124,13 @@ if (isset($_REQUEST['lehrveranstaltung_name']))
else
$lehrveranstaltung_name = '';
if (isset($_REQUEST['lehrveranstaltung_kurzbz']))
{
$lehrveranstaltung_kurzbz = trim($_REQUEST['lehrveranstaltung_kurzbz']);
}
else
$lehrveranstaltung_kurzbz = '';
//Wenn kein Fachbereich und kein Studiengang gewaehlt wurde
//dann wird der Studiengang auf 0 gesetzt da sonst die zu ladende liste zu lang wird
@@ -549,6 +556,11 @@ if($lehrveranstaltung_name != '')
$sql_query.= " OR UPPER(tbl_lehrveranstaltung.bezeichnung_english) LIKE UPPER(".$db->db_add_param('%'.$lehrveranstaltung_name.'%', FHC_STRING).")) ";
}
if($lehrveranstaltung_kurzbz != '')
{
$sql_query.= " AND (UPPER(tbl_lehrveranstaltung.kurzbz) LIKE UPPER(".$db->db_add_param('%'.$lehrveranstaltung_kurzbz.'%', FHC_STRING).")) ";
}
//Wenn nicht admin, werden erst nur die aktiven angezeigt, es koennen aber auch die inaktiven eingeblendet werden
$aktiv = '';
@@ -611,7 +623,7 @@ for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++)
$outp.='</SELECT>';
//Orgform DropDown
$outp.= ' Orgform <SELECT name="orgform"><option value="-1">--Alle--</option>';
$outp.= ' Orgform <SELECT name="orgform" id="select_orgform"><option value="-1">--Alle--</option>';
$outp.= '<OPTION value="none" '.($orgform_kurzbz=='none'?'selected':'').'>Ohne Orgform</OPTION>';
$orgform = new organisationsform();
$orgform->getOrgformLV();
@@ -660,7 +672,11 @@ $outp .= '</hr><details id="detailTag" style="margin-top: 10px;"><summary style=
$outp .= '</select>';
//Lehrveranstaltung ID Input
$outp.= ' ID <input type="text" name="lehrveranstaltung_id" style="width: 100px" id="lehrveranstaltung_id" value="'.$lehrveranstaltung_id.'">';
$outp.= ' ID <input type="text" name="lehrveranstaltung_id" style="width: 70px" id="lehrveranstaltung_id" value="'.$lehrveranstaltung_id.'">';
//Lehrveranstaltung Suche Kurzbezeichnung
$outp.= ' Kurzbz <input type="text" name="lehrveranstaltung_kurzbz" style="width: 80px" id="lehrveranstaltung_kurzbz"
maxlength="16" value="'.$lehrveranstaltung_kurzbz.'" title="">';
//Lehrveranstaltung Suche Bezeichnung
$outp.= ' Name <input type="text" name="lehrveranstaltung_name" style="width: 450px" id="lehrveranstaltung_name"
@@ -757,12 +773,13 @@ echo '
function checksubmit()
{
if(document.getElementById("select_stg_kz").value==\'\'
&& document.getElementById("select_fachbereich_kurzbz").value==\'\'
&& document.getElementById("select_orgform").value==\'-1\'
&& document.getElementById("select_oe_kurzbz").value==\'\'
&& document.getElementById("lehrveranstaltung_id").value==\'\'
&& document.getElementById("lehrveranstaltung_name").value==\'\')
&& document.getElementById("lehrveranstaltung_name").value==\'\'
&& document.getElementById("lehrveranstaltung_kurzbz").value==\'\')
{
alert("Die Felder Studiengang, Institut, Organisationseinheit, ID und Name dürfen nicht gleichzeitig auf \'Alle\' gesetzt, bzw. leer sein");
alert("Die Felder Studiengang, Orgform, Organisationseinheit, ID, Kurzbz und Name dürfen nicht gleichzeitig auf \'Alle\' gesetzt, bzw. leer sein");
return false;
}
else if(document.getElementById("lehrveranstaltung_name").value !=\'\')
@@ -994,7 +1011,8 @@ echo '
var details = document.getElementById("detailTag");
if(document.getElementById("lehrveranstaltung_name").value!=""
|| document.getElementById("select_oe_kurzbz").value!=""
|| document.getElementById("lehrveranstaltung_id").value!="")
|| document.getElementById("lehrveranstaltung_id").value!=""
|| document.getElementById("lehrveranstaltung_kurzbz").value!="")
{
details.open = true;
return false;
+5 -13
View File
@@ -29,6 +29,7 @@
require_once('../../include/lehrtyp.class.php');
require_once('../../include/lehrmodus.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/studienplan.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -508,19 +509,10 @@
}
$htmlstr.='<br><b>Verwendung in folgenden Studienplänen</b>: ';
$qry ="SELECT distinct tbl_studienplan.bezeichnung
FROM
lehre.tbl_studienplan_lehrveranstaltung
JOIN lehre.tbl_studienplan USING(studienplan_id)
WHERE lehrveranstaltung_id=".$db->db_add_param($lv->lehrveranstaltung_id).'
ORDER BY tbl_studienplan.bezeichnung desc';
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$htmlstr.= $row->bezeichnung.'; ';
}
}
$stdplan = new studienplan();
if ($stdplan->getStudienplanLehrveranstaltung($lv->lehrveranstaltung_id))
foreach($stdplan->result as $result)
$htmlstr .= $result->bezeichnung . "; ";
$htmlstr.='</span>';
// Details Ende
@@ -211,6 +211,7 @@ if (isset($_GET['type']) && $_GET['type'] == 'getstudienplancontent' && isset($_
document.getElementById('nachname').disabled = val;
document.getElementById('vorname').disabled = val;
document.getElementById('vornamen').disabled = val;
document.getElementById('wahlname').disabled = val;
document.getElementById('geschlecht').disabled = val;
document.getElementById('geburtsdatum').disabled = val;
@@ -374,6 +375,7 @@ $anrede = (isset($_REQUEST['anrede'])?$_REQUEST['anrede']:'');
$nachname = (isset($_REQUEST['nachname'])?$_REQUEST['nachname']:'');
$vorname = (isset($_REQUEST['vorname'])?$_REQUEST['vorname']:'');
$vornamen = (isset($_REQUEST['vornamen'])?$_REQUEST['vornamen']:'');
$wahlname = (isset($_REQUEST['wahlname'])?$_REQUEST['wahlname']:'');
$geschlecht = (isset($_REQUEST['geschlecht'])?$_REQUEST['geschlecht']:'');
$geburtsdatum = (isset($_REQUEST['geburtsdatum'])?$_REQUEST['geburtsdatum']:'');
$adresse = (isset($_REQUEST['adresse'])?$_REQUEST['adresse']:'');
@@ -396,6 +398,7 @@ $anrede = utf8($anrede);
$nachname = utf8($nachname);
$vorname = utf8($vorname);
$vornamen = utf8($vornamen);
$wahlname = utf8($wahlname);
$geschlecht = utf8($geschlecht);
$geburtsdatum = utf8($geburtsdatum);
$adresse = utf8($adresse);
@@ -543,6 +546,7 @@ if (isset($_POST['save']))
$geburtsdatum = $person->gebdatum;
$vorname = $person->vorname;
$vornamen = $person->vornamen;
$wahlname = $person->wahlname;
$nachname = $person->nachname;
$titel = $person->titelpre;
$titelpost = $person->titelpost;
@@ -559,6 +563,7 @@ if (isset($_POST['save']))
$person->nachname = $nachname;
$person->vorname = $vorname;
$person->vornamen = $vornamen;
$person->wahlname = $wahlname;
$person->geschlecht = $geschlecht;
$person->gebdatum = $datum_obj->formatDatum($geburtsdatum,'Y-m-d');
$person->geburtsnation = $geburtsnation;
@@ -942,6 +947,7 @@ echo '<tr><td>Anrede</td><td><input type="text" id="anrede" name="anrede" maxlen
echo '<tr><td>Titel(Pre)</td><td><input type="text" id="titel" name="titel" maxlength="64" value="'.$titel.'" /></td></tr>';
echo '<tr><td>Vorname </td><td><input type="text" id="vorname" maxlength="32" name="vorname" value="'.$vorname.'" /></td></tr>';
echo '<tr><td>Weitere Vornamen </td><td><input type="text" id="vornamen" maxlength="32" name="vornamen" value="'.$vornamen.'" /></td></tr>';
echo '<tr><td>Wahlname </td><td><input type="text" id="wahlname" maxlength="32" name="wahlname" value="'.$wahlname.'" /></td></tr>';
echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" id="nachname" name="nachname" value="'.$nachname.'" required="required" autofocus/></td></tr>';
echo '<tr><td>Titel(Post)</td><td><input type="text" id="titelpost" name="titelpost" maxlength="64" value="'.$titelpost.'" /></td></tr>';
echo '<tr><td>Geschlecht *</td><td><SELECT id="geschlecht" name="geschlecht">';
@@ -1142,7 +1148,7 @@ if ($where != '')
if ($result = $db->db_query($qry))
{
echo '<table style="margin-top: 0px" class="tablesorter" id="t1"><thead><tr><th></th><th>Nachname</th><th>Vorname</th><th>Weitere<br/>Vornamen</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr></thead>';
echo '<table style="margin-top: 0px" class="tablesorter" id="t1"><thead><tr><th></th><th>Nachname</th><th>Vorname</th><th>Wahlname</th><th>Weitere<br/>Vornamen</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr></thead>';
echo '<tfoot><tr><td style="padding: 4px"><input type="radio" name="person_id" value="0" onclick="disablefields(this)"></td><td style="padding: 4px" colspan="3">Neue Person anlegen</td></tr></tfoot><tbody>';
while($row = $db->db_fetch_object($result))
{
@@ -1161,7 +1167,7 @@ if ($where != '')
}
$status = mb_substr($status, 0, mb_strlen($status)-2);
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->vornamen</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->wahlname</td><td>$row->vornamen</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
$qry_adr = "SELECT * FROM public.tbl_adresse WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER);
if ($result_adr = $db->db_query($qry_adr))
while ($row_adr = $db->db_fetch_object($result_adr))
+26 -3
View File
@@ -204,6 +204,7 @@ function disablefields(obj)
document.getElementById('titelpost').disabled=val;
document.getElementById('nachname').disabled=val;
document.getElementById('vorname').disabled=val;
document.getElementById('wahlname').disabled=val;
document.getElementById('vornamen').disabled=val;
document.getElementById('geschlecht').disabled=val;
document.getElementById('geburtsdatum').disabled=val;
@@ -502,6 +503,7 @@ $titel = (isset($_POST['titel'])?$_POST['titel']:'');
$titelpost = (isset($_POST['titelpost'])?$_POST['titelpost']:'');
$nachname = (isset($_POST['nachname'])?$_POST['nachname']:'');
$vorname = (isset($_POST['vorname'])?$_POST['vorname']:'');
$wahlname = (isset($_POST['wahlname'])?$_POST['wahlname']:'');
$vornamen = (isset($_POST['vornamen'])?$_POST['vornamen']:'');
$geschlecht = (isset($_POST['geschlecht'])?$_POST['geschlecht']:'');
$geburtsdatum = (isset($_POST['geburtsdatum'])?$_POST['geburtsdatum']:'');
@@ -574,6 +576,7 @@ if(isset($_POST['save']))
{
$geburtsdatum = $person->gebdatum;
$vorname = $person->vorname;
$wahlname = $person->wahlname;
$vornamen = $person->vornamen;
$nachname = $person->nachname;
$svnr = $person->svnr;
@@ -592,6 +595,7 @@ if(isset($_POST['save']))
$person->titelpre = $titel;
$person->nachname = $nachname;
$person->vorname = $vorname;
$person->wahlname = $wahlname;
$person->vornamen = $vornamen;
$person->titelpost = $titelpost;
$person->geschlecht = $geschlecht;
@@ -951,7 +955,26 @@ else
echo '&nbsp;';
echo '<input type="text" id="vornamen" maxlength="32" size="30" name="vornamen" value="'.$vornamen.'" /></td></tr>';
//echo '<tr></tr>';
echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" size="30" id="nachname" name="nachname" value="'.$nachname.'" /></td></tr>';
//echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" size="30" id="nachname" name="nachname" value="'.$nachname.'" /></td></tr>';
echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" size="30" id="nachname" name="nachname" value="'.$nachname.'" />';
if ($showagain)
{
//echo '</td></tr><tr><td>Wahlname1';
// echo '</td></tr><td><td>Wahlname1';
// echo '<input type="text" id="wahlname" maxlength="32" size="30" name="wahlname" value="'.$wahlname.'" /></td></tr>';
echo '<tr><td>Wahlnahme</td><td><input type="text" maxlength="32" size="30" id="wahlname" name="wahlname" value="'.$wahlname.'" />';
}
else
{
echo '&nbsp;&nbsp';
echo 'Wahlname &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
//echo 'Wahlname4';
echo '<input type="text" id="wahlname" maxlength="32" size="30" name="wahlname" value="'.$wahlname.'" /></td></tr>';
}
// echo '<tr><td>Wahlname</td><td>';
// echo '<input type="text" id="wahlname" maxlength="32" size="30" name="wahlname" value="'.$wahlname.'" /></td></tr>';
echo '<tr><td>Titel(Post)</td><td><input type="text" id="titelpost" name="titelpost" maxlength="64" size="30" value="'.$titelpost.'" /></td></tr>';
echo '<tr><td>Geschlecht *</td><td><SELECT id="geschlecht" name="geschlecht" onchange="GeschlechtChange()">';
$geschlecht_obj = new geschlecht();
@@ -1082,7 +1105,7 @@ if($where!='')
if($result = $db->db_query($qry))
{
echo '<table style="margin-top: 0px" class="tablesorter" id="t1"><thead><tr><th></th><th>Nachname</th><th>Vorname</th><th>Weitere<br/>Vornamen</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr></thead>';
echo '<table style="margin-top: 0px" class="tablesorter" id="t1"><thead><tr><th></th><th>Nachname</th><th>Vorname</th><th>Weitere<br/>Vornamen</th><th>Wahlname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr></thead>';
echo '<tfoot><tr><td style="padding: 4px"><input type="radio" name="person_id" value="0" checked onclick="disablefields(this)"></td><td style="padding: 4px" colspan="9">Neue Person anlegen</td></tr></tfoot><tbody>';
while($row = $db->db_fetch_object($result))
{
@@ -1100,7 +1123,7 @@ if($where!='')
}
}
$status = mb_substr($status, 0, mb_strlen($status)-2);
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->vornamen</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->vornamen</td><td>$row->wahlname</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
$qry_adr = "SELECT * FROM public.tbl_adresse WHERE person_id=".$db->db_add_param($row->person_id);
if($result_adr = $db->db_query($qry_adr))
while($row_adr=$db->db_fetch_object($result_adr))
+2 -2
View File
@@ -1338,12 +1338,12 @@ if ($filter != '' || ($person_id_1 != '' && $person_id_2 != ''))
echo '<br><br><div contenteditable="true" style="width: 100%; height : 150px; border : 1px dotted grey; overflow-y:auto; text-align: left; font-size: 9pt">' . $messageOutput . '</div><br>';
// Tabellen anzeigen
echo '<form name="form_table" action="personen_wartung.php?filter=' . $db->convert_html_chars($filter) . '" method="POST">';
echo '<form name="form_table" action="personen_wartung.php?filter='.$db->convert_html_chars($filter).'&person_id_1='.$person_id_1.'&person_id_2='.$person_id_2.'" method="POST">';
echo '<div style="text-align: center"><input type="submit" value="Zusammenlegen" class="button" onclick="return checkPersonen()"></div>';
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr>";
echo '<td valign="top" style="text-align: center;"><span style="font-size: 1.5em; font-style: bold; color: red;">Person wird gelöscht:</span>';
echo '<td valign="top" style="text-align: center;"><span style="font-size: 1.5em; color: red;">Person wird gelöscht:</span>';
// Tabelle 1
echo '<table id="t1" class="tablesorter" style="padding-right: 5px"><thead><tr>';