Merge branch 'master' into feature-9612/Casetime_Zeitwarnungen_differenzieren

This commit is contained in:
Andreas Österreicher
2021-01-29 15:32:49 +01:00
57 changed files with 5165 additions and 3476 deletions
@@ -115,9 +115,11 @@ class Pruefungsprotokoll extends Auth_Controller
public function saveProtokoll()
{
$abschlusspruefung_id = $this->input->post('abschlusspruefung_id');
$data = $this->input->post('protocoldata');
$freigebendata = $this->input->post('freigebendata');
$protocoldata = $this->input->post('protocoldata');
if (isset($abschlusspruefung_id) && is_numeric($abschlusspruefung_id) && isset($data))
if (isset($abschlusspruefung_id) && is_numeric($abschlusspruefung_id)
&& isset($freigebendata['freigeben']) && isset($protocoldata))
{
// check permission
$berechtigt = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id);
@@ -125,15 +127,14 @@ class Pruefungsprotokoll extends Auth_Controller
$this->outputJsonError(getError($berechtigt));
else
{
$freigabe = isset($data['freigabedatum']) && $data['freigabedatum'];
$freigabe = $freigebendata['freigeben'] === 'true';
if ($freigabe)
{
// Verify password
$password = $data['password'];
unset($data['password']);
if (!isEmptyString($password))
if (isset($freigebendata['password']) && !isEmptyString($freigebendata['password']))
{
$password = $freigebendata['password'];
$result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
if (isError($result))
{
@@ -146,7 +147,8 @@ class Pruefungsprotokoll extends Auth_Controller
}
}
$data = $this->_prepareAbschlusspruefungDataForSave($data);
$data = $this->_prepareAbschlusspruefungDataForSave($protocoldata, $freigabe);
$result = $this->AbschlusspruefungModel->update($abschlusspruefung_id, $data);
if (hasData($result))
@@ -213,7 +215,7 @@ class Pruefungsprotokoll extends Auth_Controller
* @param $data
* @return array
*/
private function _prepareAbschlusspruefungDataForSave($data)
private function _prepareAbschlusspruefungDataForSave($data, $freigabe)
{
$nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll');
foreach ($data as $idx => $item)
@@ -222,7 +224,7 @@ class Pruefungsprotokoll extends Auth_Controller
$data[$idx] = null;
}
if (isset($data['freigabedatum']) && $data['freigabedatum'])
if ($freigabe === true)
$data['freigabedatum'] = date('Y-m-d');
return $data;
@@ -92,7 +92,8 @@ class Lehrauftrag extends Auth_Controller
// Retrieve studiengaenge the user is entitled for to populate studiengang dropdown
if (!$studiengang_kz_arr = $this->permissionlib->getSTG_isEntitledFor(self::BERECHTIGUNG_LEHRAUFTRAG_BESTELLEN)) {
show_error('Fehler bei Berechtigungsprüfung');
show_error('Keine Studiengänge gefunden.<br>
Es muss eine passende Organisationseinheit hinterlegt werden.<br>');
}
// If studiengang_kz get param was set, check against entitled stg
+8 -6
View File
@@ -18,7 +18,8 @@ abstract class JOB_Controller extends CLI_Controller
// Loads LogLib with different debug trace levels to get data of the job that extends this class
// It also specify parameters to set database fields
$this->load->library('LogLib',
$this->load->library(
'LogLib',
array(
'classIndex' => 5,
'functionIndex' => 5,
@@ -29,7 +30,8 @@ abstract class JOB_Controller extends CLI_Controller
'requestDataFormatter' => function($data) {
return json_encode($data);
}
)
),
'LogLibJob' // library alias case sensitive
);
}
@@ -84,16 +86,16 @@ abstract class JOB_Controller extends CLI_Controller
switch($level)
{
case LogLib::INFO:
$this->loglib->logInfoDB($data);
$this->LogLibJob->logInfoDB($data);
break;
case LogLib::DEBUG:
$this->loglib->logDebugDB($data);
$this->LogLibJob->logDebugDB($data);
break;
case LogLib::WARNING:
$this->loglib->logWarningDB($data);
$this->LogLibJob->logWarningDB($data);
break;
case LogLib::ERROR:
$this->loglib->logErrorDB($data);
$this->LogLibJob->logErrorDB($data);
break;
}
}
+1 -1
View File
@@ -20,7 +20,7 @@ abstract class JQW_Controller extends JOB_Controller
parent::__construct();
// Changes the needed configs for LogLib
$this->loglib->setConfigs(
$this->LogLibJob->setConfigs(
array(
'dbExecuteUser' => 'Jobs queue system',
'requestId' => 'JQW'
+78 -8
View File
@@ -215,6 +215,31 @@ class MessageLib
return $messageVars; // otherwise returns the error
}
/**
* Retrieves message vars of the logged in user from view vw_msg_vars_user
*/
public function getMessageVarsLoggedInUser()
{
// Retrieves message vars from view vw_msg_vars
$messageVars = $this->_ci->MessageModel->getMsgVarsLoggedInUser();
if (isSuccess($messageVars)) // if everything is ok
{
$variablesArray = array();
$tmpVariablesArray = getData($messageVars);
// Starts from 1 to skip the first element which is uid
for ($i = 1; $i < count($tmpVariablesArray); $i++)
{
$variablesArray['{'.str_replace(' ', '_', strtolower($tmpVariablesArray[$i])).'}']
= strtoupper($tmpVariablesArray[$i]);
}
return success($variablesArray);
}
return $messageVars; // otherwise returns the error
}
/**
* Retrieves organisation units for each role that a user plays inside that organisation unit
@@ -595,11 +620,24 @@ class MessageLib
$this->_ci->load->model('person/Benutzer_model', 'BenutzerModel');
// And the receiver has an active account for the given organisation unit
$benutzerResult = $this->_ci->BenutzerModel->getActiveUserByPersonIdAndOrganisationUnit($message->receiver_id, $message->sender_ou);
$benutzerResult = $this->_ci->BenutzerModel->getActiveUserByPersonIdAndOrganisationUnit(
$message->receiver_id,
$message->sender_ou
);
if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it
// Use the uid + domain email
if (hasData($benutzerResult)) $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN;
// If an active user for the given organization unit was found
if (hasData($benutzerResult))
{
// Checks if the user was NOT created in the last 24 hours
if (getData($benutzerResult)[0]->insertamum < date('Y-m-d H:i:s', strtotime('-1 day')))
{
// Use the uid + domain email
$message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN;
}
// otherwise do NOT use the internal email account
}
}
// Otherwise try with the private email
@@ -644,7 +682,7 @@ class MessageLib
// If there are presetudent
if (hasData($prestudentResults))
{
$inArray = true;
$privateOnly = false;
$organisationUnits = getData($prestudentResults);
// Look if any of the organization units of this prestudent are in the list of the
@@ -652,16 +690,21 @@ class MessageLib
foreach ($organisationUnits as $organisationUnit)
{
// If the recipient organisation unit is NOT in the list of organisation units that sent only to private emails
// NOTE: done in this way because it is easyer to check the result of array_search
if (array_search($organisationUnit, $this->_ci->config->item(self::CFG_OU_RECEIVERS_PRIVATE)) === false)
{
$inArray = false;
// NOP
}
else // otherwise If the recipient organisation unit is the list of organisation units that sent only to private emails
{
$privateOnly = true;
break;
}
}
// If the recipient prestudent organization unit is not in in the list of the
// organization units that will not send the notice email to the internal account
if (!$inArray)
if ($privateOnly)
{
// Then use the private email
$privateEmailResult = $this->_getPrivateEmail($message->receiver_id);
@@ -676,10 +719,37 @@ class MessageLib
$this->_ci->BenutzerModel->addOrder('updateamum', 'DESC');
$this->_ci->BenutzerModel->addOrder('insertamum', 'DESC');
$benutzerResult = $this->_ci->BenutzerModel->loadWhere(array('person_id' => $message->receiver_id));
$benutzerResult = $this->_ci->BenutzerModel->loadWhere(
array(
'person_id' => $message->receiver_id
)
);
if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it
$message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; // Use the uid + domain email
// If an active user for the given organization unit was found
if (hasData($benutzerResult))
{
// For each benutzer found for this person
foreach (getData($benutzerResult) as $benutzer)
{
// Checks if the user was NOT created in the last 24 hours
if (getData($benutzerResult)[0]->insertamum < date('Y-m-d H:i:s', strtotime('-1 day')))
{
// Use the uid + domain as email address
$message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN;
}
}
}
// Otherwise try with the private email
if (isEmptyString($message->receiverContact))
{
// Then use the private email
$privateEmailResult = $this->_getPrivateEmail($message->receiver_id);
if (isError($privateEmailResult)) return $privateEmailResult; // if an error occured then return it
if (hasData($privateEmailResult)) $message->receiverContact = getData($privateEmailResult);
}
}
}
}
+79 -3
View File
@@ -48,6 +48,9 @@ class Messages_model extends CI_Model
$this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel');
// Loads model Prestudent_model
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
// Loads model Benutzer_model
$this->load->model('person/Benutzer_model', 'BenutzerModel');
}
//------------------------------------------------------------------------------------------------------------------
@@ -402,7 +405,10 @@ class Messages_model extends CI_Model
// Looping on receivers data
foreach (getData($msgVarsData) as $receiver)
{
$msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)$receiver); // replaces array keys
// Merge receivers data with logged in user data
$msgVarsDataArray = $this->_addMsgVarsDataOfLoggedInUser($receiver);
$msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)getData($msgVarsDataArray)[0]); // replaces array keys
$parsedSubject = parseText($subject, $msgVarsDataArray);
$parsedBody = parseText($body, $msgVarsDataArray);
@@ -466,6 +472,15 @@ class Messages_model extends CI_Model
if (!hasData($msgVarsData)) show_error('No recipients were given');
$prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents);
// Get the senders uid (if user is an active employee)
$this->BenutzerModel->addSelect('uid');
$this->BenutzerModel->addJoin('public.tbl_mitarbeiter ma', 'ma.mitarbeiter_uid = uid');
if (!$result = getData($this->BenutzerModel->getFromPersonId($sender_id)))
{
show_error('No sender_uid found');
}
$sender_uid = $result[0]->uid;
// Adds the organisation unit to each prestudent
if (isEmptyString($oe_kurzbz) && hasData($msgVarsData) && hasData($prestudentsData))
@@ -475,7 +490,15 @@ class Messages_model extends CI_Model
foreach (getData($msgVarsData) as $receiver)
{
$msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)$receiver); // replaces array keys
/**
* Merge receivers data with senders data
* NOTE: _addMsgVarsDataOfLoggedInUser usually retrieves data of the logged in user that is set in the
* templates user fields. As sendExplicitTemplateSenderId is run by a job, a sender uid is passed to be used
* instead the logged in user.
*/
$msgVarsDataArray = $this->_addMsgVarsDataOfLoggedInUser($receiver, $sender_uid);
$msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)getData($msgVarsDataArray)[0]); // replaces array keys
// Additional message variables
if (is_array($msgVars)) $msgVarsDataArray = array_merge($msgVarsDataArray, $msgVars);
@@ -606,6 +629,9 @@ class Messages_model extends CI_Model
$parseMessageText = error('The given person_id is not a valid number');
if (is_numeric($person_id)) $parseMessageText = $this->MessageModel->getMsgVarsDataByPersonId($person_id);
// Add message vars data of the logged in user
$parseMessageText = $this->_addMsgVarsDataOfLoggedInUser($parseMessageText);
if (hasData($parseMessageText))
{
@@ -629,7 +655,10 @@ class Messages_model extends CI_Model
$parseMessageText = error('The given prestudent_id is not a valid number');
if (is_numeric($prestudent_id)) $parseMessageText = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
// Add message vars data of the logged in user
$parseMessageText = $this->_addMsgVarsDataOfLoggedInUser($parseMessageText);
if (hasData($parseMessageText))
{
$parseMessageText = success(
@@ -839,6 +868,26 @@ class Messages_model extends CI_Model
$variables[] = $tmpVar;
}
// ---------------------------------------------------------------------------------------
// Retrieves message vars of logged in user from database view vw_msg_vars_person
$result = null;
// If data contains a prestudent id
$result = $this->messagelib->getMessageVarsLoggedInUser();
if (isError($result)) show_error(getError($result));
// Then builds an array that contains objects with field name and field description of logged in user data
$user_fields = array();
foreach (getData($result) as $id => $description)
{
$obj = new stdClass();
$obj->id = $id;
$obj->description = $description;
$user_fields[] = $obj;
}
// ---------------------------------------------------------------------------------------
// Retrieves the sender id
@@ -859,6 +908,7 @@ class Messages_model extends CI_Model
'subject' => $replySubject,
'body' => $replyBody,
'variables' => $variables,
'user_fields' => $user_fields,
'organisationUnits' => getData($organisationUnits),
'senderIsAdmin' => getData($senderIsAdmin),
'recipientsArray' => $recipientsArray,
@@ -867,4 +917,30 @@ class Messages_model extends CI_Model
'type' => $type
);
}
/**
* Adds message vars data of the logged in user to the given object (that should also have message vars data)
* @param object $otherMsgVarsDataObj Can be success object or simple object.
* @return object Returns success object.
*/
public function _addMsgVarsDataOfLoggedInUser($otherMsgVarsDataObj, $uid = null)
{
// First check if param type is object
if (!is_object($otherMsgVarsDataObj)) show_error('Must pass an object to merge with data of logged in user');
// If it is a return object, extract the simple data object
if (isSuccess($otherMsgVarsDataObj))
{
$otherMsgVarsDataObj = getData($otherMsgVarsDataObj)[0];
}
// Retrieve message vars data of the logged in user
if (!$msgVarsDataLoggedInUser = getData($this->MessageModel->getMsgVarsDataByLoggedInUser($uid))[0])
{
return success($otherMsgVarsDataObj); // If failed, return at least given object as expected success object
}
return success(array((object)(array_merge((array) $otherMsgVarsDataObj, (array) $msgVarsDataLoggedInUser))));
}
}
@@ -119,9 +119,10 @@ class Lehrveranstaltung_model extends DB_Model
* Gets all students of a Lehrveranstaltung
* @param $studiensemester_kurzbz
* @param $lehrveranstaltung_id
* @param $active optional, if true, only active students retrieved, false - only inactive, all students otherwise
* @return array|null
*/
public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id)
public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id, $active = null)
{
$query = "SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr,
@@ -144,8 +145,18 @@ class Lehrveranstaltung_model extends DB_Model
WHERE
vw_student_lehrveranstaltung.studiensemester_kurzbz=?
AND
vw_student_lehrveranstaltung.lehrveranstaltung_id=?
ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC";
vw_student_lehrveranstaltung.lehrveranstaltung_id=?";
if (isset($active))
{
if ($active === true)
$query .= " AND tbl_benutzer.aktiv";
elseif ($active === false)
$query .= " AND tbl_benutzer.aktiv = false";
}
$query .=
" ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC";
return $this->execQuery($query, array($studiensemester_kurzbz, $lehrveranstaltung_id));
}
@@ -33,7 +33,7 @@ class Organisationseinheit_model extends DB_Model
FROM tree JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz = oe.oe_parent_kurzbz)
)
SELECT oe_kurzbz AS id,
SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description
SUBSTRING(REGEXP_REPLACE(path, '[A-z0-9]+\|', '-', 'g') || bezeichnung, 2) AS description
FROM tree";
$parametersArray = array();
@@ -132,7 +132,7 @@ class Studiensemester_model extends DB_Model
$query .= ' WHERE SUBSTRING(studiensemester_kurzbz FROM 1 FOR 2) = \'' . $ss . '\'';
}
$query .= ' ORDER BY delta LIMIT 1';
$query .= ' ORDER BY delta, start LIMIT 1';
return $this->execQuery($query);
}
@@ -188,7 +188,7 @@ class Studiensemester_model extends DB_Model
{
$query = "SELECT studiensemester_kurzbz, start, ende FROM public.vw_studiensemester
WHERE studiensemester_kurzbz <> ?
ORDER BY delta LIMIT 1";
ORDER BY delta, start LIMIT 1";
return $this->execQuery($query, array($studiensemester_kurzbz));
}
+11 -7
View File
@@ -23,13 +23,17 @@ class Benutzer_model extends DB_Model
*/
public function getActiveUserByPersonIdAndOrganisationUnit($person_id, $oe_kurzbz)
{
$sql = 'SELECT b.uid
FROM public.tbl_benutzer b
JOIN public.tbl_prestudent ps USING (person_id)
JOIN public.tbl_studiengang sg USING (studiengang_kz)
WHERE ps.person_id = ?
AND sg.oe_kurzbz = ?
AND b.aktiv = TRUE';
$sql = 'SELECT
b.uid,
b.insertamum
FROM
public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING (studiengang_kz)
JOIN public.tbl_student USING(prestudent_id)
JOIN public.tbl_benutzer b ON(uid = student_uid)
WHERE ps.person_id = ?
AND sg.oe_kurzbz = ?
AND b.aktiv = TRUE';
return $this->execQuery($sql, array($person_id, $oe_kurzbz));
}
@@ -169,4 +169,33 @@ class Kontakt_model extends DB_Model
return $this->execQuery($qry, array($person_id));
}
/**
* Loads main contact, i.e. most recent Zustellkontakt with the given kontakttypes.
* @param $person_id
* @param $kontakttypen array of kontakttypen, one chronologically last Zustellkontakt for all given types
* @return object
*/
public function getZustellKontakt($person_id, $kontakttypen)
{
if (is_string($kontakttypen))
$kontakttypen = array($kontakttypen);
if (!isEmptyArray($kontakttypen))
{
$qry = "
SELECT
kontakt
FROM
public.tbl_kontakt
WHERE person_id = ?
AND kontakttyp IN ?
ORDER BY zustellung DESC NULLS LAST, updateamum DESC, insertamum DESC
LIMIT 1";
return $this->execQuery($qry, array($person_id, $kontakttypen));
}
else
return success(array());
}
}
@@ -171,6 +171,23 @@ class Message_model extends DB_Model
return error($this->db->error(), FHC_DB_ERROR);
}
}
/**
* Get message variables for logged in user
*/
public function getMsgVarsLoggedInUser()
{
$result = $this->db->query('SELECT * FROM public.vw_msg_vars_user WHERE 0 = 1');
if ($result)
{
return success($result->list_fields());
}
else
{
return error($this->db->error(), FHC_DB_ERROR);
}
}
/**
* getMsgVarsDataByPrestudentId
@@ -191,4 +208,26 @@ class Message_model extends DB_Model
return $this->execQuery(sprintf($query, is_array($person_id) ? 'IN' : '='), array($person_id));
}
/**
* Get message vars data for logged in user
* @param string uid The UID should ONLY be passed if this method is called by a cronjob.
* This is to enable jobs to use templates which use logged-in-user fields ('Eigene Felder').
* @return array|null
*/
public function getMsgVarsDataByLoggedInUser($uid = null)
{
if (is_string($uid))
{
$params = array($uid);
}
else
{
$params = array(getAuthUID());
}
$query = 'SELECT * FROM public.vw_msg_vars_user WHERE my_uid = ?';
return $this->execQuery($query, $params);
}
}
@@ -83,19 +83,41 @@
</label>
<?php
$size = count($variables) > 19 ? 19 : count($variables);
echo $this->widgetlib->widget(
'MultipleDropdown_widget',
array('elements' => success($variables)),
array(
'name' => 'variables[]',
'id' => 'variables',
'size' => count($variables),
'size' => $size,
'multiple' => true
)
);
?>
</div>
<br>
<div class="form-group">
<label>
<?php echo ucfirst($this->p->t('ui', 'meineFelder')); ?>:
</label>
<?php
$size = count($user_fields) > 5 ? 5 : count($user_fields);
echo $this->widgetlib->widget(
'MultipleDropdown_widget',
array('elements' => success($user_fields)),
array(
'name' => 'user_fields[]',
'id' => 'user_fields',
'size' => $size,
'multiple' => true
)
);
?>
</div>
</div>
</div>
<br>
@@ -111,14 +133,15 @@
?>
</div>
<div class="col-lg-7 col-xs-9 text-right">
<button id="sendButton" class="btn btn-default" type="button">
<div class="col-xs-6">
<button id="sendButton" class="btn btn-default pull-right" type="button">
<?php echo $this->p->t('ui', 'senden'); ?>
</button>
</div>
</div>
<br>
<hr>
<div class="row">
<div class="col-lg-12">
+33 -2
View File
@@ -1626,8 +1626,9 @@ function loadPruefungsDetails(prfId)
{
$("#termin"+j+"sammelklausur").text("false");
}
$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='terminLoeschen(\""+d.pruefung.pruefung_id+"\", \""+t.pruefungstermin_id+"\");'><?php echo $p->t('global/löschen'); ?></a></td>");
$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='window.open(\"pruefungstermin_aendern.php?termin_id="+t.pruefungstermin_id+"\",\"edit\",\"height=600,width=500,toolbar=no,titlebar=no,status=no,menubar=no\");'><?php echo $p->t('global/editieren'); ?></a></td>");
//$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='terminLoeschen(\""+d.pruefung.pruefung_id+"\", \""+t.pruefungstermin_id+"\");'><?php //echo $p->t('global/löschen'); ?></a></td>");
$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='window.open(\"pruefungstermin_loeschen.php?pruefung_id="+d.pruefung.pruefung_id+"&termin_id="+t.pruefungstermin_id+"\",\"delete\",\"height=600,width=500,toolbar=no,titlebar=no,status=no,menubar=no\");'><?php echo $p->t('global/löschen'); ?></a></td>");
$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='window.open(\"pruefungstermin_aendern.php?termin_id="+t.pruefungstermin_id+"\",\"edit\",\"height=600,width=500,toolbar=no,titlebar=no,status=no,menubar=no\");'><?php echo $p->t('global/editieren'); ?></a></td>");
terminHinzufuegen("span");
}
});
@@ -1971,6 +1972,36 @@ function terminLoeschen(pruefung_id, pruefungstermin_id)
});
}
/**
* Löscht einen Termin ohne im Anschluss die Prüfungen neu zu laden
* @param {int} pruefung_id ID der Prüfung
* @param {int} pruefungstermin_id ID des Prüfungstermines
* @returns {undefined}
*/
function terminLoeschenOhneLaden(pruefung_id, pruefungstermin_id)
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "deleteTermin",
pruefung_id: pruefung_id,
pruefungstermin_id: pruefungstermin_id
},
error: loadError
}).done(function(data){
if(data.error === "false")
{
messageBox("message", "<?php echo $p->t('pruefung/terminGeloescht'); ?>", "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
});
}
/**
* Lädt alle Prüfungen
* @returns {void}
@@ -0,0 +1,223 @@
<?php
/*
* Copyright 2021 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Nikolaus Krondraf <krondraf@technikum-wien.at>
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/datum.class.php');
require_once('../../../../include/pruefungsfenster.class.php');
require_once('../../../../include/pruefungsanmeldung.class.php');
require_once('../../../../include/lehrveranstaltung.class.php');
require_once('../../../../include/pruefungstermin.class.php');
require_once('../../../../include/studiengang.class.php');
require_once('../../../../include/pruefungCis.class.php');
require_once('../../../../include/mitarbeiter.class.php');
require_once('../../../../include/phrasen.class.php');
require_once('../../../../include/globals.inc.php');
require_once('../../../../include/sprache.class.php');
require_once('../../../../include/mail.class.php');
$sprache = getSprache();
$lang = new sprache();
$lang->load($sprache);
$p = new phrasen($sprache);
$maildebug = '';
$uid = get_uid();
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$studiensemester = new studiensemester();
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNext());
if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
die('Sie haben keine Berechtigung für diese Seite');
if (!ctype_digit($_GET['termin_id']) || !ctype_digit($_GET['pruefung_id']))
die('Wrong Parameter');
else
{
$termin_id = $_GET['termin_id'];
$pruefung_id = $_GET['pruefung_id'];
}
if (isset($_GET["sendmail"], $_GET["message"]) && $_GET["message"] != "")
{
$pruefung = new pruefungCis($pruefung_id);
$pruefung->getLehrveranstaltungenByPruefung();
$lvstr = "";
foreach ($pruefung->lehrveranstaltungen as $lv)
{
$lv_objekt = new lehrveranstaltung($lv->lehrveranstaltung_id);
$lvstr .= "*".$lv_objekt->bezeichnung."* ";
}
$maildebug = 'Mail gesendet an:<br>';
$anmeldung = new pruefungsanmeldung();
$anmeldungen = $anmeldung->getAnmeldungenByTermin($termin_id);
foreach ($anmeldungen as $row)
{
$uid = $row->uid;
$to = $uid.'@'.DOMAIN;
$from = 'no-reply@'.DOMAIN;
$subject = $p->t('pruefung/pruefungStorniert');
$text = $_GET["message"];
$msg = new mail($to, $from, $subject, $text);
if ($msg->send())
$maildebug .= $to." OK<br>";
else
$maildebug .= $to.' Fehler<br>';
}
}
$prfgtermin = new pruefungstermin($termin_id);
$datum = new DateTime(explode(" ", $prfgtermin->von)[0]);
$datum = $datum->format('d.m.Y');
$vonzeit = substr(explode(" ", $prfgtermin->von)[1],0,5);
$biszeit = substr(explode(" ", $prfgtermin->bis)[1],0,5);
$pruefung_id = $prfgtermin->pruefung_id;
$pruefung = new pruefungCis($pruefung_id);
$pruefung->getLehrveranstaltungenByPruefung();
$lvstr = "";
foreach ($pruefung->lehrveranstaltungen as $lv)
{
$lv_objekt = new lehrveranstaltung($lv->lehrveranstaltung_id);
$lvstr .= "*".$lv_objekt->bezeichnung."*";
}
$uids = '';
$anmeldung = new pruefungsanmeldung();
$anmeldungen = $anmeldung->getAnmeldungenByTermin($termin_id);
foreach ($anmeldungen as $row)
{
$uids .= $row->uid.'@'.DOMAIN.'<br>';
}
$nachricht = "Sehr geehrte Studierende,\n\ndie Prüfung zur LV $lvstr am $datum um $vonzeit Uhr wurde abgesagt.";
?><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
<script src="../../../../include/js/datecheck.js"></script>
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js"></script>
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
<script src="./pruefung.js.php"></script>
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
<link rel="stylesheet" href="../../../../skin/style.css.php">
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
<style type="text/css">
#message {
position: fixed;
top: 0px;
right: 0px;
width: 50%;
height: 2em;
font-size: 1.5em;
font-weight: bold;
}
.missingFormData {
border: 2px solid red;
outline: 2px solid red;
}
.modalOverlay {
position: fixed;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
}
#prfDetails, #prfVerwaltung {
margin: 1em;
}
</style>
</head>
<body style="padding-top:20px">
<center>
<div id="message"></div>
<form name="delete_termin" action="./pruefungstermin_loeschen.php" method="get">
<table>
<tr>
<td><?php echo $p->t('global/lehrveranstaltung'); ?></td>
<td><b><?php echo $lvstr; ?></b></td>
</tr>
<tr>
<td><?php echo $p->t('global/datum'); ?></td>
<td><?php echo $datum ?></td>
</tr>
<tr>
<td><?php echo $p->t('global/von'); ?></td>
<td><?php echo $vonzeit ?> Uhr</td>
</tr>
<tr>
<td><?php echo $p->t('global/bis'); ?></td>
<td><?php echo $biszeit ?> Uhr</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?>:</td>
<td><?php echo $uids; ?></td>
</tr>
<tr>
<td colspan="2">
<br>***<br>
<textarea cols="30" rows="10" name="message" placeholder="Bitte Nachricht an Studierende eingeben"><?php echo $nachricht ?></textarea>
<br>***<br>
</td>
</tr>
<tr>
<td colspan="2">
<p style="color: red; font-weight: bold;">Das Infomail ist optional und muss bei Bedarf vor dem Löschen des Termins versendet werden!</p>
<input type="submit" value="Sende Infomail">
<a href='#' onclick='terminLoeschenOhneLaden("<?php echo $pruefung_id ?>", "<?php echo $termin_id ?>");'>
<input type="button" name="loeschen" value="<?php echo $p->t('global/loeschen'); ?>">
</a>
</td>
</tr>
<tr><td colspan="2"><?php echo $maildebug; ?></td></tr>
</table>
<input type="hidden" name="pruefung_id" value="<?php echo $pruefung_id ?>"/>
<input type="hidden" name="termin_id" value="<?php echo $termin_id; ?>"/>
<input type="hidden" name="sendmail" value="1"/>
</form>
</center>
</body>
</html>
+451 -451
View File
@@ -1,456 +1,456 @@
<?php
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at>.
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/student.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiensemester.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
$uid=isset($_GET['uid'])?$_GET['uid']:(isset($_POST['uid'])?$_POST['uid']:get_uid());
$uid=trim($uid);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 's') || !$rechte->isBerechtigt('admin'))
die($rechte->errormsg);
unset($rechte);
header('Content-Type: text/html;charset=UTF-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Anzahl Studenten Lehrveranstaltungsplan FH Technikum-Wien</title>
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<?php
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at>.
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/student.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiensemester.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
$uid=isset($_GET['uid'])?$_GET['uid']:(isset($_POST['uid'])?$_POST['uid']:get_uid());
$uid=trim($uid);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 's') && !$rechte->isBerechtigt('admin'))
die($rechte->errormsg);
unset($rechte);
header('Content-Type: text/html;charset=UTF-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Anzahl Studenten Lehrveranstaltungsplan FH Technikum-Wien</title>
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/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 src="../../../vendor/components/jqueryui/jquery-ui.min.js" type="text/javascript"></script>
<style type="text/css">
<!--
li { list-style : outside url("../../../skin/images/right.gif");}
/* ----------------------------------
Resizable
---------------------------------- */
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
div.info {top:5%;position: absolute;display:none;padding: 5px 5px 5px 5px;border: 1px solid Black;empty-cells : hide;text-align:center;vertical-align: top;z-index: 99;background-color: white; position:absolute;}
div.infoclose {border: 7px outset #008381;padding: 0px 10px 0px 10px;}
div.infodetail {font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;}
-->
</style>
<script type="text/javascript" language="JavaScript1.2">
<!--
$(function()
{
$("#info").resizable();
$("#ui-resizable").draggable();
});
-->
</script>
</head>
<body id="inhalt">
<div id="ui-resizable" class="ui-resizable">
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-e"></div>
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-s"></div>
<div style="z-index: 1001; -moz-user-select: none;" class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se"></div>
<div id="info" class="info">
<div style="border: 7px outset #393939;padding: 10px 10px 10px 10px;">
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr style="color:#FFF;" class="ContentHeader">
<td id="info_print" align="left" style="color:#FFF;cursor: default;" class="ContentHeader">
<div>drucken <img border="0" src="../../../skin/images/printer.png" title="drucken" ><br /></div>
<script type="text/javascript">
$(document).ready(function()
{
$("td#info_print").click(function()
{
el='div#infodetail';
var doc=null;
var tab=false;;
var iframe=false;
if ($.browser.opera || $.browser.mozilla)
{
var tab = window.open("","jqPrint-preview");
tab.document.open();
var doc = tab.document;
}
else
{
var iframe=document.createElement('IFRAME');
document.body.appendChild(iframe);
doc=iframe.contentWindow.document;
}
var links=window.document.getElementsByTagName("link");
for(var i=0;i<links.length;i++)
{
if(links[i].rel.toLowerCase()=="stylesheet")
{
doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');
}
}
doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>');
doc.close();
(tab ? tab : iframe.contentWindow).focus();
setTimeout( function() { ( tab ? tab : iframe.contentWindow).print(); if (tab) { tab.close(); } }, 1000);
});
});
</script>
</td>
<td id="info_close" align="right" style="color:#FFF;cursor: default;" class="ContentHeader">
<div>schliessen <img border="0" src="../../../skin/images/cross.png" title="schliessen">&nbsp;</div>
<script type="text/javascript">
$(document).ready(function()
{
$("td#info_close").click(function(event)
{
$("div#info").hide("slow"); // div# langsam oeffnen
});
});
</script>
</td>
</tr></table>
<div id="infodetail" style="font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;"></div>
<br>
</div>
</div>
</div>
<?php
// Variablen uebernehmen
$datum=(isset($_GET['datum'])?$_GET['datum']:(isset($_POST['datum'])?$_POST['datum']:time()));
$stpl_table=(isset($_GET['stpl_table'])?$_GET['stpl_table']:'stundenplan');
$montag=montag($datum);
$letzterTag=mktime(0,0,0,date('m',$montag),date('d',$montag) + TAGE_PRO_WOCHE,date('Y',$montag));
$letzterTagAnzeige=mktime(0,0,0,date('m',$montag),date('d',$montag) + ( TAGE_PRO_WOCHE - 1),date('Y',$montag));
// Vorbelegen der Wochennavigation
$kwRet=mktime(0,0,0,date('m',$montag),date('d',$montag) -7 ,date('Y',$montag));
$kwVor=mktime(0,0,0,date('m',$montag),date('d',$montag) +7 ,date('Y',$montag));
$kw=strftime('%W',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
$adresse_id=(isset($_GET['adresse_id'])?$_GET['adresse_id']:(isset($_POST['adresse_id'])?$_POST['adresse_id']:1));
// Datum Anzeige Header
$tag=strftime('%a %d',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
$tag_monat=strftime('%a %d %b',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
$tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
$letzter_tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$letzterTagAnzeige),date('d',$letzterTagAnzeige),date('Y',$letzterTagAnzeige)));
// Beginn Ende setzen
$objSS=new studiensemester();
$ss=$objSS->getaktorNext();
$objSS->load($ss);
$datum_obj = new datum();
$ss_begin=$datum_obj->mktime_fromdate($objSS->start);
$ss_ende=$datum_obj->mktime_fromdate($objSS->ende);
$sql_query=' select tbl_adresse.plz,tbl_adresse.name, sum(tbl_ort.max_person) as summe ';
$sql_query.=' from public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
$sql_query.=" where tbl_standort.standort_id=tbl_ort.standort_id ";
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
$sql_query.=" and tbl_ort.aktiv and tbl_ort.lehre ";
$sql_query.=" group by tbl_adresse.plz,tbl_adresse.name ";
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
if(!$results_anzahl=$db->db_query($sql_query))
die($db->db_last_error());
$raum_max_anz=0;
$fh_name='FH lese fehler';
if ($num_rows_anzahl=$db->db_num_rows($results_anzahl))
{
$fh_name = $db->db_result($results_anzahl,0,"name").', '.$db->db_result($results_anzahl,0,"plz");
$raum_max_anz = $db->db_result($results_anzahl,0,"summe");
}
$stg=array();
echo '<H2><table class="tabcontent"><tr><td>
&nbsp;Lehrveranstaltungsplan &gt;&gt; <a class="Item" href="index.php">Wochenplan</a> - Anzahl Studenten
&nbsp;&nbsp;&nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.$kwRet.'&amp;stpl_table='.$stpl_table.'">&lt;&lt;</a>
Wochenplan &nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.$datum.'&amp;stpl_table='.$stpl_table.'">Kw '.$kw.'</a>
&nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.$kwVor.'&amp;stpl_table='.$stpl_table.'">&gt;&gt;</a>
&nbsp;&nbsp;&nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.time().'&amp;stpl_table='.$stpl_table.'">Heute</a>
</td></tr></table></H2>';
// Stundentafel abfragen
$sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde";
if(!$results=$db->db_query($sql_query))
die($db->db_last_error());
echo '<table class="tabcontent" style=" z-index: 1;">';
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 1 ) .'">'. $fh_name .'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
echo '<tr>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">Stunde</td>';
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&nbsp;'.date('d M',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
}
echo '</tr>';
$max_person_array=array();
$num_rows_stunde=$db->db_num_rows($results);
echo '<tr>';
for ($k=0; $k<$num_rows_stunde; $k++)
{
$row = $db->db_fetch_object($results, $k);
$row->show_beginn=substr($row->beginn,0,5);
$row->show_ende=substr($row->ende,0,5);
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
$lehreinheiten=array();
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
// Init je Tag und Std.
$fehler=false;
$aktiv=false;
$max_person=0;
$day= date('Ymd',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag)));
if ($day== date('Ymd') && date('Hi') >= $row->check_beginn && date('Hi')<=$row->check_ende )
$aktiv=true;
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
$sql_query=' select distinct vw_'.$stpl_table.'.stg_bezeichnung as bezeichnung,vw_'.$stpl_table.'.stg_kurzbzlang as kurzbzlang,vw_'.$stpl_table.'.stg_kurzbz as kurzbz, vw_'.$stpl_table.'.'.$stpl_table.'_id,vw_'.$stpl_table.'.lehrform, vw_'.$stpl_table.'.gruppe, vw_'.$stpl_table.'.gruppe_kurzbz, vw_'.$stpl_table.'.unr,vw_'.$stpl_table.'.verband,vw_'.$stpl_table.'.ort_kurzbz,vw_'.$stpl_table.'.lehreinheit_id,vw_'.$stpl_table.'.studiengang_kz,vw_'.$stpl_table.'.semester,tbl_ort.max_person,tbl_standort.adresse_id,tbl_adresse.plz,tbl_adresse.name ';
$sql_query.=' from lehre.vw_'.$stpl_table.', public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
$sql_query.=" where vw_".$stpl_table.".datum=".$db->db_add_param(date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))))." ";
$sql_query.=" and vw_".$stpl_table.".stunde=".$db->db_add_param($row->stunde, FHC_INTEGER)." ";
$sql_query.=" and tbl_ort.ort_kurzbz=vw_".$stpl_table.".ort_kurzbz ";
$sql_query.=" and tbl_standort.standort_id=tbl_ort.standort_id ";
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
$sql_query.=" order by tbl_adresse.plz,vw_".$stpl_table.".ort_kurzbz ";
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
if(!$results_anzahl=$db->db_query($sql_query))
die($db->db_last_error());
$num_rows_anzahl=$db->db_num_rows($results_anzahl);
$gefunden_anz=0;
$tooltip='';
for ($k_anz=0; $k_anz<$num_rows_anzahl; $k_anz++)
{
$row_anz = $db->db_fetch_object($results_anzahl, $k_anz);
// Lehreinheit wird aufgeteilt in zwei Raeume - nicht verarbeiten , das sind die selben Personen
if (isset($lehreinheiten[trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz)]))
continue;
$lehreinheiten[$row_anz->lehreinheit_id]=trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz);
$max_person=$row_anz->max_person+$max_person;
$row_anz->verband=trim($row_anz->verband);
$row_anz->gruppe=trim($row_anz->gruppe);
$row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz);
$stsem=$ss;
$gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null);
$student=new student();
$row_anz->anz=0;
if ($result=$student->getStudents($row_anz->studiengang_kz,$row_anz->semester,$row_anz->verband,$row_anz->gruppe,$gruppe, $stsem))
$row_anz->anz=count($result);
if (empty($row_anz->anz))
$fehler=true;
$lvb=$row_anz->kurzbzlang.'-'.$row_anz->semester;
if (!is_null($row_anz->verband) && !empty($row_anz->verband))
{
$lvb.=$row_anz->verband;
if (!is_null($row_anz->gruppe) && !empty($row_anz->gruppe) )
$lvb.=$row_anz->gruppe;
}
if (!empty($k_anz))
$tooltip.='</tr><tr>';
else
$tooltip.='<tr><th colspan=\'4\'>'. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.$row->show_beginn.' - '.$row->show_ende.'</th><th>Anzahl</th></tr>';
$tooltip.='<td title=\'Stundenplan ID '.($stpl_table=='stundenplan'?$row_anz->stundenplan_id:$row_anz->stundenplandev_id).'\'><b>'.trim($row_anz->ort_kurzbz).'</b>&nbsp;</td><td><a href=\'stpl_detail.php?type=ort&datum='.date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&stunde='.$row->stunde.'&pers_uid='.$uid.'&stg_kz=&sem=&ver=&grp=&ort_kurzbz='.trim($row_anz->ort_kurzbz).'\' target=\'_blank\' titel=\'Studiengang Kz '.$row_anz->studiengang_kz.'\'>'.$lvb.'</a>&nbsp;</td><td>'.$row_anz->gruppe_kurzbz.'&nbsp;</td><td>'.(!$row_anz->anz?'<font color=\'Maroon\'>':'').$row_anz->bezeichnung.(!$row_anz->anz?'</font>':'').'&nbsp;</td><td>'.$row_anz->anz.'</td>';
$gefunden_anz+=$row_anz->anz;
}
if (!empty($gefunden_anz))
{
$tooltip.='<tr><td colspan=\'4\' align=\'right\'>max.Personen:'.$max_person.' Belegung:'. number_format($gefunden_anz / $max_person,2)*100 .'% <b>Ges.:</b></td><td><b>'.$gefunden_anz.'</b></td></tr>';
echo '<br><img id="img_'.$i.'_'.$k.'" src="../../../skin/images/sticky.png" title="Detailanzeige"> <b'.($fehler?' style="color:red;" ':'').'> Gesamt: </b>'.$gefunden_anz;
echo '<script type="text/javascript">
$(document).ready(function()
{
$("img#img_'.$i.'_'.$k.'").click(function(event)
{
$("div#infodetail").html("<table border=\"0\"><tr>'.$tooltip.'</tr></table>");
$("div#info").show("slow"); // div# langsam oeffnen
});
});
</script>';
}
echo '</td>';
if (!isset($max_person_array[$i]['tag']))
$max_person_array[$i]['tag']=0;
$max_person_array[$i]['tag']=$max_person_array[$i]['tag']+$gefunden_anz;
if (!isset($max_person_array[$i]['tag_max']))
$max_person_array[$i]['tag_max']=0;
$max_person_array[$i]['tag_max']=$max_person_array[$i]['tag_max']+$max_person;
if (!isset($max_person_array[$k]['stunde']))
$max_person_array[$k]['stunde']=0;
$max_person_array[$k]['stunde']=$max_person_array[$k]['stunde']+$gefunden_anz;
if (!isset($max_person_array[$k]['stunde_max']))
$max_person_array[$k]['stunde_max']=0;
$max_person_array[$k]['stunde_max']=$max_person_array[$k]['stunde_max']+$max_person;
if (!isset($max_person_array[$i][$k]['tag_stunde']))
$max_person_array[$i][$k]['tag_stunde']=0;
$max_person_array[$i][$k]['tag_stunde']=$max_person_array[$i][$k]['tag_stunde']+$gefunden_anz;
if (!isset($max_person_array[$i][$k]['tag_stunde_max']))
$max_person_array[$i][$k]['tag_stunde_max']=0;
$max_person_array[$i][$k]['tag_stunde_max']=$max_person_array[$i][$k]['tag_stunde_max']+$max_person;
}
echo '</tr>';
}
echo '</table>';
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if($rechte->isBerechtigt('admin'))
{
echo '<table class="tabcontent" style=" z-index: 1;">';
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 2 ) .'">'. $fh_name .'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
echo '<tr>';
echo '<td colspan="2" style="text-align:center;color:#FFF;" class="ContentHeader">Zeit / Datum &ndash;&nbsp;</td>';
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&nbsp;'. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
}
echo '</tr>';
$stunde_proz=0;
$stunde=0;
$stunde_max=0;
for ($k=0; $k<$num_rows_stunde; $k++)
{
$row = $db->db_fetch_object($results, $k);
$row->show_beginn=substr($row->beginn,0,5);
$row->show_ende=substr($row->ende,0,5);
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
echo '<tr>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
echo 'anz.:'.$max_person_array[$k]['stunde'];
echo '<br>';
echo 'FH&nbsp;&nbsp;&nbsp;'.($raum_max_anz*TAGE_PRO_WOCHE);
echo '<br>';
echo ' &Oslash;&nbsp;'.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde'])/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
echo '<br>';
echo 'Raum&nbsp;'.$max_person_array[$k]['stunde_max'];
echo '<br>';
echo ' &Oslash;&nbsp;'.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde']/TAGE_PRO_WOCHE) / ($max_person_array[$k]['stunde_max']/TAGE_PRO_WOCHE),2)*100:0).'%';
echo '</td>';
$stunde=$stunde+$max_person_array[$k]['stunde'];
$stunde_max=$stunde_max+$max_person_array[$k]['stunde_max'];
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
echo 'anz.:'.$max_person_array[$i][$k]['tag_stunde'];
echo '<br>';
echo 'FH&nbsp;&nbsp;&nbsp;max.:'. $raum_max_anz;
echo '<br>';
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $raum_max_anz,2)*100:0).'%';
echo '<br>';
echo 'Raum max.:'. $max_person_array[$i][$k]['tag_stunde_max'];
echo '<br>';
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $max_person_array[$i][$k]['tag_stunde_max'],2)*100:0).'%';
echo '</td>';
}
echo '</tr>';
}
echo '<tr>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">&Oslash;</td>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
echo 'FH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&Oslash;&nbsp;'.($stunde?number_format(($stunde)/$num_rows_stunde/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
echo '<br>';
echo 'Raum&nbsp;&Oslash;&nbsp;'.($stunde_max?number_format(($stunde/$num_rows_stunde/TAGE_PRO_WOCHE) / ($stunde_max/$num_rows_stunde/TAGE_PRO_WOCHE),2)*100:0).'%';
echo '</td>';
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
echo 'FH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&Oslash;&nbsp;'.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / ($raum_max_anz *$num_rows_stunde),2)*100:0).'%';
echo '<br>';
echo 'Raum&nbsp;&Oslash;&nbsp;'.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / $max_person_array[$i]['tag_max'],2)*100:0).'%';
echo '</td>';
}
echo '</tr>';
echo '</table>';
}
?>
</BODY>
</HTML>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
<script src="../../../vendor/components/jqueryui/jquery-ui.min.js" type="text/javascript"></script>
<style type="text/css">
<!--
li { list-style : outside url("../../../skin/images/right.gif");}
/* ----------------------------------
Resizable
---------------------------------- */
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
div.info {top:5%;position: absolute;display:none;padding: 5px 5px 5px 5px;border: 1px solid Black;empty-cells : hide;text-align:center;vertical-align: top;z-index: 99;background-color: white; position:absolute;}
div.infoclose {border: 7px outset #008381;padding: 0px 10px 0px 10px;}
div.infodetail {font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;}
-->
</style>
<script type="text/javascript" language="JavaScript1.2">
<!--
$(function()
{
$("#info").resizable();
$("#ui-resizable").draggable();
});
-->
</script>
</head>
<body id="inhalt">
<div id="ui-resizable" class="ui-resizable">
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-e"></div>
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-s"></div>
<div style="z-index: 1001; -moz-user-select: none;" class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se"></div>
<div id="info" class="info">
<div style="border: 7px outset #393939;padding: 10px 10px 10px 10px;">
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr style="color:#FFF;" class="ContentHeader">
<td id="info_print" align="left" style="color:#FFF;cursor: default;" class="ContentHeader">
<div>drucken <img border="0" src="../../../skin/images/printer.png" title="drucken" ><br /></div>
<script type="text/javascript">
$(document).ready(function()
{
$("td#info_print").click(function()
{
el='div#infodetail';
var doc=null;
var tab=false;;
var iframe=false;
if ($.browser.opera || $.browser.mozilla)
{
var tab = window.open("","jqPrint-preview");
tab.document.open();
var doc = tab.document;
}
else
{
var iframe=document.createElement('IFRAME');
document.body.appendChild(iframe);
doc=iframe.contentWindow.document;
}
var links=window.document.getElementsByTagName("link");
for(var i=0;i<links.length;i++)
{
if(links[i].rel.toLowerCase()=="stylesheet")
{
doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');
}
}
doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>');
doc.close();
(tab ? tab : iframe.contentWindow).focus();
setTimeout( function() { ( tab ? tab : iframe.contentWindow).print(); if (tab) { tab.close(); } }, 1000);
});
});
</script>
</td>
<td id="info_close" align="right" style="color:#FFF;cursor: default;" class="ContentHeader">
<div>schliessen <img border="0" src="../../../skin/images/cross.png" title="schliessen">&nbsp;</div>
<script type="text/javascript">
$(document).ready(function()
{
$("td#info_close").click(function(event)
{
$("div#info").hide("slow"); // div# langsam oeffnen
});
});
</script>
</td>
</tr></table>
<div id="infodetail" style="font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;"></div>
<br>
</div>
</div>
</div>
<?php
// Variablen uebernehmen
$datum=(isset($_GET['datum'])?$_GET['datum']:(isset($_POST['datum'])?$_POST['datum']:time()));
$stpl_table=(isset($_GET['stpl_table'])?$_GET['stpl_table']:'stundenplan');
$montag=montag($datum);
$letzterTag=mktime(0,0,0,date('m',$montag),date('d',$montag) + TAGE_PRO_WOCHE,date('Y',$montag));
$letzterTagAnzeige=mktime(0,0,0,date('m',$montag),date('d',$montag) + ( TAGE_PRO_WOCHE - 1),date('Y',$montag));
// Vorbelegen der Wochennavigation
$kwRet=mktime(0,0,0,date('m',$montag),date('d',$montag) -7 ,date('Y',$montag));
$kwVor=mktime(0,0,0,date('m',$montag),date('d',$montag) +7 ,date('Y',$montag));
$kw=strftime('%W',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
$adresse_id=(isset($_GET['adresse_id'])?$_GET['adresse_id']:(isset($_POST['adresse_id'])?$_POST['adresse_id']:1));
// Datum Anzeige Header
$tag=strftime('%a %d',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
$tag_monat=strftime('%a %d %b',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
$tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
$letzter_tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$letzterTagAnzeige),date('d',$letzterTagAnzeige),date('Y',$letzterTagAnzeige)));
// Beginn Ende setzen
$objSS=new studiensemester();
$ss=$objSS->getaktorNext();
$objSS->load($ss);
$datum_obj = new datum();
$ss_begin=$datum_obj->mktime_fromdate($objSS->start);
$ss_ende=$datum_obj->mktime_fromdate($objSS->ende);
$sql_query=' select tbl_adresse.plz,tbl_adresse.name, sum(tbl_ort.max_person) as summe ';
$sql_query.=' from public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
$sql_query.=" where tbl_standort.standort_id=tbl_ort.standort_id ";
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
$sql_query.=" and tbl_ort.aktiv and tbl_ort.lehre ";
$sql_query.=" group by tbl_adresse.plz,tbl_adresse.name ";
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
if(!$results_anzahl=$db->db_query($sql_query))
die($db->db_last_error());
$raum_max_anz=0;
$fh_name='FH lese fehler';
if ($num_rows_anzahl=$db->db_num_rows($results_anzahl))
{
$fh_name = $db->db_result($results_anzahl,0,"name").', '.$db->db_result($results_anzahl,0,"plz");
$raum_max_anz = $db->db_result($results_anzahl,0,"summe");
}
$stg=array();
echo '<H2><table class="tabcontent"><tr><td>
&nbsp;Lehrveranstaltungsplan &gt;&gt; <a class="Item" href="index.php">Wochenplan</a> - Anzahl Studenten
&nbsp;&nbsp;&nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.$kwRet.'&amp;stpl_table='.$stpl_table.'">&lt;&lt;</a>
Wochenplan &nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.$datum.'&amp;stpl_table='.$stpl_table.'">Kw '.$kw.'</a>
&nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.$kwVor.'&amp;stpl_table='.$stpl_table.'">&gt;&gt;</a>
&nbsp;&nbsp;&nbsp;<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&amp;datum='.time().'&amp;stpl_table='.$stpl_table.'">Heute</a>
</td></tr></table></H2>';
// Stundentafel abfragen
$sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde";
if(!$results=$db->db_query($sql_query))
die($db->db_last_error());
echo '<table class="tabcontent" style=" z-index: 1;">';
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 1 ) .'">'. $fh_name .'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
echo '<tr>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">Stunde</td>';
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&nbsp;'.date('d M',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
}
echo '</tr>';
$max_person_array=array();
$num_rows_stunde=$db->db_num_rows($results);
echo '<tr>';
for ($k=0; $k<$num_rows_stunde; $k++)
{
$row = $db->db_fetch_object($results, $k);
$row->show_beginn=substr($row->beginn,0,5);
$row->show_ende=substr($row->ende,0,5);
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
$lehreinheiten=array();
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
// Init je Tag und Std.
$fehler=false;
$aktiv=false;
$max_person=0;
$day= date('Ymd',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag)));
if ($day== date('Ymd') && date('Hi') >= $row->check_beginn && date('Hi')<=$row->check_ende )
$aktiv=true;
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
$sql_query=' select distinct vw_'.$stpl_table.'.stg_bezeichnung as bezeichnung,vw_'.$stpl_table.'.stg_kurzbzlang as kurzbzlang,vw_'.$stpl_table.'.stg_kurzbz as kurzbz, vw_'.$stpl_table.'.'.$stpl_table.'_id,vw_'.$stpl_table.'.lehrform, vw_'.$stpl_table.'.gruppe, vw_'.$stpl_table.'.gruppe_kurzbz, vw_'.$stpl_table.'.unr,vw_'.$stpl_table.'.verband,vw_'.$stpl_table.'.ort_kurzbz,vw_'.$stpl_table.'.lehreinheit_id,vw_'.$stpl_table.'.studiengang_kz,vw_'.$stpl_table.'.semester,tbl_ort.max_person,tbl_standort.adresse_id,tbl_adresse.plz,tbl_adresse.name ';
$sql_query.=' from lehre.vw_'.$stpl_table.', public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
$sql_query.=" where vw_".$stpl_table.".datum=".$db->db_add_param(date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))))." ";
$sql_query.=" and vw_".$stpl_table.".stunde=".$db->db_add_param($row->stunde, FHC_INTEGER)." ";
$sql_query.=" and tbl_ort.ort_kurzbz=vw_".$stpl_table.".ort_kurzbz ";
$sql_query.=" and tbl_standort.standort_id=tbl_ort.standort_id ";
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
$sql_query.=" order by tbl_adresse.plz,vw_".$stpl_table.".ort_kurzbz ";
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
if(!$results_anzahl=$db->db_query($sql_query))
die($db->db_last_error());
$num_rows_anzahl=$db->db_num_rows($results_anzahl);
$gefunden_anz=0;
$tooltip='';
for ($k_anz=0; $k_anz<$num_rows_anzahl; $k_anz++)
{
$row_anz = $db->db_fetch_object($results_anzahl, $k_anz);
// Lehreinheit wird aufgeteilt in zwei Raeume - nicht verarbeiten , das sind die selben Personen
if (isset($lehreinheiten[trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz)]))
continue;
$lehreinheiten[$row_anz->lehreinheit_id]=trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz);
$max_person=$row_anz->max_person+$max_person;
$row_anz->verband=trim($row_anz->verband);
$row_anz->gruppe=trim($row_anz->gruppe);
$row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz);
$stsem=$ss;
$gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null);
$student=new student();
$row_anz->anz=0;
if ($result=$student->getStudents($row_anz->studiengang_kz,$row_anz->semester,$row_anz->verband,$row_anz->gruppe,$gruppe, $stsem))
$row_anz->anz=count($result);
if (empty($row_anz->anz))
$fehler=true;
$lvb=$row_anz->kurzbzlang.'-'.$row_anz->semester;
if (!is_null($row_anz->verband) && !empty($row_anz->verband))
{
$lvb.=$row_anz->verband;
if (!is_null($row_anz->gruppe) && !empty($row_anz->gruppe) )
$lvb.=$row_anz->gruppe;
}
if (!empty($k_anz))
$tooltip.='</tr><tr>';
else
$tooltip.='<tr><th colspan=\'4\'>'. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.$row->show_beginn.' - '.$row->show_ende.'</th><th>Anzahl</th></tr>';
$tooltip.='<td title=\'Stundenplan ID '.($stpl_table=='stundenplan'?$row_anz->stundenplan_id:$row_anz->stundenplandev_id).'\'><b>'.trim($row_anz->ort_kurzbz).'</b>&nbsp;</td><td><a href=\'stpl_detail.php?type=ort&datum='.date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&stunde='.$row->stunde.'&pers_uid='.$uid.'&stg_kz=&sem=&ver=&grp=&ort_kurzbz='.trim($row_anz->ort_kurzbz).'\' target=\'_blank\' titel=\'Studiengang Kz '.$row_anz->studiengang_kz.'\'>'.$lvb.'</a>&nbsp;</td><td>'.$row_anz->gruppe_kurzbz.'&nbsp;</td><td>'.(!$row_anz->anz?'<font color=\'Maroon\'>':'').$row_anz->bezeichnung.(!$row_anz->anz?'</font>':'').'&nbsp;</td><td>'.$row_anz->anz.'</td>';
$gefunden_anz+=$row_anz->anz;
}
if (!empty($gefunden_anz))
{
$tooltip.='<tr><td colspan=\'4\' align=\'right\'>max.Personen:'.$max_person.' Belegung:'. number_format($gefunden_anz / $max_person,2)*100 .'% <b>Ges.:</b></td><td><b>'.$gefunden_anz.'</b></td></tr>';
echo '<br><img id="img_'.$i.'_'.$k.'" src="../../../skin/images/sticky.png" title="Detailanzeige"> <b'.($fehler?' style="color:red;" ':'').'> Gesamt: </b>'.$gefunden_anz;
echo '<script type="text/javascript">
$(document).ready(function()
{
$("img#img_'.$i.'_'.$k.'").click(function(event)
{
$("div#infodetail").html("<table border=\"0\"><tr>'.$tooltip.'</tr></table>");
$("div#info").show("slow"); // div# langsam oeffnen
});
});
</script>';
}
echo '</td>';
if (!isset($max_person_array[$i]['tag']))
$max_person_array[$i]['tag']=0;
$max_person_array[$i]['tag']=$max_person_array[$i]['tag']+$gefunden_anz;
if (!isset($max_person_array[$i]['tag_max']))
$max_person_array[$i]['tag_max']=0;
$max_person_array[$i]['tag_max']=$max_person_array[$i]['tag_max']+$max_person;
if (!isset($max_person_array[$k]['stunde']))
$max_person_array[$k]['stunde']=0;
$max_person_array[$k]['stunde']=$max_person_array[$k]['stunde']+$gefunden_anz;
if (!isset($max_person_array[$k]['stunde_max']))
$max_person_array[$k]['stunde_max']=0;
$max_person_array[$k]['stunde_max']=$max_person_array[$k]['stunde_max']+$max_person;
if (!isset($max_person_array[$i][$k]['tag_stunde']))
$max_person_array[$i][$k]['tag_stunde']=0;
$max_person_array[$i][$k]['tag_stunde']=$max_person_array[$i][$k]['tag_stunde']+$gefunden_anz;
if (!isset($max_person_array[$i][$k]['tag_stunde_max']))
$max_person_array[$i][$k]['tag_stunde_max']=0;
$max_person_array[$i][$k]['tag_stunde_max']=$max_person_array[$i][$k]['tag_stunde_max']+$max_person;
}
echo '</tr>';
}
echo '</table>';
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if($rechte->isBerechtigt('admin'))
{
echo '<table class="tabcontent" style=" z-index: 1;">';
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 2 ) .'">'. $fh_name .'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
echo '<tr>';
echo '<td colspan="2" style="text-align:center;color:#FFF;" class="ContentHeader">Zeit / Datum &ndash;&nbsp;</td>';
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&nbsp;'. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
}
echo '</tr>';
$stunde_proz=0;
$stunde=0;
$stunde_max=0;
for ($k=0; $k<$num_rows_stunde; $k++)
{
$row = $db->db_fetch_object($results, $k);
$row->show_beginn=substr($row->beginn,0,5);
$row->show_ende=substr($row->ende,0,5);
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
echo '<tr>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
echo 'anz.:'.$max_person_array[$k]['stunde'];
echo '<br>';
echo 'FH&nbsp;&nbsp;&nbsp;'.($raum_max_anz*TAGE_PRO_WOCHE);
echo '<br>';
echo ' &Oslash;&nbsp;'.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde'])/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
echo '<br>';
echo 'Raum&nbsp;'.$max_person_array[$k]['stunde_max'];
echo '<br>';
echo ' &Oslash;&nbsp;'.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde']/TAGE_PRO_WOCHE) / ($max_person_array[$k]['stunde_max']/TAGE_PRO_WOCHE),2)*100:0).'%';
echo '</td>';
$stunde=$stunde+$max_person_array[$k]['stunde'];
$stunde_max=$stunde_max+$max_person_array[$k]['stunde_max'];
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
echo 'anz.:'.$max_person_array[$i][$k]['tag_stunde'];
echo '<br>';
echo 'FH&nbsp;&nbsp;&nbsp;max.:'. $raum_max_anz;
echo '<br>';
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $raum_max_anz,2)*100:0).'%';
echo '<br>';
echo 'Raum max.:'. $max_person_array[$i][$k]['tag_stunde_max'];
echo '<br>';
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $max_person_array[$i][$k]['tag_stunde_max'],2)*100:0).'%';
echo '</td>';
}
echo '</tr>';
}
echo '<tr>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">&Oslash;</td>';
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
echo 'FH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&Oslash;&nbsp;'.($stunde?number_format(($stunde)/$num_rows_stunde/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
echo '<br>';
echo 'Raum&nbsp;&Oslash;&nbsp;'.($stunde_max?number_format(($stunde/$num_rows_stunde/TAGE_PRO_WOCHE) / ($stunde_max/$num_rows_stunde/TAGE_PRO_WOCHE),2)*100:0).'%';
echo '</td>';
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
{
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
echo 'FH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&Oslash;&nbsp;'.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / ($raum_max_anz *$num_rows_stunde),2)*100:0).'%';
echo '<br>';
echo 'Raum&nbsp;&Oslash;&nbsp;'.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / $max_person_array[$i]['tag_max'],2)*100:0).'%';
echo '</td>';
}
echo '</tr>';
echo '</table>';
}
?>
</BODY>
</HTML>
+7 -1
View File
@@ -56,6 +56,12 @@ $uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$is_employee = false;
if (check_lektor($uid))
{
$is_employee = true;
}
$datum_obj = new datum();
// Wenn ein anderer User sich das Profil ansieht (Bei Personensuche) sollen bestimmte persönliche Daten nicht angezeigt werden
@@ -346,7 +352,7 @@ if ($type == 'mitarbeiter')
$kontakt->load_pers($user->person_id);
foreach($kontakt->result as $k)
{
if ($k->kontakttyp == 'firmenhandy')
if ($k->kontakttyp == 'firmenhandy' && $is_employee)
echo 'Firmenhandy: '.$k->kontakt.'<br>';
}
+84 -5
View File
@@ -163,6 +163,68 @@ if (isset($_GET['rechts_x']) || isset($_POST['rechts_x']))
$wjahr=$wjahr;
}
}
//Bereits freigegebenen Eintrag löschen
//Eintragung löschen
if((isset($_GET['delete']) && isset($_GET['informSupervisor'])) || (isset($_POST['delete']) && isset($_POST['informSupervisor'])))
{
$zeitsperre = new zeitsperre();
$zeitsperre->load($_GET['delete']);
$vondatum = $zeitsperre->getVonDatum();
$bisdatum = $zeitsperre->getBisDatum();
if(!$zeitsperre->delete($_GET['delete']))
echo $zeitsperre->errormsg;
//Mail an Vorgesetzten
$prsn = new person();
$vorgesetzter = $ma->getVorgesetzte($uid);
if($vorgesetzter)
{
$to='';
$fullName ='';
foreach($ma->vorgesetzte as $vg)
{
if($to!='')
{
$to.=', '.$vg.'@'.DOMAIN;
$name = $prsn->getFullNameFromBenutzer($vg);
$fullName.=', '.$name;
}
else
{
$to.=$vg.'@'.DOMAIN;
$name = $prsn->getFullNameFromBenutzer($vg);
$fullName.=$name;
}
}
$benutzer = new benutzer();
$benutzer->load($uid);
$message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n".
$p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n";
$message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n";
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message);
if($mail->send())
{
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName))."</span>";
}
else
{
$vgmail="<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!</span>";
}
}
else
{
$vgmail="<br><span class='error'>".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden')."</span>";
}
}
//Eintragung löschen
if((isset($_GET['delete']) || isset($_POST['delete'])))
{
@@ -257,19 +319,26 @@ if(isset($_GET['speichern']) && isset($_GET['wtag']))
if(!$error)
{
//Mail an Vorgesetzten
$prsn = new person();
$vorgesetzter = $ma->getVorgesetzte($uid);
if($vorgesetzter)
{
$to='';
$fullName ='';
foreach($ma->vorgesetzte as $vg)
{
if($to!='')
{
$to.=', '.$vg.'@'.DOMAIN;
$name = $prsn->getFullNameFromBenutzer($vg);
$fullName.=', '.$name;
}
else
{
$to.=$vg.'@'.DOMAIN;
$name = $prsn->getFullNameFromBenutzer($vg);
$fullName.=$name;
}
}
@@ -295,7 +364,7 @@ if(isset($_GET['speichern']) && isset($_GET['wtag']))
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message);
if($mail->send())
{
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to))."</span>";
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName))."</span>";
}
else
{
@@ -373,10 +442,14 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
if(date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))>=$row->vondatum
&& date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))<=$row->bisdatum)
{
if($row->freigabevon!='' || $row->bisdatum<date("Y-m-d",time()))
if($row->freigabevon!='' && $row->vondatum<=date("Y-m-d",time()))
{
$hgfarbe[$i]='#bbb';
}
elseif ($row->freigabevon!='' && $row->vondatum>date("Y-m-d",time()))
{
$hgfarbe[$i]='#CDDDEE';
}
else
{
$hgfarbe[$i]='#FFFC7F';
@@ -389,7 +462,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
}
else
{
if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb')
if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb' && $hgfarbe[$i]!='#CDDDEE')
{
$hgfarbe[$i]='#E9ECEE';
@@ -696,7 +769,7 @@ for ($i=0;$i<6;$i++)
}
if($tage[$j+7*$i]!='')
{
if($hgfarbe[$j+7*$i]=='#FFFC7F')
if($hgfarbe[$j+7*$i]=='#FFFC7F' )//|| $hgfarbe[$j+7*$i]=='#CDDDEE')
{
echo '<b title='.$p->t('urlaubstool/vertretung').': '.$vertretung_uid[$j+7*$i].' - '.$p->t('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';;
$k=$j+7*$i;
@@ -724,7 +797,13 @@ for ($i=0;$i<6;$i++)
}
elseif(isset($freigabeamum[$j+7*$i]))
{
echo '<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurchAm', array($freigabevon[$j+7*$i])).' '.date("d-m-Y",strtotime($freigabeamum[$j+7*$i])).'"></td>';
echo '<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurch', array($freigabevon[$j+7*$i])).': '.$freigabevon[$j+7*$i].'"><span> </span>';
if($hgfarbe[$j+7*$i]=='#CDDDEE')
{
$k=$j+7*$i;
echo "<a href='$PHP_SELF?wmonat=$wmonat&wjahr=$wjahr&delete=$datensatz[$k]&informSupervisor=True' onclick='return conf_del()'>";
echo '<img src="../../../skin/images/delete_x.png" alt="loeschen" title="'.$p->t('urlaubstool/eintragungLoeschen').'"></a></td>';
}
}
else
{
+69 -63
View File
@@ -15,7 +15,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
@@ -31,16 +31,16 @@
require_once('../../../include/studiengang.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
$uid=get_uid();
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen
// von anderen Personen anzuzeigen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if($rechte->isBerechtigt('admin'))
@@ -58,7 +58,7 @@
{
die('Um diese Seite anzuzeigen, ist ein entsprechender Eintrag in der Konfigurationsdatei nötig.');
}
$datum_obj = new datum();
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
@@ -127,20 +127,20 @@ echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui
type: "numeric"
});
// Parser für Studiensemester
$.tablesorter.addParser({
// set a unique id
id: "studiensemester",
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format data for normalization
$.tablesorter.addParser({
// set a unique id
id: "studiensemester",
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format data for normalization
var result = s.substr(2) + s.substr(0, 2);
return result;
},
// set type, either numeric or text
type: "text"
},
// set type, either numeric or text
type: "text"
});
// For correct sorting of Umlauts
$.tablesorter.characterEquivalents = {
@@ -159,8 +159,8 @@ echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui
"u" : "\u00fa\u00f9\u00fb\u00fc\u016f", // úùûüů
"U" : "\u00da\u00d9\u00db\u00dc\u016e" // ÚÙÛÜŮ
};
$(document).ready(function()
{
$(document).ready(function()
{
$("#t1").tablesorter(
{
// Adding Function for sorting images by title
@@ -173,31 +173,31 @@ echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui
widgets: ["zebra"],
sortLocaleCompare : true,
headers: { 0: { sorter: "customDate"}, 3: { sorter: "studiensemester"}, 5: { sorter: "customCurrancy"}, 6: { sorter: false}}
});
});
});
</script>
<body>';
$studiengang = new studiengang();
$studiengang->getAll(null,null);
$stg_arr = array();
foreach ($studiengang->result as $row)
$stg_arr[$row->studiengang_kz]=$row->kuerzel;
$benutzer = new benutzer();
if(!$benutzer->load($uid))
die('Benutzer wurde nicht gefunden');
echo '<h1>'.$p->t('tools/zahlungen').' - '.$benutzer->vorname.' '.$benutzer->nachname.'</h1>';
$konto = new konto();
$konto->getBuchungstyp();
$buchungstyp = array();
foreach ($konto->result as $row)
$buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung;
$konto = new konto();
$konto->getBuchungen($benutzer->person_id);
if(count($konto->result)>0)
@@ -211,9 +211,9 @@ echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui
<th>'.$p->t('global/studiensemester').'</th>
<th>'.$p->t('tools/buchungstext').'</th>
<th>'.$p->t('tools/betrag').'</th>
<th>'.$p->t('tools/zahlungsbestaetigung').'</th>';
<th>'.$p->t('tools/zahlungsbestaetigung').'</th>';
echo '</tr></thead><tbody>';
foreach ($konto->result as $row)
{
$i=0; //Zaehler fuer Anzahl Gegenbuchungen
@@ -226,12 +226,12 @@ echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui
$is_lehrgang = $row['parent']->studiengang_kz < 0 ? true : false;
if ($is_lehrgang) continue;
}
if(!isset($row['parent']))
continue;
$betrag = $row['parent']->betrag;
$count_studiengangszahlung ++;
if(isset($row['childs']))
{
foreach ($row['childs'] as $key => $row_child)
@@ -243,57 +243,63 @@ echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui
$i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen
}
}
else
else
$buchungsnummern = $row['parent']->buchungsnr;
if($betrag<0)
$style='style="background-color: #FF8888;"';
elseif($betrag>0)
$style='style="background-color: #88DD88;"';
else
else
$style='';
echo "<tr>";
echo '<td '.$style.'>'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).'</td>';
echo '<td '.$style.'>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
echo '<td '.$style.'>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
echo '<td '.$style.'>'.$row['parent']->studiensemester_kurzbz.'</td>';
echo '<td '.$style.'>'.$row['parent']->buchungstext.'</td>';
echo '<td align="right" '.$style.'>€ '.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).'</td>';
echo '<td align="center" '.$style.'>';
if($betrag>=0 && $row['parent']->betrag<=0)
$buchungsdatum = $datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum);
$aktdatum = time();
// Zukünftige Zahlungen werden nicht angezeigt
if ($buchungsdatum <= $aktdatum)
{
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$buchungsnummern.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
echo "<tr>";
echo '<td '.$style.'>'.date('d.m.Y',$buchungsdatum).'</td>';
echo '<td '.$style.'>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
echo '<td '.$style.'>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
echo '<td '.$style.'>'.$row['parent']->studiensemester_kurzbz.'</td>';
echo '<td '.$style.'>'.$row['parent']->buchungstext.'</td>';
echo '<td align="right" '.$style.'>€ '.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).'</td>';
echo '<td align="center" '.$style.'>';
if($betrag>=0 && $row['parent']->betrag<=0)
{
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$buchungsnummern.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
}
elseif($row['parent']->betrag>0)
{
//Auszahlung
}
else
{
echo '<a onclick="window.open(';
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
echo '" href="#">'.$p->t('tools/offen').'</a>(€ '.sprintf('%.2f',$betrag*-1).')';
echo '</td>';
}
echo '</tr>';
}
elseif($row['parent']->betrag>0)
{
//Auszahlung
}
else
{
echo '<a onclick="window.open(';
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
echo '" href="#">'.$p->t('tools/offen').'</a>(€ '.sprintf('%.2f',$betrag*-1).')';
echo '</td>';
}
echo '</tr>';
}
// Wenn die Tabelle keine Eintraege hat, wird eine Tabellenzeile mit entsprechender Information angezeigt.
if ($count_studiengangszahlung == 0)
{
echo "<tr><td colspan='7' style='background-color: white;'>" .$p->t('tools/keineZahlungenVorhanden'). "</td></tr>";
}
echo '</tbody></table>';
}
else
else
{
echo $p->t('tools/keineZahlungenVorhanden');
}
}
echo '</td></tr></table';
echo '</body></html>';
echo '</body></html>';
?>
+79 -6
View File
@@ -413,15 +413,23 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
if($zeitsperre->new && $zeitsperre->zeitsperretyp_kurzbz=='Urlaub')
{
//Beim Anlegen von neuen Urlauben wird ein Mail an den Vorgesetzten versendet um diesen Freizugeben
$vorgesetzter = $ma->getVorgesetzte($uid);
$prsn = new person();
$vorgesetzter = $ma->getVorgesetzte($uid);
if($vorgesetzter)
{
$to='';
$fullName='';
foreach($ma->vorgesetzte as $vg)
{
if (!empty($to))
{
$to.=',';
$fullName.=',';
}
$to.=trim($vg.'@'.DOMAIN);
$name = $prsn->getFullNameFromBenutzer($vg);
$fullName.=$name;
}
$benutzer = new benutzer();
@@ -440,11 +448,11 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
$mail = new mail($to, $from, 'Freigabeansuchen', $message);
if($mail->send())
{
echo "<br><b>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to))."</b>";
echo "<br><b>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName))."</b>";
}
else
{
echo "<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."</span>";
echo "<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."</span>";
}
}
else
@@ -461,8 +469,69 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
echo "<span class='error'>$error_msg</span>";
}
//loeschen eines bereits freigegebenen Urlaubs
if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['informSupervisor'])))
{
$zeitsperre = new zeitsperre();
$zeitsperre->load($_GET['id']);
$vondatum = $zeitsperre->getVonDatum();
$bisdatum = $zeitsperre->getBisDatum();
if(!$zeitsperre->delete($_GET['id']))
echo $zeitsperre->errormsg;
//Mail an Vorgesetzten
$prsn = new person();
$vorgesetzter = $ma->getVorgesetzte($uid);
if($vorgesetzter)
{
$to='';
$fullName ='';
foreach($ma->vorgesetzte as $vg)
{
if($to!='')
{
$to.=', '.$vg.'@'.DOMAIN;
$name = $prsn->getFullNameFromBenutzer($vg);
$fullName.=', '.$name;
}
else
{
$to.=$vg.'@'.DOMAIN;
$name = $prsn->getFullNameFromBenutzer($vg);
$fullName.=$name;
}
}
$benutzer = new benutzer();
$benutzer->load($uid);
$message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n".
$p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n";
$message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n";
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message);
if($mail->send())
{
echo "<br><b>".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName))."</b>";
}
else
{
echo "<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!</span>";
}
}
else
{
$vgmail="<br><span class='error'>".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden')."</span>";
}
}
//loeschen einer zeitsperre
if(isset($_GET['type']) && $_GET['type']=='delete_sperre')
if(isset($_GET['type']) && $_GET['type']=='delete_sperre' && !isset($_GET['informSupervisor']) )
{
$zeit = new zeitsperre();
$zeit->load($_GET['id']);
@@ -532,10 +601,14 @@ if(count($zeit->result)>0)
$content_table.="<td><a href='$PHP_SELF?type=edit&id=$row->zeitsperre_id' class='Item'>".$p->t('zeitsperre/edit')."</a></td>";
if ($row->vondatum < $gesperrt_bis AND in_array($row->zeitsperretyp_kurzbz,$typen_arr))
$content_table .= '<td>&nbsp;</td>';
else if($row->freigabeamum=='' || $row->zeitsperretyp_kurzbz!='Urlaub')
else if($row->vondatum>=date("Y-m-d",time()) && $row->zeitsperretyp_kurzbz=='Urlaub')
{
$content_table.="\n<td><a href='$PHP_SELF?type=delete_sperre&id=$row->zeitsperre_id' onclick='return conf_del()' class='Item'>".$p->t('zeitsperre/loeschen')."</a></td>";
$content_table.="\n<td><a href='$PHP_SELF?type=delete_sperre&id=$row->zeitsperre_id&informSupervisor=True' onclick='return conf_del()' class='Item'>".$p->t('zeitsperre/loeschen')."</a></td>";
}
elseif($row->zeitsperretyp_kurzbz!='Urlaub')
{
$content_table.="\n<td><a href='$PHP_SELF?type=delete_sperre&id=$row->zeitsperre_id' onclick='return conf_del()' class='Item'>".$p->t('zeitsperre/loeschen')."</a></td>";
}
else
$content_table .= '<td>&nbsp;</td>';
$content_table.="</tr>";
+6 -5
View File
@@ -62,11 +62,15 @@ TZOFFSETTO:+0100
END:STANDARD
END:VTIMEZONE\n";
//echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n";
echo "BEGIN:VEVENT";
// Alle Umfragen holen an denen der User beteiligt ist
$umfragen = new coodle();
$umfragen->getCoodleFromUser($uid);
$i = 0;
if (count($umfragen->result) > 0)
{
//echo "BEGIN:VEVENT";
}
foreach($umfragen->result as $umfrage)
{
if($umfrage->coodle_status_kurzbz=='laufend')
@@ -88,10 +92,7 @@ foreach($umfragen->result as $umfrage)
$uhrzeit_ende = $date->format('H:i:s');
$dtende = $date->format('Ymd\THis');
if ($i > 0)
{
echo "\nBEGIN:VEVENT";
}
echo "\nBEGIN:VEVENT";
echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende."";
echo "\nSUMMARY:Coodle Terminoption";
echo "\nDTSTART;TZID=Europe/Vienna:$dtstart";
+2
View File
@@ -224,6 +224,8 @@ if (isset($_SESSION['pruefling_id']))
(
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
OR
(prestudent_data.semester= 2 AND tbl_ablauf.semester = 2)
OR
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
)
AND (
+3
View File
@@ -260,6 +260,9 @@ define('KOLLISIONSFREIE_USER',serialize(array('_DummyLektor')));
//Wenn auf 'true' gesetzt, dann wird im FAS beim Konto das Feld fuer die CreditPoints angezeigt
define('FAS_KONTO_SHOW_CREDIT_POINTS','false');
//Wenn auf true gesetzt, dann wird im FAS beim Konto das Feld fuer die Mahnspanne angezeigt
define('FAS_KONTO_SHOW_MAHNSPANNE', true);
// Wenn definiert, wird bei der Vorrückung der Lehreinheiten nicht der Stundensatz des Vorjahres eingetragen.
// Erlaubt sind numerische Werte oder der Wert "default".
// Bei "default" wird der Standard-Stundensatz des Lektors (aus tbl_mitarbeiter) ermittelt, und dieser eingetragen.
+3 -1
View File
@@ -249,7 +249,9 @@ define('BIS_FUNKTIONSCODE_6_ARR', array(
'Team'
));
// Standortcode fuer Lehrgaenge
define('BIS_STANDORTCODE_LEHRGAENGE', '0');
// bPk Abfrage
define('BPK_FUER_ALLE_BENUTZER_ABFRAGEN', false);
?>
+206 -203
View File
@@ -1,204 +1,207 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
$user = get_uid();
loadVariables($user);
?>
// ****
// * Laedt die zu bearbeitenden Daten
// ****
function AdresseInit(adresse_id, person_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
if(adresse_id!='')
{
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/adresse.rdf.php?adresse_id='+adresse_id+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/adresse/" + adresse_id);
var predicateNS = "http://www.technikum-wien.at/adresse/rdf";
//RDF parsen
person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" ));
strasse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#strasse" ));
plz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#plz" ));
ort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort" ));
gemeinde = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gemeinde" ));
nation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nation" ));
typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" ));
heimatadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#heimatadresse" ));
zustelladresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zustelladresse" ));
firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" ));
rechnungsadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rechnungsadresse" ));
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
neu = false;
}
else
{
//Defaultwerte bei Neuem Datensatz
neu = true;
name='';
strasse='';
plz='';
ort='';
gemeinde=''
nation='A';
typ='h';
heimatadresse='Ja';
zustelladresse='Ja';
firma_id='';
rechnungsadresse='Nein';
anmerkung='';
}
document.getElementById('adresse-checkbox-neu').checked=neu;
document.getElementById('adresse-textbox-person_id').value=person_id;
document.getElementById('adresse-textbox-adresse_id').value=adresse_id;
document.getElementById('adresse-textbox-name').value=name;
document.getElementById('adresse-textbox-strasse').value=strasse;
document.getElementById('adresse-textbox-plz').value=plz;
AdresseLoadGemeinde(true);
document.getElementById('adresse-textbox-gemeinde').value=gemeinde;
AdresseLoadOrtschaft(true);
document.getElementById('adresse-textbox-ort').value=ort;
document.getElementById('adresse-menulist-nation').value=nation;
document.getElementById('adresse-menulist-typ').value=typ;
if(heimatadresse=='Ja')
document.getElementById('adresse-checkbox-heimatadresse').checked=true;
else
document.getElementById('adresse-checkbox-heimatadresse').checked=false;
if(zustelladresse=='Ja')
document.getElementById('adresse-checkbox-zustelladresse').checked=true;
else
document.getElementById('adresse-checkbox-zustelladresse').checked=false;
document.getElementById('adresse-menulist-firma').value=firma_id;
document.getElementById('adresse-textbox-anmerkung').value=anmerkung;
if(rechnungsadresse=='Ja')
document.getElementById('adresse-checkbox-rechnungsadresse').checked=true;
else
document.getElementById('adresse-checkbox-rechnungsadresse').checked=false;
}
// ****
// * Speichern der Daten
// ****
function AdresseSpeichern()
{
if(window.opener.KontaktAdresseSpeichern(document))
window.close();
else
this.focus();
}
// ****
// * Laedt die Gemeinden zur eingegebenen Postleitzahl
// ****
function AdresseLoadGemeinde(blocking)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
menulist_gemeinde = document.getElementById('adresse-textbox-gemeinde');
if(document.getElementById('adresse-menulist-nation').value=='A')
{
menulist_gemeinde.value='';
document.getElementById('adresse-textbox-ort').value='';
}
plz = document.getElementById('adresse-textbox-plz').value;
if(plz.length>3)
{
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&'+gettimestamp();
var oldDatasources = menulist_gemeinde.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist_gemeinde.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist_gemeinde.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
if(blocking)
var datasource = rdfService.GetDataSourceBlocking(url);
else
var datasource = rdfService.GetDataSource(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist_gemeinde.database.AddDataSource(datasource);
menulist_gemeinde.builder.rebuild();
}
}
// ****
// * Laedt die Ortschaften zu Plz und Gemeinde
// ****
function AdresseLoadOrtschaft(blocking)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gemeinde = document.getElementById('adresse-textbox-gemeinde').value;
menulist_ort = document.getElementById('adresse-textbox-ort');
if(document.getElementById('adresse-menulist-nation').value=='A')
{
menulist_ort.value='';
}
plz = document.getElementById('adresse-textbox-plz').value;
if(plz.length>3 && gemeinde!='')
{
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&gemeinde='+encodeURIComponent(gemeinde)+'&'+gettimestamp();
var oldDatasources = menulist_ort.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist_ort.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist_ort.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
if(blocking)
var datasource1 = rdfService.GetDataSourceBlocking(url);
else
var datasource1 = rdfService.GetDataSource(url);
datasource1.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource1.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist_ort.database.AddDataSource(datasource1);
menulist_ort.builder.rebuild();
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
$user = get_uid();
loadVariables($user);
?>
// ****
// * Laedt die zu bearbeitenden Daten
// ****
function AdresseInit(adresse_id, person_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
if(adresse_id!='')
{
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/adresse.rdf.php?adresse_id='+adresse_id+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/adresse/" + adresse_id);
var predicateNS = "http://www.technikum-wien.at/adresse/rdf";
//RDF parsen
person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" ));
strasse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#strasse" ));
plz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#plz" ));
ort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort" ));
gemeinde = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gemeinde" ));
nation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nation" ));
typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" ));
heimatadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#heimatadresse" ));
zustelladresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zustelladresse" ));
co_name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#co_name" ));
firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" ));
rechnungsadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rechnungsadresse" ));
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
neu = false;
}
else
{
//Defaultwerte bei Neuem Datensatz
neu = true;
name='';
strasse='';
plz='';
ort='';
gemeinde=''
nation='A';
typ='h';
heimatadresse='Ja';
zustelladresse='Ja';
co_name = '';
firma_id='';
rechnungsadresse='Nein';
anmerkung='';
}
document.getElementById('adresse-checkbox-neu').checked=neu;
document.getElementById('adresse-textbox-person_id').value=person_id;
document.getElementById('adresse-textbox-adresse_id').value=adresse_id;
document.getElementById('adresse-textbox-name').value=name;
document.getElementById('adresse-textbox-strasse').value=strasse;
document.getElementById('adresse-textbox-plz').value=plz;
AdresseLoadGemeinde(true);
document.getElementById('adresse-textbox-gemeinde').value=gemeinde;
AdresseLoadOrtschaft(true);
document.getElementById('adresse-textbox-ort').value=ort;
document.getElementById('adresse-menulist-nation').value=nation;
document.getElementById('adresse-menulist-typ').value=typ;
if(heimatadresse=='Ja')
document.getElementById('adresse-checkbox-heimatadresse').checked=true;
else
document.getElementById('adresse-checkbox-heimatadresse').checked=false;
if(zustelladresse=='Ja')
document.getElementById('adresse-checkbox-zustelladresse').checked=true;
else
document.getElementById('adresse-checkbox-zustelladresse').checked=false;
document.getElementById('adresse-textbox-co_name').value = co_name;
document.getElementById('adresse-menulist-firma').value=firma_id;
document.getElementById('adresse-textbox-anmerkung').value=anmerkung;
if(rechnungsadresse=='Ja')
document.getElementById('adresse-checkbox-rechnungsadresse').checked=true;
else
document.getElementById('adresse-checkbox-rechnungsadresse').checked=false;
}
// ****
// * Speichern der Daten
// ****
function AdresseSpeichern()
{
if(window.opener.KontaktAdresseSpeichern(document))
window.close();
else
this.focus();
}
// ****
// * Laedt die Gemeinden zur eingegebenen Postleitzahl
// ****
function AdresseLoadGemeinde(blocking)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
menulist_gemeinde = document.getElementById('adresse-textbox-gemeinde');
if(document.getElementById('adresse-menulist-nation').value=='A')
{
menulist_gemeinde.value='';
document.getElementById('adresse-textbox-ort').value='';
}
plz = document.getElementById('adresse-textbox-plz').value;
if(plz.length>3)
{
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&'+gettimestamp();
var oldDatasources = menulist_gemeinde.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist_gemeinde.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist_gemeinde.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
if(blocking)
var datasource = rdfService.GetDataSourceBlocking(url);
else
var datasource = rdfService.GetDataSource(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist_gemeinde.database.AddDataSource(datasource);
menulist_gemeinde.builder.rebuild();
}
}
// ****
// * Laedt die Ortschaften zu Plz und Gemeinde
// ****
function AdresseLoadOrtschaft(blocking)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gemeinde = document.getElementById('adresse-textbox-gemeinde').value;
menulist_ort = document.getElementById('adresse-textbox-ort');
if(document.getElementById('adresse-menulist-nation').value=='A')
{
menulist_ort.value='';
}
plz = document.getElementById('adresse-textbox-plz').value;
if(plz.length>3 && gemeinde!='')
{
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&gemeinde='+encodeURIComponent(gemeinde)+'&'+gettimestamp();
var oldDatasources = menulist_ort.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist_ort.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist_ort.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
if(blocking)
var datasource1 = rdfService.GetDataSourceBlocking(url);
else
var datasource1 = rdfService.GetDataSource(url);
datasource1.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource1.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist_ort.database.AddDataSource(datasource1);
menulist_ort.builder.rebuild();
}
}
+205 -198
View File
@@ -1,199 +1,206 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
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");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
include('../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
if(isset($_GET['adresse_id']) && is_numeric($_GET['adresse_id']))
$adresse_id=$_GET['adresse_id'];
else
$adresse_id='';
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
$person_id=$_GET['person_id'];
else
$person_id='';
?>
<window id="adresse-dialog" title="Adresse"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="AdresseInit(<?php echo ($adresse_id!=''?$adresse_id:"''").','.($person_id!=''?$person_id:"''"); ?>)"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/adressedialog.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<vbox>
<textbox id="adresse-textbox-adresse_id" hidden="true"/>
<textbox id="adresse-textbox-person_id" hidden="true"/>
<checkbox id="adresse-checkbox-neu" hidden="true"/>
<groupbox id="adresse-groupbox" flex="1">
<caption label="Details"/>
<grid id="adresse-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Typ" control="adresse-menulist-typ"/>
<menulist id="adresse-menulist-typ"
flex="1">
<menupopup>
<menuitem value="h" label="Hauptwohnsitz"/>
<menuitem value="n" label="Nebenwohnsitz"/>
<menuitem value="f" label="Firma"/>
<menuitem value="r" label="Rechnungsadresse"/>
</menupopup>
</menulist>
</row>
<row>
<label value="Strasse" control="adresse-textbox-strasse"/>
<hbox>
<textbox id="adresse-textbox-strasse" maxlength="256" size="30"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Nation" control="adresse-menulist-nation"/>
<menulist id="adresse-menulist-nation"
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php" flex="1"
ref="http://www.technikum-wien.at/nation/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Plz" control="adresse-textbox-plz"/>
<hbox>
<textbox id="adresse-textbox-plz" maxlength="16" size="5" oninput="AdresseLoadGemeinde(false)"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Gemeinde" />
<!--<hbox>
<textbox id="adresse-textbox-gemeinde" maxlength="256" size="30" />
<spacer flex="1" />
</hbox>-->
<menulist id="adresse-textbox-gemeinde"
editable="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/gemeinde/liste"
oncommand="AdresseLoadOrtschaft(false)"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Ortschaft" control="adresse-textbox-ort"/>
<!--<hbox>
<textbox id="adresse-textbox-ort" maxlength="256" size="30"/>
<spacer flex="1" />
</hbox>-->
<menulist id="adresse-textbox-ort"
editable="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/gemeinde/liste"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Heimatadresse" control="adresse-checkbox-heimatadresse"/>
<checkbox id="adresse-checkbox-heimatadresse" checked="true"/>
</row>
<row>
<label value="Zustelladresse" control="adresse-checkbox-zustelladresse"/>
<checkbox id="adresse-checkbox-zustelladresse" checked="true"/>
</row>
<row>
<label value="Rechnungsadresse" control="adresse-checkbox-rechnungsadresse"/>
<checkbox id="adresse-checkbox-rechnungsadresse" checked="true"/>
</row>
<row>
<label value="Firma" control="adresse-menulist-firma"/>
<!--
<menulist id="adresse-menulist-firma"
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/firma/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
-->
<box class="Firma" id="adresse-menulist-firma" />
</row>
<row>
<label value="Name" control="adresse-textbox-name"/>
<hbox>
<textbox id="adresse-textbox-name" maxlength="256" size="30"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Anmerkung" control="adresse-textbox-anmerkung"/>
<textbox id="adresse-textbox-anmerkung" multiline="true"/>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="adresse-button-speichern" oncommand="AdresseSpeichern()" label="Speichern" />
</hbox>
</groupbox>
</vbox>
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
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");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
include('../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
if(isset($_GET['adresse_id']) && is_numeric($_GET['adresse_id']))
$adresse_id=$_GET['adresse_id'];
else
$adresse_id='';
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
$person_id=$_GET['person_id'];
else
$person_id='';
?>
<window id="adresse-dialog" title="Adresse"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="AdresseInit(<?php echo ($adresse_id!=''?$adresse_id:"''").','.($person_id!=''?$person_id:"''"); ?>)"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/adressedialog.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<vbox>
<textbox id="adresse-textbox-adresse_id" hidden="true"/>
<textbox id="adresse-textbox-person_id" hidden="true"/>
<checkbox id="adresse-checkbox-neu" hidden="true"/>
<groupbox id="adresse-groupbox" flex="1">
<caption label="Details"/>
<grid id="adresse-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Typ" control="adresse-menulist-typ"/>
<menulist id="adresse-menulist-typ"
flex="1">
<menupopup>
<menuitem value="h" label="Hauptwohnsitz"/>
<menuitem value="n" label="Nebenwohnsitz"/>
<menuitem value="f" label="Firma"/>
<menuitem value="r" label="Rechnungsadresse"/>
</menupopup>
</menulist>
</row>
<row>
<label value="Strasse" control="adresse-textbox-strasse"/>
<hbox>
<textbox id="adresse-textbox-strasse" maxlength="256" size="30"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Nation" control="adresse-menulist-nation"/>
<menulist id="adresse-menulist-nation"
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php" flex="1"
ref="http://www.technikum-wien.at/nation/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Plz" control="adresse-textbox-plz"/>
<hbox>
<textbox id="adresse-textbox-plz" maxlength="16" size="5" oninput="AdresseLoadGemeinde(false)"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Gemeinde" />
<!--<hbox>
<textbox id="adresse-textbox-gemeinde" maxlength="256" size="30" />
<spacer flex="1" />
</hbox>-->
<menulist id="adresse-textbox-gemeinde"
editable="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/gemeinde/liste"
oncommand="AdresseLoadOrtschaft(false)"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Ortschaft" control="adresse-textbox-ort"/>
<!--<hbox>
<textbox id="adresse-textbox-ort" maxlength="256" size="30"/>
<spacer flex="1" />
</hbox>-->
<menulist id="adresse-textbox-ort"
editable="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/gemeinde/liste"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Heimatadresse" control="adresse-checkbox-heimatadresse"/>
<checkbox id="adresse-checkbox-heimatadresse" checked="true"/>
</row>
<row>
<label value="Zustelladresse" control="adresse-checkbox-zustelladresse"/>
<checkbox id="adresse-checkbox-zustelladresse" checked="true"/>
</row>
<row>
<label value="Abweichender Empfänger (c/o)" control="adresse-textbox-co_name"/>
<hbox>
<textbox id="adresse-textbox-co_name" maxlength="256" size="30"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Rechnungsadresse" control="adresse-checkbox-rechnungsadresse"/>
<checkbox id="adresse-checkbox-rechnungsadresse" checked="true"/>
</row>
<row>
<label value="Firma" control="adresse-menulist-firma"/>
<!--
<menulist id="adresse-menulist-firma"
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/firma/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
-->
<box class="Firma" id="adresse-menulist-firma" />
</row>
<row>
<label value="Name" control="adresse-textbox-name"/>
<hbox>
<textbox id="adresse-textbox-name" maxlength="256" size="30"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Anmerkung" control="adresse-textbox-anmerkung"/>
<textbox id="adresse-textbox-anmerkung" multiline="true"/>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="adresse-button-speichern" oncommand="AdresseSpeichern()" label="Speichern" />
</hbox>
</groupbox>
</vbox>
</window>
+2 -2
View File
@@ -197,7 +197,7 @@ else
<label value="Nummer" control="betriebsmittel-textbox-nummer"/>
<hbox>
<textbox id="betriebsmittel-textbox-nummerold" hidden="true"/>
<textbox id="betriebsmittel-textbox-nummer" disabled="true" maxlength="12"/>
<textbox id="betriebsmittel-textbox-nummer" disabled="true" maxlength="32"/>
<spacer flex="1" />
</hbox>
</row>
@@ -269,4 +269,4 @@ else
</hbox>
<spacer flex="1" />
</vbox>
</window>
</window>
+823 -822
View File
File diff suppressed because it is too large Load Diff
+799 -797
View File
File diff suppressed because it is too large Load Diff
+343 -338
View File
@@ -1,338 +1,343 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
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");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
$person_id = $_GET['person_id'];
else
die('Parameter person_id muss uebergeben werden');
$uid = get_uid();
?>
<window id="kontakt-window" title="Kontakt"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="loadKontakte(<?php echo $person_id; ?>);"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/kontakt.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
<vbox>
<!-- ADRESSEN -->
<groupbox id="kontakt-groupbox-adresse">
<caption label="Adressen" />
<hbox>
<tree id="kontakt-adressen-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/adresse/liste"
ondblclick="KontaktAdresseBearbeiten()"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="kontakt-adressen-treecol-typ" label="Typ" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-strasse" label="Strasse" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-plz" label="Plz" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#plz" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-ort" label="Ort" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#ort" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-gemeinde" label="Gemeinde" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-nation" label="Nation" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#nation" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-heimatadresse" label="Heimatadresse" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-zustelladresse" label="Zustelladresse" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-adresse_id" label="Adresse_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-person_id" label="Person_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-name" label="Name" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#name" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-firma_name" label="Firma" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-rechnungsadresse" label="Rechnungsadresse" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-anmerkung" label="Anmerkung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#plz" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#ort" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#nation" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#name" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox>
<button id='kontakt-adressen-neu' label='Neu' oncommand='KontaktAdresseNeu()' />
<button id='kontakt-adressen-bearbeiten' label='Bearbeiten' oncommand='KontaktAdresseBearbeiten()' />
<button id='kontakt-adressen-loeschen' label='Loeschen' oncommand='KontaktAdresseDelete()' />
</vbox>
</hbox>
</groupbox>
<groupbox id="kontakt-groupbox-adresse">
<caption label="Kontakt" />
<hbox>
<tree id="kontakt-kontakt-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/kontakt/liste"
ondblclick="KontaktKontaktBearbeiten();"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="kontakt-kontakt-treecol-kontakttyp" label="Typ" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-kontakt" label="Kontakt" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-zustellung" label="Zustellung" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-anmerkung" label="Anmerkung" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-firma_name" label="Firma" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-person_id" label="Person_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-kontakt_id" label="Kontakt_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox>
<button id="kontakt-kontakt-neu" label="Neu" oncommand="KontaktKontaktNeu()" />
<button id="kontakt-kontakt-bearbeiten" label="Bearbeiten" oncommand="KontaktKontaktBearbeiten()" />
<button id="kontakt-kontakt-loeschen" label="Loeschen" oncommand="KontaktKontaktDelete()" />
</vbox>
</hbox>
</groupbox>
<?php
$recht = new benutzerberechtigung();
$recht->getBerechtigungen($uid);
if($recht->isberechtigt('mitarbeiter/bankdaten') || $recht->isberechtigt('student/bankdaten'))
echo '
<groupbox id="kontakt-groupbox-bankverbindung">
<caption label="Bankverbindungen" />
<hbox>
<tree id="kontakt-bankverbindung-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/bankverbindung/liste"
ondblclick="KontaktBankverbindungBearbeiten()"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="kontakt-bankverbindung-treecol-name" label="Name" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-anschrift" label="Anschrift" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-bic" label="BIC" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-blz" label="BLZ" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-iban" label="IBAN" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-kontonr" label="Kontonummer" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-typ_bezeichnung" label="Typ" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-verrechnung" label="Verrechnung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-person_id" label="Person_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-bankverbindung_id" label="Bankverbindung_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox>
<button id="kontakt-bankverbindung-neu" label="Neu" oncommand="KontaktBankverbindungNeu()" />
<button id="kontakt-bankverbindung-bearbeiten" label="Bearbeiten" oncommand="KontaktBankverbindungBearbeiten()" />
<button id="kontakt-bankverbindung-loeschen" label="Loeschen" oncommand="KontaktBankverbindungDelete()" />
</vbox>
</hbox>
</groupbox>';
?>
</vbox>
</window>
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
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");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
$person_id = $_GET['person_id'];
else
die('Parameter person_id muss uebergeben werden');
$uid = get_uid();
?>
<window id="kontakt-window" title="Kontakt"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="loadKontakte(<?php echo $person_id; ?>);"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/kontakt.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
<vbox>
<!-- ADRESSEN -->
<groupbox id="kontakt-groupbox-adresse">
<caption label="Adressen" />
<hbox>
<tree id="kontakt-adressen-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/adresse/liste"
ondblclick="KontaktAdresseBearbeiten()"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="kontakt-adressen-treecol-typ" label="Typ" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-strasse" label="Strasse" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-plz" label="Plz" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#plz" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-ort" label="Ort" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#ort" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-gemeinde" label="Gemeinde" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-nation" label="Nation" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#nation" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-heimatadresse" label="Heimatadresse" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-zustelladresse" label="Zustelladresse" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-co_name" label="Abweich.Empf.(c/o)" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#co_name" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-adresse_id" label="Adresse_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-person_id" label="Person_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-name" label="Name" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#name" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-firma_name" label="Firma" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-rechnungsadresse" label="Rechnungsadresse" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-adressen-treecol-anmerkung" label="Anmerkung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" onclick="KontaktAdresseTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#plz" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#ort" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#nation" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#co_name" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#name" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" />
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox>
<button id='kontakt-adressen-neu' label='Neu' oncommand='KontaktAdresseNeu()' />
<button id='kontakt-adressen-bearbeiten' label='Bearbeiten' oncommand='KontaktAdresseBearbeiten()' />
<button id='kontakt-adressen-loeschen' label='Loeschen' oncommand='KontaktAdresseDelete()' />
</vbox>
</hbox>
</groupbox>
<groupbox id="kontakt-groupbox-adresse">
<caption label="Kontakt" />
<hbox>
<tree id="kontakt-kontakt-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/kontakt/liste"
ondblclick="KontaktKontaktBearbeiten();"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="kontakt-kontakt-treecol-kontakttyp" label="Typ" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-kontakt" label="Kontakt" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-zustellung" label="Zustellung" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-anmerkung" label="Anmerkung" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-firma_name" label="Firma" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-person_id" label="Person_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-kontakt_id" label="Kontakt_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-kontakt-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" onclick="KontaktKontaktTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" />
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox>
<button id="kontakt-kontakt-neu" label="Neu" oncommand="KontaktKontaktNeu()" />
<button id="kontakt-kontakt-bearbeiten" label="Bearbeiten" oncommand="KontaktKontaktBearbeiten()" />
<button id="kontakt-kontakt-loeschen" label="Loeschen" oncommand="KontaktKontaktDelete()" />
</vbox>
</hbox>
</groupbox>
<?php
$recht = new benutzerberechtigung();
$recht->getBerechtigungen($uid);
if($recht->isberechtigt('mitarbeiter/bankdaten') || $recht->isberechtigt('student/bankdaten'))
echo '
<groupbox id="kontakt-groupbox-bankverbindung">
<caption label="Bankverbindungen" />
<hbox>
<tree id="kontakt-bankverbindung-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/bankverbindung/liste"
ondblclick="KontaktBankverbindungBearbeiten()"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="kontakt-bankverbindung-treecol-name" label="Name" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-anschrift" label="Anschrift" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-bic" label="BIC" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-blz" label="BLZ" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-iban" label="IBAN" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-kontonr" label="Kontonummer" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-typ_bezeichnung" label="Typ" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-verrechnung" label="Verrechnung" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-person_id" label="Person_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="kontakt-bankverbindung-treecol-bankverbindung_id" label="Bankverbindung_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" onclick="KontaktBankverbindungTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" />
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox>
<button id="kontakt-bankverbindung-neu" label="Neu" oncommand="KontaktBankverbindungNeu()" />
<button id="kontakt-bankverbindung-bearbeiten" label="Bearbeiten" oncommand="KontaktBankverbindungBearbeiten()" />
<button id="kontakt-bankverbindung-loeschen" label="Loeschen" oncommand="KontaktBankverbindungDelete()" />
</vbox>
</hbox>
</groupbox>';
?>
</vbox>
</window>
+5
View File
@@ -122,6 +122,10 @@ echo ']>
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/messages/rdf#status"/>
<splitter class="tree-splitter"/>
<treecol id="messages-tree-status" label="Letzte Statusänderung" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/messages/rdf#statusdatum"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -137,6 +141,7 @@ echo ']>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#sender_id"/>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#recipient_id"/>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#status"/>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#statusdatum"/>
</treerow>
</treeitem>
</treechildren>
@@ -35,6 +35,7 @@ require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/student.class.php');
require_once('../../include/prestudent.class.php');
require_once('../../include/statusgrund.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/Excel/excel.php');
require_once('../../include/udf.class.php');
@@ -156,6 +157,8 @@ $maxlength[$i] = 16;
$worksheet->write($zeile, ++$i, "STATUS", $format_bold);
$maxlength[$i] = 6;
$worksheet->write($zeile, ++$i, "STATUSGRUND", $format_bold);
$maxlength[$i] = 6;
$worksheet->write($zeile, ++$i, "STATUS IN ANDEREN STUDIENGÄNGEN", $format_bold);
$maxlength[$i] = 8;
$worksheet->write($zeile, ++$i, "EMail Intern", $format_bold);
@@ -258,6 +261,8 @@ function draw_content($row)
$prestudent = new prestudent();
$prestudent->getLastStatus($row->prestudent_id);
$statusgrundObj = new statusgrund($prestudent->statusgrund_id);
$statusgrund = $statusgrundObj->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE];
$status = $prestudent->status_kurzbz;
$orgform = $prestudent->orgform_kurzbz;
$prio_relativ = new prestudent();
@@ -523,6 +528,12 @@ function draw_content($row)
$worksheet->write($zeile, $i, $status);
$i++;
//Statusgrund
if (mb_strlen($statusgrund) > $maxlength[$i])
$maxlength[$i] = mb_strlen($statusgrund);
$worksheet->write($zeile, $i, $statusgrund);
$i++;
//Stati in anderen Studiengaengen
$stati='';
$qry_1 = "
+8 -4
View File
@@ -300,7 +300,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<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" >
ref="http://www.technikum-wien.at/zgv/alle"
style="min-width: 130px">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
@@ -320,7 +321,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<hbox>
<menulist id="student-prestudent-menulist-zgvnation" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/nation/liste">
ref="http://www.technikum-wien.at/nation/liste"
style="min-width: 100px">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
@@ -335,7 +337,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label value="ZGV Master" control="student-prestudent-menulist-zgvmastercode"/>
<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" >
ref="http://www.technikum-wien.at/zgvmaster/alle"
style="min-width: 130px" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
@@ -354,7 +357,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<hbox>
<menulist id="student-prestudent-menulist-zgvmasternation" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/nation/liste" >
ref="http://www.technikum-wien.at/nation/liste"
style="min-width: 100px">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
@@ -96,7 +96,14 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
<label value="Buchungstext" control="student-konto-neu-textbox-buchungstext"/>
<textbox id="student-konto-neu-textbox-buchungstext" maxlength="256"/>
</row>
<row>
<?php
// Mahnspanne wird nur angezeigt, wenn diese im Config aktiviert wurden
if(!defined('FAS_KONTO_SHOW_MAHNSPANNE') || FAS_KONTO_SHOW_MAHNSPANNE===true)
$hidden='';
else
$hidden='hidden="true"';
?>
<row <?php echo $hidden;?>>
<label value="Mahnspanne" control="student-konto-neu-textbox-mahnspanne"/>
<hbox>
<textbox id="student-konto-neu-textbox-mahnspanne" value="30" maxlength="4" size="4"/>
@@ -144,4 +151,4 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
</hbox>
</groupbox>
</vbox>
</window>
</window>
+9 -2
View File
@@ -237,7 +237,14 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label value="Buchungstext" control="student-konto-textbox-buchungstext"/>
<textbox id="student-konto-textbox-buchungstext" disabled="true" maxlength="256"/>
</row>
<row>
<?php
// Mahnspanne wird nur angezeigt, wenn diese im Config aktiviert wurden
if(!defined('FAS_KONTO_SHOW_MAHNSPANNE') || FAS_KONTO_SHOW_MAHNSPANNE===true)
$hidden='';
else
$hidden='hidden="true"';
?>
<row <?php echo $hidden; ?>>
<label value="Mahnspanne" control="student-konto-textbox-mahnspanne"/>
<hbox>
<textbox id="student-konto-textbox-mahnspanne" disabled="true" maxlength="4" size="4"/>
@@ -346,4 +353,4 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</grid>
</hbox>
</vbox>
</overlay>
</overlay>
+19 -3
View File
@@ -43,6 +43,7 @@ class adresse extends basis_db
public $typ; // string
public $heimatadresse; // boolean
public $zustelladresse; // boolean
public $coname; // string
public $firma_id; // integer
public $updateamum; // timestamp
public $updatevon; // string
@@ -51,6 +52,7 @@ class adresse extends basis_db
public $ext_id; // integer
public $rechnungsadresse=false; // boolean
public $anmerkung; // string
public $co_name;
/**
* Konstruktor
@@ -99,6 +101,7 @@ class adresse extends basis_db
$this->person_id = $row->person_id;
$this->plz = $row->plz;
$this->strasse = $row->strasse;
$this->co_name = $row->co_name;
$this->typ = $row->typ;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
@@ -161,6 +164,7 @@ class adresse extends basis_db
$adr_obj->insertamum = $row->insertamum;
$adr_obj->insertvon = $row->insertvon;
$adr_obj->zustelladresse = $this->db_parse_bool($row->zustelladresse);
$adr_obj->co_name = $row->co_name;
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
$adr_obj->anmerkung = $row->anmerkung;
@@ -217,6 +221,7 @@ class adresse extends basis_db
$adr_obj->insertamum = $row->insertamum;
$adr_obj->insertvon = $row->insertvon;
$adr_obj->zustelladresse = $this->db_parse_bool($row->zustelladresse);
$adr_obj->co_name = $row->co_name;
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
$adr_obj->anmerkung = $row->anmerkung;
@@ -269,6 +274,12 @@ class adresse extends basis_db
return false;
}
if(mb_strlen($this->co_name)>64)
{
$this->errormsg = 'Gemeinde darf nicht länger als 64 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
@@ -289,7 +300,7 @@ class adresse extends basis_db
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO public.tbl_adresse (person_id, name, strasse, plz, typ, ort, nation, insertamum, insertvon,
gemeinde, heimatadresse, zustelladresse, firma_id, updateamum, updatevon, rechnungsadresse, anmerkung) VALUES('.
gemeinde, heimatadresse, zustelladresse, firma_id, updateamum, updatevon, rechnungsadresse, anmerkung, co_name) VALUES('.
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->name).', '.
$this->db_add_param($this->strasse).', '.
@@ -304,7 +315,8 @@ class adresse extends basis_db
$this->db_add_param($this->firma_id, FHC_INTEGER).', now(), '.
$this->db_add_param($this->updatevon).','.
$this->db_add_param($this->rechnungsadresse, FHC_BOOLEAN, false).','.
$this->db_add_param($this->anmerkung).');';
$this->db_add_param($this->anmerkung).','.
$this->db_add_param($this->co_name).');';
}
else
{
@@ -314,6 +326,7 @@ class adresse extends basis_db
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
return false;
}
$qry='UPDATE public.tbl_adresse SET'.
' person_id='.$this->db_add_param($this->person_id, FHC_INTEGER).', '.
' name='.$this->db_add_param($this->name).', '.
@@ -329,7 +342,8 @@ class adresse extends basis_db
' heimatadresse='.$this->db_add_param($this->heimatadresse, FHC_BOOLEAN, false).', '.
' zustelladresse='.$this->db_add_param($this->zustelladresse, FHC_BOOLEAN, false).', '.
' rechnungsadresse='.$this->db_add_param($this->rechnungsadresse, FHC_BOOLEAN, false).','.
' anmerkung='.$this->db_add_param($this->anmerkung).' '.
' anmerkung='.$this->db_add_param($this->anmerkung).', '.
' co_name='.$this->db_add_param($this->co_name).' '.
'WHERE adresse_id='.$this->db_add_param($this->adresse_id, FHC_INTEGER, false).';';
}
@@ -442,6 +456,7 @@ class adresse extends basis_db
$this->firma_id = $row->firma_id;
$this->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
$this->anmerkung = $row->anmerkung;
$this->co_name = $row->co_name;
}
else
{
@@ -498,6 +513,7 @@ class adresse extends basis_db
$adr_obj->zustelladresse = $this->db_parse_bool($row->zustelladresse);
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
$adr_obj->anmerkung = $row->anmerkung;
$adr_obj->co_name = $row->co_name;
$this->result[] = $adr_obj;
}
+163
View File
@@ -1013,6 +1013,134 @@ class dvb extends basis_db
}
}
public function setMatrikelnummerErnp($bildungseinrichtung, $person, $reisepass)
{
$this->debug('ernpMeldung');
$uuid = $this->getUUID();
if ($this->tokenIsExpired())
{
$result = $this->authenticate();
if (ErrorHandler::isError($result))
return ErrorHandler::error();
}
$data = '<?xml version="1.0" encoding="UTF-8"?>';
$data .= '<matrikelnummernmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
<uuid>'.$uuid.'</uuid>';
$data .= $this->getPersonmeldungXml($bildungseinrichtung, $person);
$data .= '
<ernpmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
<ausgabedatum>'.$reisepass->ausgabedatum.'</ausgabedatum>
<ausstellBehoerde>'.$reisepass->ausstellBehoerde.'</ausstellBehoerde>
<ausstellland>'.$reisepass->ausstellland.'</ausstellland>
<dokumentnr>'.$reisepass->dokumentnr.'</dokumentnr>
<dokumenttyp>'.$reisepass->dokumenttyp.'</dokumenttyp>
</ernpmeldung>
';
$data .= '</matrikelnummernmeldung>';
$curl = curl_init();
$url = self::DVB_URL_WEBSERVICE_MELDUNG;
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$headers = array(
'Accept: application/xml',
'Content-Type: application/xml',
'Authorization: Bearer '.$this->authentication->access_token,
'User-Agent: FHComplete',
'Connection: Keep-Alive',
'Expect:'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$this->debug('Request URL:'.$url);
$this->debug('Request Data:'.$data);
$response = curl_exec($curl);
$curl_info = curl_getinfo($curl);
curl_close($curl);
$this->debug('Response: '.$curl_info['http_code']);
$this->debug('Response: '.print_r($response, true));
if ($curl_info['http_code'] == '200')
{
$dom = new DOMDocument();
$dom->loadXML($response);
$domnodes_fehlerliste = $dom->getElementsByTagName('fehlerliste');
$fehleranzahl = $domnodes_fehlerliste->item(0)->getAttribute('fehleranzahl');
if ($fehleranzahl === '0')
{
// Keine Fehler -> Meldung erfolgreich
$retval = new stdClass();
$retval->matrikelnummer = $person->matrikelnummer;
return ErrorHandler::success($retval);
}
else
{
$this->errormsg = 'Es gab '.$fehleranzahl.' Fehler:';
$domnodes_fehler = $dom->getElementsByTagName('fehler');
foreach ($domnodes_fehler as $row)
{
$fehlernummer = $row->getElementsByTagName('fehlernummer');
/**
* Bei Fehlernummer ED10065 wurde die Matrikelnummer korrekt gesetzt.
* Das BPK wurde vom Datenverbund versucht zu ermitteln und wird in der Fehlermeldung
* zurückgeliefert. Dieses sollte dann gespeichert werden.
* Es muss eine erneute Vergabemeldung mit korrigierten Daten vorgenommen werden um die Daten im
* DVB zu aktualisieren
* Dies gilt nur, wenn ED10065 alleine geliefert wird und keine sonstigen Fehler auftreten
*/
if ($fehlernummer->length == 1 && $fehlernummer->item(0)->textContent == 'ED10065')
{
$this->debug('ED10065 Response');
$domnodes_feldinhalt = $row->getElementsByTagName('feldinhalt');
if ($domnodes_feldinhalt->length > 0 && $domnodes_feldinhalt->item(0)->textContent!='')
{
$bpk = $domnodes_feldinhalt->item(0)->textContent;
$retval = new stdClass();
$retval->matrikelnummer = $person->matrikelnummer;
if ($bpk != 'keine bPK gefunden')
$retval->bpk = $bpk;
$this->errormsg .= 'ED10065 Response';
$this->errormsg .= 'Eine Personendatenprüfung ist erforderlich';
$this->errormsg .= 'Danach muss eine erneute Vergabemeldung mit dieser Matrikelnummer erfolgen.';
$this->debug('BPK:'.$bpk);
$this->debug('MatrNr:'.$person->matrikelnummer);
return ErrorHandler::success($retval);
}
}
else
{
$datenfeld = $row->getElementsByTagName('datenfeld');
$fehlertext = $row->getElementsByTagName('fehlertext');
$this->errormsg .= ' Datenfeld:'.$datenfeld->item(0)->textContent;
$this->errormsg .= ' Fehlertext:'.$fehlertext->item(0)->textContent;
}
}
return ErrorHandler::error();
}
}
else
{
$errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response;
return ErrorHandler::error($errormsg);
}
}
/**
* Get BPK from Person
* @param string $person_id ID of the Person.
@@ -1737,6 +1865,41 @@ class dvb extends basis_db
$this->debug_output .= "\n".date('Y-m-d H:i:s').': '.$msg;
}
private function getPersonmeldungXml($bildungseinrichtung, $person)
{
$gebdat = str_replace("-", "", $person->geburtsdatum);
$data = '<personmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
<be>'.$bildungseinrichtung.'</be>
<gebdat>'.$gebdat.'</gebdat>
<geschlecht>'.$person->geschlecht.'</geschlecht>
<matrikelnummer>'.$person->matrikelnummer.'</matrikelnummer>';
if (isset($person->matura) && $person->matura != '')
$data .= '<matura>'.$person->matura.'</matura>';
else
$data .= '<matura>00000000</matura>';
$data .= '<nachname>'.$person->nachname.'</nachname>';
if (isset($person->plz) && $person->plz != '')
$data .= '<plz>'.$person->plz.'</plz>';
$data .= '<staat>'.$person->staat.'</staat>';
if (isset($person->svnr) && $person->svnr != '')
$data .= '<svnr>'.$person->svnr.'</svnr>';
$data .= '<vorname>'.$person->vorname.'</vorname>';
if (isset($person->writeonerror) && $person->writeonerror === true)
$data .= '<writeOnError>J</writeOnError>';
$data .= '
</personmeldung>';
return $data;
}
/**
* Erstellt einen Logeintrag
* @param object $person Personen objekt.
+30 -1
View File
@@ -374,7 +374,7 @@ class person extends basis_db
$this->errormsg = 'Staatsbuergerschaft darf nicht laenger als 3 Zeichen sein';
return false;
}
//Pruefen ob das Geburtsdatum mit der SVNR uebereinstimmt.
if ($this->svnr != '' && $this->gebdatum != '')
{
@@ -1018,4 +1018,33 @@ class person extends basis_db
return false;
}
}
public function getFullNameFromBenutzer($uid)
{
$qry = "SELECT
vorname, nachname
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
WHERE
uid=".$this->db_add_param($uid, FHC_STRING);
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
{
return (string)$row->vorname.' '.$row->nachname;
}
else
{
$this->errormsg = 'Keine Personendaten zu dieser UID gefunden';
return false;
}
}
else
{
$this->errormsg = "Fehler beim Laden der Personendaten";
return false;
}
}
}
+17 -17
View File
@@ -287,7 +287,7 @@ class studiensemester extends basis_db
$qry.= " WHERE substring(studiensemester_kurzbz from 1 for 2)='$ss' ";
}
$qry.=' ORDER BY delta LIMIT 1';
$qry.=' ORDER BY delta, start LIMIT 1';
if(!$this->db_query($qry))
{
@@ -573,7 +573,7 @@ class studiensemester extends basis_db
{
$qry = "SELECT studiensemester_kurzbz, start, ende FROM public.vw_studiensemester
WHERE studiensemester_kurzbz<>".$this->db_add_param($studiensemester_kurzbz)."
ORDER BY delta LIMIT 1";
ORDER BY delta, start LIMIT 1";
if($this->db_query($qry))
{
@@ -907,13 +907,13 @@ class studiensemester extends basis_db
ORDER BY ende ASC";
if ($plus != '')
$qry .= " LIMIT ".$this->db_add_param($plus, FHC_INTEGER);
$qry .= ") UNION
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start <= now()
ORDER BY start DESC ";
if ($minus != '')
$qry .= " LIMIT ".$this->db_add_param($minus, FHC_INTEGER);
$qry .= ")) ORDER BY ".$order;
if($this->db_query($qry))
@@ -967,7 +967,7 @@ class studiensemester extends basis_db
FROM tbl_studiensemester
) a
WHERE a.studiensemester_kurzbz!=".$this->db_add_param($studiensemester_kurzbz)."
ORDER BY delta LIMIT 1";
ORDER BY delta, start LIMIT 1";
if($this->db_query($qry))
{
@@ -1029,7 +1029,7 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Gibt das Wintersemester eines Studienjahres zurück (zb WS2017)
*
@@ -1040,10 +1040,10 @@ class studiensemester extends basis_db
{
$qry = "
SELECT studiensemester_kurzbz
FROM tbl_studiensemester
FROM tbl_studiensemester
WHERE studienjahr_kurzbz LIKE " . $this->db_add_param($studienjahr_kurzbz) . "
AND studiensemester_kurzbz LIKE 'WS%';";
if ($result = $this->db_query($qry))
{
if ($row = $this->db_fetch_object())
@@ -1063,7 +1063,7 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Gibt das Sommersemester eines Studienjahres zurück (zb SS2018)
*
@@ -1074,10 +1074,10 @@ class studiensemester extends basis_db
{
$qry = "
SELECT studiensemester_kurzbz
FROM tbl_studiensemester
FROM tbl_studiensemester
WHERE studienjahr_kurzbz LIKE " . $this->db_add_param($studienjahr_kurzbz) . "
AND studiensemester_kurzbz LIKE 'SS%';";
if ($result = $this->db_query($qry))
{
if ($row = $this->db_fetch_object())
@@ -1097,7 +1097,7 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Gibt die Studiensemester zwischen $studiensemesterStart und $studiensemesterEnde zurück
* Wenn $inklusive true ist (default), werden auch $studiensemesterStart und $studiensemesterEnde selbst zurückgegeben
@@ -1116,7 +1116,7 @@ class studiensemester extends basis_db
}
if ($inklusive = true)
$equalSign = '=';
else
else
$equalSign = '';
$qry = "
SELECT *
@@ -1132,13 +1132,13 @@ class studiensemester extends basis_db
WHERE studiensemester_kurzbz = " . $this->db_add_param($studiensemesterEnde) . "
)
ORDER BY start DESC;";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$stsem_obj = new studiensemester();
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
@@ -1146,7 +1146,7 @@ class studiensemester extends basis_db
$stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz;
$stsem_obj->beschreibung = $row->beschreibung;
$stsem_obj->onlinebewerbung = $row->onlinebewerbung;
$this->studiensemester[] = $stsem_obj;
}
return true;
@@ -1158,4 +1158,4 @@ class studiensemester extends basis_db
}
}
}
?>
?>
+9
View File
@@ -510,6 +510,15 @@ class zeitsperre extends basis_db
}
}
public function getVonDatum()
{
return $this->vondatum;
}
public function getBisDatum()
{
return $this->bisdatum;
}
}
?>
+194 -193
View File
@@ -1,193 +1,194 @@
<?php
$this->phrasen['global/studiengang']='Studiengang';
$this->phrasen['global/studienrichtung']='Studienrichtung';
$this->phrasen['global/institut']='Institut';
$this->phrasen['global/semester']='Semester';
$this->phrasen['global/studiensemester']='Studiensemester';
$this->phrasen['global/studienplan']='Studienplan';
$this->phrasen['global/studienzentrum']='Studienzentrum';
$this->phrasen['global/studiengangsleitung']='Studiengangsleitung';
$this->phrasen['global/leitung']='Leitung';
$this->phrasen['global/koordination']='Koordination';
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
$this->phrasen['global/lehreinheit']='Lehreinheit';
$this->phrasen['global/organisationseinheit']='Organisationseinheit';
$this->phrasen['global/organisationseinheiten']='Organisationseinheiten';
$this->phrasen['global/organisationsform']='Organisationsform';
$this->phrasen['global/studienjahr']='Studienjahr';
$this->phrasen['global/lektorIn']='LektorIn';
$this->phrasen['global/lektorInnen']='LektorInnen';
$this->phrasen['global/ects']='ECTS';
$this->phrasen['global/semesterstunden']='Semesterstunden';
$this->phrasen['global/studiengangsmanagement']='Studiengangsmanagement';
$this->phrasen['global/geschaeftsfuehrendeltg']='geschäftsf. Leitung';
$this->phrasen['global/stellvertreter']='Stellvertretung';
$this->phrasen['global/sekretariat']='Sekretariat';
$this->phrasen['global/studentenvertreter']='Studienvertretung';
$this->phrasen['global/jahrgangsvertretung']='Jahrgangsvertretung';
$this->phrasen['global/hochschulvertretung']='Hochschulvertretung';
$this->phrasen['global/lehrziele']='Lehrziele';
$this->phrasen['global/allgemeinerdownload']='Allgemeiner Download';
$this->phrasen['global/newsgroups']='Newsgroups';
$this->phrasen['global/speichern']='Speichern';
$this->phrasen['global/loeschen']='Löschen';
$this->phrasen['global/entfernen']='Entfernen';
$this->phrasen['global/editieren']='Editieren';
$this->phrasen['global/suchen']='Suchen';
$this->phrasen['global/lesen']='Lesen';
$this->phrasen['global/bestaetigen']='Bestätigen';
$this->phrasen['global/alle']='Alle';
$this->phrasen['global/abbrechen']='Abbrechen';
$this->phrasen['global/eintragen']='Eintragen';
$this->phrasen['global/erstellen']='Erstellen';
$this->phrasen['global/zurueck']='Zurück';
$this->phrasen['global/abschicken']='Abschicken';
$this->phrasen['global/zuruecksetzen']='Zurücksetzen';
$this->phrasen['global/datei']='Datei';
$this->phrasen['global/auswaehlen']='Auswählen';
$this->phrasen['global/umbenennen']='Umbenennen';
$this->phrasen['global/anzeigen']='Anzeigen';
$this->phrasen['global/ausblenden']='Ausblenden';
$this->phrasen['global/bearbeiten']='Bearbeiten';
$this->phrasen['global/aendern']='Ändern';
$this->phrasen['global/kopieren']='Kopieren';
$this->phrasen['global/ja']='Ja';
$this->phrasen['global/nein']='Nein';
$this->phrasen['global/download']='Download';
$this->phrasen['global/auswahl']='Auswahl';
$this->phrasen['global/hinzufuegen']='Hinzufügen';
$this->phrasen['global/drucken']='Drucken';
$this->phrasen['global/pdfExport']='PDF Export';
$this->phrasen['global/und']='und';
$this->phrasen['global/oder']='oder';
$this->phrasen['global/faelligAm']='Fällig am';
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='Vorname';
$this->phrasen['global/nachname']='Nachname';
$this->phrasen['global/anrede']='Anrede';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
$this->phrasen['global/postnomen']='Postnomen';
$this->phrasen['global/strasse']='Straße';
$this->phrasen['global/plz']='Postleitzahl';
$this->phrasen['global/ort']='Ort';
$this->phrasen['global/anmerkung']='Anmerkung';
$this->phrasen['global/anmerkungen']='Anmerkungen';
$this->phrasen['global/sprache']='Sprache';
$this->phrasen['global/englisch']='Englisch';
$this->phrasen['global/deutsch']='Deutsch';
$this->phrasen['global/titel']='Titel';
$this->phrasen['global/geschlecht']='Geschlecht';
$this->phrasen['global/mann']='Mann';
$this->phrasen['global/frau']='Frau';
$this->phrasen['global/staatsbuergerschaft']='Staatsbürgerschaft';
$this->phrasen['global/geburtsdatum']='Geburtsdatum';
$this->phrasen['global/geburtsort']='Geburtsort';
$this->phrasen['global/universität']='Universität';
$this->phrasen['global/code']='Code';
$this->phrasen['global/adresse']='Adresse';
$this->phrasen['global/hauptwohnsitz']='Hauptwohnsitz';
$this->phrasen['global/nebenwohnsitz']='Nebenwohnsitz';
$this->phrasen['global/emailAdresse']='E-Mail Adresse';
$this->phrasen['global/mail']='Mail';
$this->phrasen['global/telefon']='Telefon';
$this->phrasen['global/telefonnummer']='Telefonnummer';
$this->phrasen['global/handy']='Handy';
$this->phrasen['global/fax']='Fax';
$this->phrasen['global/bezeichnung']='Bezeichnung';
$this->phrasen['global/datum']='Datum';
$this->phrasen['global/stunde']='Stunde';
$this->phrasen['global/minute']='Minute';
$this->phrasen['global/uhrzeit']='Uhrzeit';
$this->phrasen['global/person']='Person';
$this->phrasen['global/personen']='Personen';
$this->phrasen['global/personenkz']='Personenkz.';
$this->phrasen['global/beschreibung']='Beschreibung';
$this->phrasen['global/angelegtAm']='angelegt am';
$this->phrasen['global/funktion']='Funktion'; //Mitarbeiterfunktion zB Assistenz
$this->phrasen['global/montag']='Montag';
$this->phrasen['global/dienstag']='Dienstag';
$this->phrasen['global/mittwoch']='Mittwoch';
$this->phrasen['global/donnerstag']='Donnerstag';
$this->phrasen['global/freitag']='Freitag';
$this->phrasen['global/samstag']='Samstag';
$this->phrasen['global/sonntag']='Sonntag';
$this->phrasen['global/matrikelnummer']='Matrikelnummer';
$this->phrasen['global/personenkennzeichen']='Personenkennzeichen';
$this->phrasen['global/von']='Von';
$this->phrasen['global/bis']='Bis';
$this->phrasen['global/zweck']='Zweck';
$this->phrasen['global/aktion']='Aktion';
$this->phrasen['global/nummer']='Nummer';
$this->phrasen['global/gruppe']='Gruppe';
$this->phrasen['global/verband']='Verband';
$this->phrasen['global/kalender']='Kalender';
$this->phrasen['global/beginn']='Beginn';
$this->phrasen['global/ende']='Ende';
$this->phrasen['global/beispiele']='Beispiele';
$this->phrasen['global/neu']='Neu';
$this->phrasen['global/ok']='OK';
$this->phrasen['global/anmelden']='Anmelden';
$this->phrasen['global/angemeldet']='Angemeldet';
$this->phrasen['global/löschen']='Löschen';
$this->phrasen['global/dateiLoeschen']='Datei Löschen';
$this->phrasen['global/betreff']='Betreff';
$this->phrasen['global/handbuch']='Handbuch';
$this->phrasen['global/hilfe']='Hilfe';
$this->phrasen['global/benutzer']='Benutzer';
$this->phrasen['global/anleitung']='Anleitung';
$this->phrasen['global/bericht']='Bericht';
$this->phrasen['global/fixangestellt']='Fixangestellt';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert';
$this->phrasen['global/erfolgreichgelöscht']='Erfolgreich gelöscht';
$this->phrasen['global/fehleraufgetreten']='Es ist ein Fehler aufgetreten';
$this->phrasen['global/emailgesendetan']='E-Mail gesendet an';
$this->phrasen['global/emailNichtVersendet']='E-Mail konnte nicht versendet werden';
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='Sie haben keine Berechtigung für diese Seite';
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Fehler beim Öffnen der Datenbankverbindung';
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Fehler beim Lesen aus der Datenbank';
$this->phrasen['global/userNichtGefunden']='Es wurde kein User gefunden';
$this->phrasen['global/datumNichtGesetzt']='Datum ist nicht gesetzt';
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'Studiensemester konnte nicht gefunden werden';
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Studiengang konnte nicht gefunden werden';
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Studienjahr konnte nicht gefunden werden';
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Fehler beim ermitteln der UID';
$this->phrasen['global/nichtAngemeldet'] = 'Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden';
$this->phrasen['global/LDAPserverNichtErreichbar']='Der LDAP-Server ist nicht erreichbar';
$this->phrasen['global/unbekannterFehleraufgetreten']='Es ist ein unbekannter Fehler aufgetreten';
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Fehler bei der Uebergabe der Parameter';
$this->phrasen['global/warnungWirklichLoeschen']='Wollen Sie diesen Datensatz wirklich löschen?';
$this->phrasen['global/dateiErfolgreichHochgeladen']='Die Datei wurde erfolgreich hochgeladen';
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Die Datei wurde nicht erfolgreich hochgeladen. Bitte wiederholen Sie den Vorgang';
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='Fuer diese Aktion benoetigen Sie Administratorenrechte';
$this->phrasen['global/dateiExistiertNicht']='Die Datei existiert nicht';
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Fehler beim Aktualisieren der Daten';
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Fehler beim Laden des Datensatzes';
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Fehler beim Speichern der Daten';
$this->phrasen['global/datenWurdenGespeichert']='Daten wurden gespeichert';
$this->phrasen['global/eintragWurdeGeloescht']='Eintrag wurde gelöscht';
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Fehler beim Löschen des Eintrags';
$this->phrasen['global/keineBerechtigung']='Keine Berechtigung';
$this->phrasen['global/datensatzWurdeNichtGefunden']='Datensatz wurde nicht gefunden';
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='Keine Berechtigung zum Ändern des Datensatzes';
$this->phrasen['global/keineDatenGefunden']='Keine Daten gefunden';
$this->phrasen['global/erfolgreichAngelegt']='Erfolgreich angelegt';
$this->phrasen['global/keineSuchergebnisse']='Es liegen keine Daten zu Ihrer Suchanfrage vor';
$this->phrasen['global/bitteWaehlen']='Bitte wählen Sie';
//infrastruktur
$this->phrasen['global/passwort']='Passwort';
$this->phrasen['global/abmelden']='Abmelden';
$this->phrasen['global/emailAnAssistenz']='Email an Assistenz';
?>
<?php
$this->phrasen['global/studiengang']='Studiengang';
$this->phrasen['global/studienrichtung']='Studienrichtung';
$this->phrasen['global/institut']='Institut';
$this->phrasen['global/semester']='Semester';
$this->phrasen['global/studiensemester']='Studiensemester';
$this->phrasen['global/studienplan']='Studienplan';
$this->phrasen['global/studienzentrum']='Studienzentrum';
$this->phrasen['global/studiengangsleitung']='Studiengangsleitung';
$this->phrasen['global/leitung']='Leitung';
$this->phrasen['global/koordination']='Koordination';
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
$this->phrasen['global/lehreinheit']='Lehreinheit';
$this->phrasen['global/organisationseinheit']='Organisationseinheit';
$this->phrasen['global/organisationseinheiten']='Organisationseinheiten';
$this->phrasen['global/organisationsform']='Organisationsform';
$this->phrasen['global/studienjahr']='Studienjahr';
$this->phrasen['global/lektorIn']='LektorIn';
$this->phrasen['global/lektorInnen']='LektorInnen';
$this->phrasen['global/ects']='ECTS';
$this->phrasen['global/semesterstunden']='Semesterstunden';
$this->phrasen['global/studiengangsmanagement']='Studiengangsmanagement';
$this->phrasen['global/geschaeftsfuehrendeltg']='geschäftsf. Leitung';
$this->phrasen['global/stellvertreter']='Stellvertretung';
$this->phrasen['global/sekretariat']='Sekretariat';
$this->phrasen['global/studentenvertreter']='Studienvertretung';
$this->phrasen['global/jahrgangsvertretung']='Jahrgangsvertretung';
$this->phrasen['global/hochschulvertretung']='Hochschulvertretung';
$this->phrasen['global/lehrziele']='Lehrziele';
$this->phrasen['global/allgemeinerdownload']='Allgemeiner Download';
$this->phrasen['global/newsgroups']='Newsgroups';
$this->phrasen['global/speichern']='Speichern';
$this->phrasen['global/loeschen']='Löschen';
$this->phrasen['global/entfernen']='Entfernen';
$this->phrasen['global/editieren']='Editieren';
$this->phrasen['global/suchen']='Suchen';
$this->phrasen['global/lesen']='Lesen';
$this->phrasen['global/bestaetigen']='Bestätigen';
$this->phrasen['global/alle']='Alle';
$this->phrasen['global/abbrechen']='Abbrechen';
$this->phrasen['global/eintragen']='Eintragen';
$this->phrasen['global/erstellen']='Erstellen';
$this->phrasen['global/durchfuehren']='Durchf&uuml;hren';
$this->phrasen['global/zurueck']='Zurück';
$this->phrasen['global/abschicken']='Abschicken';
$this->phrasen['global/zuruecksetzen']='Zurücksetzen';
$this->phrasen['global/datei']='Datei';
$this->phrasen['global/auswaehlen']='Auswählen';
$this->phrasen['global/umbenennen']='Umbenennen';
$this->phrasen['global/anzeigen']='Anzeigen';
$this->phrasen['global/ausblenden']='Ausblenden';
$this->phrasen['global/bearbeiten']='Bearbeiten';
$this->phrasen['global/aendern']='Ändern';
$this->phrasen['global/kopieren']='Kopieren';
$this->phrasen['global/ja']='Ja';
$this->phrasen['global/nein']='Nein';
$this->phrasen['global/download']='Download';
$this->phrasen['global/auswahl']='Auswahl';
$this->phrasen['global/hinzufuegen']='Hinzufügen';
$this->phrasen['global/drucken']='Drucken';
$this->phrasen['global/pdfExport']='PDF Export';
$this->phrasen['global/und']='und';
$this->phrasen['global/oder']='oder';
$this->phrasen['global/faelligAm']='Fällig am';
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='Vorname';
$this->phrasen['global/nachname']='Nachname';
$this->phrasen['global/anrede']='Anrede';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
$this->phrasen['global/postnomen']='Postnomen';
$this->phrasen['global/strasse']='Straße';
$this->phrasen['global/plz']='Postleitzahl';
$this->phrasen['global/ort']='Ort';
$this->phrasen['global/anmerkung']='Anmerkung';
$this->phrasen['global/anmerkungen']='Anmerkungen';
$this->phrasen['global/sprache']='Sprache';
$this->phrasen['global/englisch']='Englisch';
$this->phrasen['global/deutsch']='Deutsch';
$this->phrasen['global/titel']='Titel';
$this->phrasen['global/geschlecht']='Geschlecht';
$this->phrasen['global/mann']='Mann';
$this->phrasen['global/frau']='Frau';
$this->phrasen['global/staatsbuergerschaft']='Staatsbürgerschaft';
$this->phrasen['global/geburtsdatum']='Geburtsdatum';
$this->phrasen['global/geburtsort']='Geburtsort';
$this->phrasen['global/universität']='Universität';
$this->phrasen['global/code']='Code';
$this->phrasen['global/adresse']='Adresse';
$this->phrasen['global/hauptwohnsitz']='Hauptwohnsitz';
$this->phrasen['global/nebenwohnsitz']='Nebenwohnsitz';
$this->phrasen['global/emailAdresse']='E-Mail Adresse';
$this->phrasen['global/mail']='Mail';
$this->phrasen['global/telefon']='Telefon';
$this->phrasen['global/telefonnummer']='Telefonnummer';
$this->phrasen['global/handy']='Handy';
$this->phrasen['global/fax']='Fax';
$this->phrasen['global/bezeichnung']='Bezeichnung';
$this->phrasen['global/datum']='Datum';
$this->phrasen['global/stunde']='Stunde';
$this->phrasen['global/minute']='Minute';
$this->phrasen['global/uhrzeit']='Uhrzeit';
$this->phrasen['global/person']='Person';
$this->phrasen['global/personen']='Personen';
$this->phrasen['global/personenkz']='Personenkz.';
$this->phrasen['global/beschreibung']='Beschreibung';
$this->phrasen['global/angelegtAm']='angelegt am';
$this->phrasen['global/funktion']='Funktion'; //Mitarbeiterfunktion zB Assistenz
$this->phrasen['global/montag']='Montag';
$this->phrasen['global/dienstag']='Dienstag';
$this->phrasen['global/mittwoch']='Mittwoch';
$this->phrasen['global/donnerstag']='Donnerstag';
$this->phrasen['global/freitag']='Freitag';
$this->phrasen['global/samstag']='Samstag';
$this->phrasen['global/sonntag']='Sonntag';
$this->phrasen['global/matrikelnummer']='Matrikelnummer';
$this->phrasen['global/personenkennzeichen']='Personenkennzeichen';
$this->phrasen['global/von']='Von';
$this->phrasen['global/bis']='Bis';
$this->phrasen['global/zweck']='Zweck';
$this->phrasen['global/aktion']='Aktion';
$this->phrasen['global/nummer']='Nummer';
$this->phrasen['global/gruppe']='Gruppe';
$this->phrasen['global/verband']='Verband';
$this->phrasen['global/kalender']='Kalender';
$this->phrasen['global/beginn']='Beginn';
$this->phrasen['global/ende']='Ende';
$this->phrasen['global/beispiele']='Beispiele';
$this->phrasen['global/neu']='Neu';
$this->phrasen['global/ok']='OK';
$this->phrasen['global/anmelden']='Anmelden';
$this->phrasen['global/angemeldet']='Angemeldet';
$this->phrasen['global/schen']='Löschen';
$this->phrasen['global/dateiLoeschen']='Datei Löschen';
$this->phrasen['global/betreff']='Betreff';
$this->phrasen['global/handbuch']='Handbuch';
$this->phrasen['global/hilfe']='Hilfe';
$this->phrasen['global/benutzer']='Benutzer';
$this->phrasen['global/anleitung']='Anleitung';
$this->phrasen['global/bericht']='Bericht';
$this->phrasen['global/fixangestellt']='Fixangestellt';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert';
$this->phrasen['global/erfolgreichgelöscht']='Erfolgreich gelöscht';
$this->phrasen['global/fehleraufgetreten']='Es ist ein Fehler aufgetreten';
$this->phrasen['global/emailgesendetan']='E-Mail gesendet an';
$this->phrasen['global/emailNichtVersendet']='E-Mail konnte nicht versendet werden';
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='Sie haben keine Berechtigung für diese Seite';
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Fehler beim Öffnen der Datenbankverbindung';
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Fehler beim Lesen aus der Datenbank';
$this->phrasen['global/userNichtGefunden']='Es wurde kein User gefunden';
$this->phrasen['global/datumNichtGesetzt']='Datum ist nicht gesetzt';
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'Studiensemester konnte nicht gefunden werden';
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Studiengang konnte nicht gefunden werden';
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Studienjahr konnte nicht gefunden werden';
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Fehler beim ermitteln der UID';
$this->phrasen['global/nichtAngemeldet'] = 'Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden';
$this->phrasen['global/LDAPserverNichtErreichbar']='Der LDAP-Server ist nicht erreichbar';
$this->phrasen['global/unbekannterFehleraufgetreten']='Es ist ein unbekannter Fehler aufgetreten';
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Fehler bei der Uebergabe der Parameter';
$this->phrasen['global/warnungWirklichLoeschen']='Wollen Sie diesen Datensatz wirklich löschen?';
$this->phrasen['global/dateiErfolgreichHochgeladen']='Die Datei wurde erfolgreich hochgeladen';
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Die Datei wurde nicht erfolgreich hochgeladen. Bitte wiederholen Sie den Vorgang';
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='Fuer diese Aktion benoetigen Sie Administratorenrechte';
$this->phrasen['global/dateiExistiertNicht']='Die Datei existiert nicht';
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Fehler beim Aktualisieren der Daten';
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Fehler beim Laden des Datensatzes';
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Fehler beim Speichern der Daten';
$this->phrasen['global/datenWurdenGespeichert']='Daten wurden gespeichert';
$this->phrasen['global/eintragWurdeGeloescht']='Eintrag wurde gelöscht';
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Fehler beim Löschen des Eintrags';
$this->phrasen['global/keineBerechtigung']='Keine Berechtigung';
$this->phrasen['global/datensatzWurdeNichtGefunden']='Datensatz wurde nicht gefunden';
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='Keine Berechtigung zum Ändern des Datensatzes';
$this->phrasen['global/keineDatenGefunden']='Keine Daten gefunden';
$this->phrasen['global/erfolgreichAngelegt']='Erfolgreich angelegt';
$this->phrasen['global/keineSuchergebnisse']='Es liegen keine Daten zu Ihrer Suchanfrage vor';
$this->phrasen['global/bitteWaehlen']='Bitte wählen Sie';
$this->phrasen['global/zusaetzlicheInformationen']='Zusätzliche Informationen';
//infrastruktur
$this->phrasen['global/passwort']='Passwort';
$this->phrasen['global/abmelden']='Abmelden';
$this->phrasen['global/emailAnAssistenz']='Email an Assistenz';
?>
+4
View File
@@ -36,4 +36,8 @@ $this->phrasen['urlaubstool/meineZeitsperren']='Meine Zeitsperren';
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Sie können diesen unter folgender Adresse freigeben';
$this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub';
$this->phrasen['urlaubstool/freigabeFehlt']='Urlaub wurde noch nicht freigegeben';
$this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Bereits Freigegebener Urlaub wurde gelöscht';
$this->phrasen['urlaubstool/VorgesetzteInformiert']='Email wurde an %s versandt';
$this->phrasen['urlaubstool/konnteKeinInformationsemailVersendetWerden']='Es konnte kein Email versendet werden, da kein Vorgesetzter eingetragen ist!';
$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat bereits freigegebenen Urlaub gelöscht';
?>
+192 -190
View File
@@ -1,190 +1,192 @@
<?php
$this->phrasen['global/studiengang']='Degree Program';
$this->phrasen['global/studienrichtung']='Degree Program';
$this->phrasen['global/institut']='Institute';
$this->phrasen['global/semester']='Semester';
$this->phrasen['global/studiensemester']='Semester';
$this->phrasen['global/studienplan']='Study Plan';
$this->phrasen['global/studienzentrum']='Study Center';
$this->phrasen['global/studiengangsleitung']='Program Director';
$this->phrasen['global/leitung']='Head';
$this->phrasen['global/koordination']='Coordination';
$this->phrasen['global/lehrveranstaltung']='Subject';
$this->phrasen['global/lehreinheit']='Teaching unit';
$this->phrasen['global/organisationseinheit']='Organisation Unit';
$this->phrasen['global/organisationseinheiten']='Organisation Units';
$this->phrasen['global/organisationsform']='Organisational form';
$this->phrasen['global/studienjahr']='Academic year';
$this->phrasen['global/lektorIn']='Lector';
$this->phrasen['global/lektorInnen']='Lectors';
$this->phrasen['global/ects']='ECTS';
$this->phrasen['global/semesterstunden']='Units per semester';
$this->phrasen['global/studiengangsmanagement']='Study Management';
$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership';
$this->phrasen['global/stellvertreter']='Deputy Program Director';
$this->phrasen['global/sekretariat']='Administrative Assistant';
$this->phrasen['global/studentenvertreter']='Degree Program Representative';
$this->phrasen['global/jahrgangsvertretung']='Academic Year Representative';
$this->phrasen['global/hochschulvertretung']='UAS Representative';
$this->phrasen['global/lehrziele']='Teaching goals';
$this->phrasen['global/allgemeinerdownload']='Global Download';
$this->phrasen['global/newsgroups']='Newsgroups';
$this->phrasen['global/speichern']='Save';
$this->phrasen['global/loeschen']='Delete';
$this->phrasen['global/entfernen']='Delete';
$this->phrasen['global/editieren']='Edit';
$this->phrasen['global/suchen']='Search';
$this->phrasen['global/lesen']='Read';
$this->phrasen['global/bestaetigen']='Confirm';
$this->phrasen['global/alle']='All';
$this->phrasen['global/abbrechen']='Cancel';
$this->phrasen['global/eintragen']='Register';
$this->phrasen['global/erstellen']='Create';
$this->phrasen['global/zurueck']='Back';
$this->phrasen['global/abschicken']='Submit';
$this->phrasen['global/zuruecksetzen']='Reset';
$this->phrasen['global/datei']='File';
$this->phrasen['global/auswaehlen']='Select';
$this->phrasen['global/umbenennen']='Rename';
$this->phrasen['global/anzeigen']='Show';
$this->phrasen['global/ausblenden']='Hide';
$this->phrasen['global/bearbeiten']='Edit';
$this->phrasen['global/aendern']='Change';
$this->phrasen['global/kopieren']='Copy';
$this->phrasen['global/ja']='Yes';
$this->phrasen['global/nein']='No';
$this->phrasen['global/download']='Download';
$this->phrasen['global/auswahl']='Select';
$this->phrasen['global/hinzufuegen']='Add';
$this->phrasen['global/drucken']='Print';
$this->phrasen['global/und']='and';
$this->phrasen['global/oder']='or';
$this->phrasen['global/faelligAm']='Due on';
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='First Name';
$this->phrasen['global/nachname']='Last Name';
$this->phrasen['global/anrede']='Title';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
$this->phrasen['global/postnomen']='Postnomen';
$this->phrasen['global/strasse']='Street';
$this->phrasen['global/plz']='Postal Code';
$this->phrasen['global/ort']='City';
$this->phrasen['global/anmerkung']='Comment';
$this->phrasen['global/anmerkungen']='Comments';
$this->phrasen['global/sprache']='Language';
$this->phrasen['global/englisch']='English';
$this->phrasen['global/deutsch']='German';
$this->phrasen['global/titel']='Title';
$this->phrasen['global/geschlecht']='Gender';
$this->phrasen['global/mann']='Male';
$this->phrasen['global/frau']='Female';
$this->phrasen['global/staatsbuergerschaft']='Citizenship';
$this->phrasen['global/geburtsdatum']='Date of Birth';
$this->phrasen['global/geburtsort']='Place of Birth';
$this->phrasen['global/universität']='University';
$this->phrasen['global/code']='Code';
$this->phrasen['global/adresse']='Address';
$this->phrasen['global/hauptwohnsitz']='Principal residence';
$this->phrasen['global/nebenwohnsitz']='Secondary residence';
$this->phrasen['global/emailAdresse']='E-Mail Address';
$this->phrasen['global/mail']='Mail';
$this->phrasen['global/telefon']='Telephone';
$this->phrasen['global/telefonnummer']='Telephone number';
$this->phrasen['global/handy']='Mobile phone';
$this->phrasen['global/fax']='Fax';
$this->phrasen['global/bezeichnung']='Description';
$this->phrasen['global/datum']='Date';
$this->phrasen['global/stunde']='Hour';
$this->phrasen['global/minute']='Minute';
$this->phrasen['global/uhrzeit']='Time';
$this->phrasen['global/person']='Person';
$this->phrasen['global/personenkz']='StudentID';
$this->phrasen['global/personen']='Number of Persons';
$this->phrasen['global/beschreibung']='Description';
$this->phrasen['global/angelegtAm']='created:';
$this->phrasen['global/funktion']='Role'; //Mitarbeiterfunktion zB Assistenz
$this->phrasen['global/montag']='Monday';
$this->phrasen['global/dienstag']='Tuesday';
$this->phrasen['global/mittwoch']='Wednesday';
$this->phrasen['global/donnerstag']='Thursday';
$this->phrasen['global/freitag']='Friday';
$this->phrasen['global/samstag']='Saturday';
$this->phrasen['global/sonntag']='Sunday';
$this->phrasen['global/matrikelnummer']='Matriculation number';
$this->phrasen['global/personenkennzeichen']='Personal identifier';
$this->phrasen['global/von']='From';
$this->phrasen['global/bis']='To';
$this->phrasen['global/zweck']='Purpose';
$this->phrasen['global/aktion']='Action';
$this->phrasen['global/nummer']='Number';
$this->phrasen['global/gruppe']='Group';
$this->phrasen['global/verband']='Division';
$this->phrasen['global/kalender']='Calendar';
$this->phrasen['global/beginn']='Start';
$this->phrasen['global/ende']='End';
$this->phrasen['global/beispiele']='Examples';
$this->phrasen['global/neu']='New';
$this->phrasen['global/ok']='OK';
$this->phrasen['global/anmelden']='Register';
$this->phrasen['global/angemeldet']='Registered';
$this->phrasen['global/löschen']='Delete';
$this->phrasen['global/dateiLoeschen']='Delete File';
$this->phrasen['global/betreff']='Subject';
$this->phrasen['global/handbuch']='Manual';
$this->phrasen['global/hilfe']='Help';
$this->phrasen['global/benutzer']='User';
$this->phrasen['global/anleitung']='Manual';
$this->phrasen['global/bericht']='Report';
$this->phrasen['global/fixangestellt']='Salaried';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Successfully saved';
$this->phrasen['global/erfolgreichgelöscht']='Successfully deleted';
$this->phrasen['global/fehleraufgetreten']='Error occurred';
$this->phrasen['global/emailgesendetan']='E-Mail sent to';
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='You dont have the authority to view this site';
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Cant open Database connection';
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Error reading from database';
$this->phrasen['global/userNichtGefunden']='No user found';
$this->phrasen['global/datumNichtGesetzt']='Date is missing';
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'No semester found';
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Program not found';
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Academic year not found';
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Error finding the UID';
$this->phrasen['global/nichtAngemeldet'] = 'You are not logged in. No UID found';
$this->phrasen['global/LDAPserverNichtErreichbar']='Error connecting to LDAP-Server';
$this->phrasen['global/unbekannterFehleraufgetreten']='Unknown error occurred';
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Error in the parameter transfer';
$this->phrasen['global/warnungWirklichLoeschen']='Do you want to delete this record?';
$this->phrasen['global/dateiErfolgreichHochgeladen']='File successfully uploaded';
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Failed to upload File. Please retry';
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='You must be Administrator.';
$this->phrasen['global/dateiExistiertNicht']='File not found';
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Error updating the data. ';
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Error loading entries';
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Error saving the data';
$this->phrasen['global/datenWurdenGespeichert']='Data saved';
$this->phrasen['global/eintragWurdeGeloescht']='Entry deleted';
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Error deleting entry';
$this->phrasen['global/keineBerechtigung']='No authority';
$this->phrasen['global/datensatzWurdeNichtGefunden']='Data not found';
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='You dont have the authority to change to data';
$this->phrasen['global/keineDatenGefunden']='No data found';
$this->phrasen['global/erfolgreichAngelegt']='Created successfully';
$this->phrasen['global/keineSuchergebnisse']='No matches found';
$this->phrasen['global/bitteWaehlen']='Please select';
//infrastruktur
$this->phrasen['global/passwort']='Password';
$this->phrasen['global/abmelden']='Logout';
$this->phrasen['global/emailAnAssistenz']='Email Administrative Assistant';
?>
<?php
$this->phrasen['global/studiengang']='Degree Program';
$this->phrasen['global/studienrichtung']='Degree Program';
$this->phrasen['global/institut']='Institute';
$this->phrasen['global/semester']='Semester';
$this->phrasen['global/studiensemester']='Semester';
$this->phrasen['global/studienplan']='Study Plan';
$this->phrasen['global/studienzentrum']='Study Center';
$this->phrasen['global/studiengangsleitung']='Program Director';
$this->phrasen['global/leitung']='Head';
$this->phrasen['global/koordination']='Coordination';
$this->phrasen['global/lehrveranstaltung']='Subject';
$this->phrasen['global/lehreinheit']='Teaching unit';
$this->phrasen['global/organisationseinheit']='Organisation Unit';
$this->phrasen['global/organisationseinheiten']='Organisation Units';
$this->phrasen['global/organisationsform']='Organisational form';
$this->phrasen['global/studienjahr']='Academic year';
$this->phrasen['global/lektorIn']='Lector';
$this->phrasen['global/lektorInnen']='Lectors';
$this->phrasen['global/ects']='ECTS';
$this->phrasen['global/semesterstunden']='Units per semester';
$this->phrasen['global/studiengangsmanagement']='Study Management';
$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership';
$this->phrasen['global/stellvertreter']='Deputy Program Director';
$this->phrasen['global/sekretariat']='Administrative Assistant';
$this->phrasen['global/studentenvertreter']='Degree Program Representative';
$this->phrasen['global/jahrgangsvertretung']='Academic Year Representative';
$this->phrasen['global/hochschulvertretung']='UAS Representative';
$this->phrasen['global/lehrziele']='Teaching goals';
$this->phrasen['global/allgemeinerdownload']='Global Download';
$this->phrasen['global/newsgroups']='Newsgroups';
$this->phrasen['global/speichern']='Save';
$this->phrasen['global/loeschen']='Delete';
$this->phrasen['global/entfernen']='Delete';
$this->phrasen['global/editieren']='Edit';
$this->phrasen['global/suchen']='Search';
$this->phrasen['global/lesen']='Read';
$this->phrasen['global/bestaetigen']='Confirm';
$this->phrasen['global/alle']='All';
$this->phrasen['global/abbrechen']='Cancel';
$this->phrasen['global/eintragen']='Register';
$this->phrasen['global/erstellen']='Create';
$this->phrasen['global/durchfuehren']='Run';
$this->phrasen['global/zurueck']='Back';
$this->phrasen['global/abschicken']='Submit';
$this->phrasen['global/zuruecksetzen']='Reset';
$this->phrasen['global/datei']='File';
$this->phrasen['global/auswaehlen']='Select';
$this->phrasen['global/umbenennen']='Rename';
$this->phrasen['global/anzeigen']='Show';
$this->phrasen['global/ausblenden']='Hide';
$this->phrasen['global/bearbeiten']='Edit';
$this->phrasen['global/aendern']='Change';
$this->phrasen['global/kopieren']='Copy';
$this->phrasen['global/ja']='Yes';
$this->phrasen['global/nein']='No';
$this->phrasen['global/download']='Download';
$this->phrasen['global/auswahl']='Select';
$this->phrasen['global/hinzufuegen']='Add';
$this->phrasen['global/drucken']='Print';
$this->phrasen['global/und']='and';
$this->phrasen['global/oder']='or';
$this->phrasen['global/faelligAm']='Due on';
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='First Name';
$this->phrasen['global/nachname']='Last Name';
$this->phrasen['global/anrede']='Title';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
$this->phrasen['global/postnomen']='Postnomen';
$this->phrasen['global/strasse']='Street';
$this->phrasen['global/plz']='Postal Code';
$this->phrasen['global/ort']='City';
$this->phrasen['global/anmerkung']='Comment';
$this->phrasen['global/anmerkungen']='Comments';
$this->phrasen['global/sprache']='Language';
$this->phrasen['global/englisch']='English';
$this->phrasen['global/deutsch']='German';
$this->phrasen['global/titel']='Title';
$this->phrasen['global/geschlecht']='Gender';
$this->phrasen['global/mann']='Male';
$this->phrasen['global/frau']='Female';
$this->phrasen['global/staatsbuergerschaft']='Citizenship';
$this->phrasen['global/geburtsdatum']='Date of Birth';
$this->phrasen['global/geburtsort']='Place of Birth';
$this->phrasen['global/universität']='University';
$this->phrasen['global/code']='Code';
$this->phrasen['global/adresse']='Address';
$this->phrasen['global/hauptwohnsitz']='Principal residence';
$this->phrasen['global/nebenwohnsitz']='Secondary residence';
$this->phrasen['global/emailAdresse']='E-Mail Address';
$this->phrasen['global/mail']='Mail';
$this->phrasen['global/telefon']='Telephone';
$this->phrasen['global/telefonnummer']='Telephone number';
$this->phrasen['global/handy']='Mobile phone';
$this->phrasen['global/fax']='Fax';
$this->phrasen['global/bezeichnung']='Description';
$this->phrasen['global/datum']='Date';
$this->phrasen['global/stunde']='Hour';
$this->phrasen['global/minute']='Minute';
$this->phrasen['global/uhrzeit']='Time';
$this->phrasen['global/person']='Person';
$this->phrasen['global/personenkz']='StudentID';
$this->phrasen['global/personen']='Number of Persons';
$this->phrasen['global/beschreibung']='Description';
$this->phrasen['global/angelegtAm']='created:';
$this->phrasen['global/funktion']='Role'; //Mitarbeiterfunktion zB Assistenz
$this->phrasen['global/montag']='Monday';
$this->phrasen['global/dienstag']='Tuesday';
$this->phrasen['global/mittwoch']='Wednesday';
$this->phrasen['global/donnerstag']='Thursday';
$this->phrasen['global/freitag']='Friday';
$this->phrasen['global/samstag']='Saturday';
$this->phrasen['global/sonntag']='Sunday';
$this->phrasen['global/matrikelnummer']='Matriculation number';
$this->phrasen['global/personenkennzeichen']='Personal identifier';
$this->phrasen['global/von']='From';
$this->phrasen['global/bis']='To';
$this->phrasen['global/zweck']='Purpose';
$this->phrasen['global/aktion']='Action';
$this->phrasen['global/nummer']='Number';
$this->phrasen['global/gruppe']='Group';
$this->phrasen['global/verband']='Division';
$this->phrasen['global/kalender']='Calendar';
$this->phrasen['global/beginn']='Start';
$this->phrasen['global/ende']='End';
$this->phrasen['global/beispiele']='Examples';
$this->phrasen['global/neu']='New';
$this->phrasen['global/ok']='OK';
$this->phrasen['global/anmelden']='Register';
$this->phrasen['global/angemeldet']='Registered';
$this->phrasen['global/schen']='Delete';
$this->phrasen['global/dateiLoeschen']='Delete File';
$this->phrasen['global/betreff']='Subject';
$this->phrasen['global/handbuch']='Manual';
$this->phrasen['global/hilfe']='Help';
$this->phrasen['global/benutzer']='User';
$this->phrasen['global/anleitung']='Manual';
$this->phrasen['global/bericht']='Report';
$this->phrasen['global/fixangestellt']='Salaried';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Successfully saved';
$this->phrasen['global/erfolgreichgelöscht']='Successfully deleted';
$this->phrasen['global/fehleraufgetreten']='Error occurred';
$this->phrasen['global/emailgesendetan']='E-Mail sent to';
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='You dont have the authority to view this site';
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Cant open Database connection';
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Error reading from database';
$this->phrasen['global/userNichtGefunden']='No user found';
$this->phrasen['global/datumNichtGesetzt']='Date is missing';
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'No semester found';
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Program not found';
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Academic year not found';
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Error finding the UID';
$this->phrasen['global/nichtAngemeldet'] = 'You are not logged in. No UID found';
$this->phrasen['global/LDAPserverNichtErreichbar']='Error connecting to LDAP-Server';
$this->phrasen['global/unbekannterFehleraufgetreten']='Unknown error occurred';
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Error in the parameter transfer';
$this->phrasen['global/warnungWirklichLoeschen']='Do you want to delete this record?';
$this->phrasen['global/dateiErfolgreichHochgeladen']='File successfully uploaded';
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Failed to upload File. Please retry';
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='You must be Administrator.';
$this->phrasen['global/dateiExistiertNicht']='File not found';
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Error updating the data. ';
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Error loading entries';
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Error saving the data';
$this->phrasen['global/datenWurdenGespeichert']='Data saved';
$this->phrasen['global/eintragWurdeGeloescht']='Entry deleted';
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Error deleting entry';
$this->phrasen['global/keineBerechtigung']='No authority';
$this->phrasen['global/datensatzWurdeNichtGefunden']='Data not found';
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='You dont have the authority to change to data';
$this->phrasen['global/keineDatenGefunden']='No data found';
$this->phrasen['global/erfolgreichAngelegt']='Created successfully';
$this->phrasen['global/keineSuchergebnisse']='No matches found';
$this->phrasen['global/bitteWaehlen']='Please select';
$this->phrasen['global/zusaetzlicheInformationen']='Additional Informations';
//infrastruktur
$this->phrasen['global/passwort']='Password';
$this->phrasen['global/abmelden']='Logout';
$this->phrasen['global/emailAnAssistenz']='Email Administrative Assistant';
?>
+14 -7
View File
@@ -544,8 +544,11 @@ var FHC_TableWidget = {
options.columns = arrayTabulatorColumns;
options.data = data.dataset;
options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie)
options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables
if (options.tableWidgetHeader == 'undefined')
{
options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie)
options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables
}
options.movableColumns = true; // allows changing column order
options.tooltipsHeader = true; // set header tooltip with column title
options.placeholder = _func_placeholder(); // display text when table is empty
@@ -566,12 +569,16 @@ var FHC_TableWidget = {
// -------------------------------------------------------------------------------------------------------------
// Render tableWidgetHeader
var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML);
if (options.tableWidgetHeader == 'undefined' ||
(options.tableWidgetHeader != 'undefined' && options.tableWidgetHeader != false))
{
var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML);
// Render the collapsable div triggered by button in tableWidgetHeader
var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML);
// Render the collapsable div triggered by button in tableWidgetHeader
var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML);
}
/**
* tableWidgetFooter is NOT rendered by default.
+14 -7
View File
@@ -10,6 +10,12 @@ $("document").ready(function() {
$("#saveProtocolBtn, #freigebenProtocolBtn").click(
function() {
var freigebendata = {
freigeben: false,
password: null
}
var data = {
abschlussbeurteilung_kurzbz: $("#abschlussbeurteilung_kurzbz").val(),
protokoll: $("#protokoll").val(),
@@ -19,11 +25,11 @@ $("document").ready(function() {
if ($(this).prop("id") === 'freigebenProtocolBtn')
{
data.freigabedatum = true;
data.password = $("#password").val();
freigebendata.freigeben = true;
freigebendata.password = $("#password").val();
}
var checkFields = Pruefungsprotokoll.checkFields(data, $("#verfCheck").prop('checked'));
var checkFields = Pruefungsprotokoll.checkFields(data, freigebendata, $("#verfCheck").prop('checked'));
$("#protocolform td").removeClass('has-error');
if (checkFields.length > 0)
{
@@ -44,7 +50,7 @@ $("document").ready(function() {
return;
}
Pruefungsprotokoll.saveProtokoll($("#abschlusspruefung_id").val(),data);
Pruefungsprotokoll.saveProtokoll($("#abschlusspruefung_id").val(), freigebendata, data);
}
)
@@ -79,11 +85,11 @@ var Pruefungsprotokoll = {
$("#verfNotice").html(FHC_PhrasesLib.t("abschlusspruefung", "verfNotice"));
}
},
checkFields: function(data, verfChecked)
checkFields: function(data, freigebendata, verfChecked)
{
var errors = [];
if (data.abschlussbeurteilung_kurzbz == "" && data.freigabedatum === true && verfChecked)
if (data.abschlussbeurteilung_kurzbz == "" && freigebendata.freigeben === true && verfChecked)
errors.push({"abschlussbeurteilung_kurzbz": FHC_PhrasesLib.t("abschlusspruefung", "abschlussbeurteilungLeer")});
var zeitregex = /^[0-2][0-9]:[0-5][0-9]$/;
@@ -111,12 +117,13 @@ var Pruefungsprotokoll = {
},
// ajax calls
// -----------------------------------------------------------------------------------------------------------------
saveProtokoll: function(abschlusspruefung_id, data)
saveProtokoll: function(abschlusspruefung_id, freigeben, data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/saveProtokoll',
{
abschlusspruefung_id: abschlusspruefung_id,
freigebendata: freigeben,
protocoldata: data
},
{
+21 -1
View File
@@ -46,7 +46,12 @@ $(document).ready(function ()
{
tinymce.init({
selector: "#bodyTextArea",
plugins: "autoresize"
plugins: "autoresize",
autoresize_on_init: false,
autoresize_min_height: 400,
autoresize_max_height: 400,
autoresize_bottom_margin: 10,
auto_focus: "bodyTextArea"
});
tinymce.init({
@@ -73,6 +78,21 @@ $(document).ready(function ()
});
}
if ($("#user_fields"))
{
$("#user_fields").dblclick(function ()
{
if ($("#bodyTextArea"))
{
//if editor active add at cursor position, otherwise at end
if (tinymce.activeEditor.id === "bodyTextArea")
tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).children(":selected").val());
else
tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val());
}
});
}
if ($("#recipients"))
{
$("#recipients").change(tinymcePreviewSetContent);
+1
View File
@@ -112,6 +112,7 @@ function draw_rdf($row)
<ADRESSE:typ_name><![CDATA['.$typ.']]></ADRESSE:typ_name>
<ADRESSE:heimatadresse><![CDATA['.($row->heimatadresse?'Ja':'Nein').']]></ADRESSE:heimatadresse>
<ADRESSE:zustelladresse><![CDATA['.($row->zustelladresse?'Ja':'Nein').']]></ADRESSE:zustelladresse>
<ADRESSE:co_name><![CDATA['. $row->co_name.']]></ADRESSE:co_name>
<ADRESSE:firma_id><![CDATA['.$row->firma_id.']]></ADRESSE:firma_id>
<ADRESSE:firma_name><![CDATA['.$firma_name.']]></ADRESSE:firma_name>
<ADRESSE:updateamum><![CDATA['.date('d.m.Y H:i:s',strtotime($row->updateamum)).']]></ADRESSE:updateamum>
+37 -15
View File
@@ -228,14 +228,14 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
else
echo ' <ects_angerechnet></ects_angerechnet>';
if($row->mischform=='t' || $row->orgform_kurzbz=='VBB')
{
//Bei Mischformen, die OrgForm aus dem Status nehmen
$prestudent = new prestudent();
$prestudent->getLastStatus($row->prestudent_id);
if($prestudent->orgform_kurzbz!='')
$row->orgform_kurzbz=$prestudent->orgform_kurzbz;
}
//OrgForm aus dem Status nehmen
$prestudent = new prestudent();
$prestudent->getLastStatus($row->prestudent_id);
if($prestudent->orgform_kurzbz!='')
$row->orgform_kurzbz=$prestudent->orgform_kurzbz;
$anforderungen_praxis = 'Das Studium beinhaltet ein facheinschlägiges Berufspraktikum.';
$anforderungen_praxiseng = 'Included in the program is a relevant work placement.';
switch($row->orgform_kurzbz)
{
@@ -245,6 +245,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
break;
case 'DL': echo ' <studienart>Fernstudium / Distance Learning</studienart>';
break;
case 'DUA': // andere praxisanforderungen bei dualem Studium
echo ' <studienart>Duales Studium / Integrated work/study degree program</studienart>';
$anforderungen_praxis = 'Das Studium ist als duales Studium konzipiert und weist einen hohen Anteil an Praxisphasen in Partnerunternehmen auf, die inhaltlich und organisatorisch im Studienplan verankert sind und die systematische Verschränkung von Wissen und Anwendung fördern.';
$anforderungen_praxiseng = 'The program is designed as integrated work study program and has a high proportion of practical phases in partner companies, which are embedded in the curriculum in terms of content and organisation and promote the systematic interconnection of knowledge and utilisation.';
break;
default: echo ' <studienart></studienart>';
break;
}
@@ -254,8 +259,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHStG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Austrian or equivalent foreign school leaving certificate (Reifeprüfung), university entrance examination certificate (Studienberechtigungsprüfung), certificate or equivalent relevant professional qualification (Berufsreifeprüfung) plus entrance examination equal to the university entrance examination. Admission is on the basis of a selection process (including entrance exam and interview, professional background is considered).]]></zulassungsvoraussetzungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. Das Studium beinhaltet ein facheinschlägiges Berufpraktikum. Im Rahmen des Studiums ist eine Diplomarbeit zu verfassen und eine abschließende Prüfung (Diplomprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. Included in the program is a relevant work placement. The degree is awarded upon the successful completion of a diploma theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. '.$anforderungen_praxis.' Im Rahmen des Studiums ist eine Diplomarbeit zu verfassen und eine abschließende Prüfung (Diplomprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. '.$anforderungen_praxiseng.' The degree is awarded upon the successful completion of a diploma theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
echo ' <zugangsberechtigung_deutsch><![CDATA[Der Abschluss des Diplomstudiengangs berechtigt zu einem facheinschlägigen Doktoratsstudium, Magister- bzw. Master-Studium oder postgradualen Studium (mit eventuellen Zusatzprüfungen). Die Qualifikation entspricht einem Master of Science in Engineering, MSc.]]></zugangsberechtigung_deutsch>';
echo ' <zugangsberechtigung_englisch><![CDATA[The successful completion of the Diploma Degree Program qualifies the graduate to apply for admission to a relevant Doctoral Degree Program, Master Degree Program or postgraduate studies (additional qualifying exams may be required). The Diploma Degree Program is a graduate program, the qualification is equivalent to Master of Science in Engineering, MSc.]]></zugangsberechtigung_englisch>';
echo ' <niveau_deutsch>Diplomstudium (UNESCO ISCED 7)</niveau_deutsch>';
@@ -278,8 +283,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
echo ' <niveau_code>UNESCO ISCED 6</niveau_code>';
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHStG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Austrian or equivalent foreign school leaving certificate (Reifeprüfung), university entrance examination certificate (Studienberechtigungsprüfung), certificate or equivalent relevant professional qualification (Berufsreifeprüfung) plus entrance examination equal to the university entrance examination. Admission is on the basis of a selection process. (including entrance exam and interview, professional background is considered).]]></zulassungsvoraussetzungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. Das Studium beinhaltet ein facheinschlägiges Berufpraktikum. Im Rahmen des Studiums ist eine Bachelorarbeit zu verfassen und eine abschließende Prüfung (Bachelorprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. Included in the program is a relevant work placement. The degree is awarded upon the successful completion of 1 bachelor theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. '.$anforderungen_praxis.' Im Rahmen des Studiums ist eine Bachelorarbeit zu verfassen und eine abschließende Prüfung (Bachelorprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. '.$anforderungen_praxiseng.' The degree is awarded upon the successful completion of 1 bachelor theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
echo ' <zugangsberechtigung_deutsch><![CDATA[Der Abschluss des Bachelorstudiengangs berechtigt zu einem facheinschlägigen Magister- bzw. Master-Studium an einer fachhochschulischen Einrichtung oder Universität (mit eventuellen Zusatzprüfungen).]]></zugangsberechtigung_deutsch>';
echo ' <zugangsberechtigung_englisch><![CDATA[The successful completion of the Bachelor Degree Program qualifies the graduate to apply for admission to a relevant Master Degree Program at a University of Applied Sciences or a University (additional qualifying exams may be required).]]></zugangsberechtigung_englisch>';
echo ' <niveau_deutsch>Bachelorstudium (UNESCO ISCED 6)</niveau_deutsch>';
@@ -360,15 +365,32 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
}
$qry = "SELECT von, bis, lehreinheit_id FROM bis.tbl_bisio WHERE student_uid=".$db->db_add_param($uid_arr[$i]);
$qry = "SELECT tbl_bisio.bisio_id, von, bis, lehreinheit_id,
(SELECT STRING_AGG (
tbl_zweck.bezeichnung,
', '
ORDER BY tbl_zweck.zweck_code
) FROM bis.tbl_bisio_zweck
JOIN bis.tbl_zweck USING(zweck_code)
WHERE tbl_bisio_zweck.bisio_id = tbl_bisio.bisio_id
) zweck, ort, universitaet
FROM bis.tbl_bisio
WHERE student_uid=".$db->db_add_param($uid_arr[$i]);
if($db->db_query($qry))
{
if($db->db_num_rows()>0)
{
echo " <auslandssemester>";
echo "<auslandssemester>";
while($row1 = $db->db_fetch_object())
{
echo "Auslandssemester/International semester ".$datum->convertISODate($row1->von)." - ".$datum->convertISODate($row1->bis);
echo "<auslandssemesters>";
echo "<von>".$datum->convertISODate($row1->von)."</von>";
echo "<bis>".$datum->convertISODate($row1->bis)."</bis>";
echo "<zweck>$row1->zweck</zweck>";
echo "<ort>$row1->ort</ort>";
echo "<universitaet>$row1->universitaet</universitaet>";
echo "</auslandssemesters>";
}
echo "</auslandssemester>";
$auslandssemester=true;
+8 -3
View File
@@ -105,10 +105,15 @@ if (count($berechtigt_studiengang)>0)
tbl_lehrverband.bezeichnung AS lvb_bezeichnung, tbl_gruppe.bezeichnung AS grp_bezeichnung
FROM
(public.tbl_studiengang JOIN public.tbl_lehrverband USING (studiengang_kz))
LEFT OUTER JOIN public.tbl_gruppe ON (tbl_lehrverband.studiengang_kz=tbl_gruppe.studiengang_kz AND tbl_lehrverband.semester=tbl_gruppe.semester AND (tbl_lehrverband.verband='') AND tbl_gruppe.lehre AND tbl_gruppe.aktiv)
LEFT OUTER JOIN public.tbl_gruppe ON (
tbl_lehrverband.studiengang_kz=tbl_gruppe.studiengang_kz
AND tbl_lehrverband.semester=tbl_gruppe.semester
AND (tbl_lehrverband.verband='')
AND tbl_gruppe.lehre AND tbl_gruppe.aktiv
AND (tbl_gruppe.direktinskription is null or tbl_gruppe.direktinskription=false)
)
WHERE
(tbl_gruppe.direktinskription is null or tbl_gruppe.direktinskription=false)
AND tbl_lehrverband.aktiv $stg_kz_query
tbl_lehrverband.aktiv $stg_kz_query
ORDER BY
erhalter_kz,typ, kurzbz, semester,verband,gruppe, gruppe_kurzbz;";
}
+7 -2
View File
@@ -22,10 +22,12 @@
require_once('../config/vilesci.config.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/rdf.class.php');
require_once('../include/datum.class.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
$uid = get_uid();
$datum_obj = new datum();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('basis/message', null, 's'))
@@ -50,7 +52,8 @@ SELECT
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id = r.person_id) as recipient,
m.person_id as sender_id,
r.person_id as recipient_id,
MAX(ss.status) as status
MAX(ss.status) as status,
MAX(ss.insertamum) as statusdatum
FROM public.tbl_msg_message m
JOIN public.tbl_msg_recipient r USING(message_id)
JOIN public.tbl_msg_status ss ON(r.message_id = ss.message_id AND ss.person_id = r.person_id)
@@ -67,7 +70,8 @@ SELECT
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id = r.person_id) as recipient,
m.person_id as sender_id,
r.person_id as recipient_id,
MAX(ss.status) as status
MAX(ss.status) as status,
MAX(ss.insertamum) as statusdatum
FROM public.tbl_msg_recipient r
JOIN public.tbl_msg_status ss USING(message_id, person_id)
JOIN public.tbl_msg_message m USING(message_id)
@@ -104,6 +108,7 @@ if($db->db_query($qry))
$oRdf->obj[$i]->setAttribut('message_id',$row->message_id,true);
$oRdf->obj[$i]->setAttribut('insertamum',$row->insertamum,true);
$oRdf->obj[$i]->setAttribut('status',$status,true);
$oRdf->obj[$i]->setAttribut('statusdatum',$datum_obj->formatDatum($row->statusdatum,'d.m.Y H:i'),true);
$oRdf->obj[$i]->setAttribut('sender',$row->sender,true);
$oRdf->obj[$i]->setAttribut('recipient',$row->recipient,true);
$oRdf->obj[$i]->setAttribut('sender_id',$row->sender_id,true);
+112 -7
View File
@@ -57,6 +57,12 @@ $ersatzkennzeichen = filter_input(INPUT_POST, 'ersatzkennzeichen');
$person_id = filter_input(INPUT_POST, 'person_id');
$strasse = filter_input(INPUT_POST, 'strasse');
$dokumenttyp = filter_input(INPUT_POST, 'dokumenttyp');
$ausgabedatum = filter_input(INPUT_POST, 'ausgabedatum');
$ausstellbehoerde = filter_input(INPUT_POST, 'ausstellbehoerde');
$ausstellland = filter_input(INPUT_POST, 'ausstellland');
$dokumentnr = filter_input(INPUT_POST, 'dokumentnr');
?><!DOCTYPE html>
<html>
<head>
@@ -79,6 +85,7 @@ $strasse = filter_input(INPUT_POST, 'strasse');
<li><a href="datenverbund_client.php?action=getReservations">Matrikelnummer Reservierungen anzeigen</a></li>
<li><a href="datenverbund_client.php?action=getKontingent">Matrikelnummer Kontingent anfordern</a></li>
<li><a href="datenverbund_client.php?action=setMatrikelnummer">Matrikelnummer Vergabe melden</a></li>
<li><a href="datenverbund_client.php?action=setMatrikelnummerErnp">ERNP-Eintragung anfordern</a></li>
<li><a href="datenverbund_client.php?action=assignMatrikelnummer">Gesamtprozess (Abfrage, ggf Vergabemeldung, Speichern bei Person)</a></li>
<li><a href="datenverbund_client.php?action=getBPK">BPK ermitteln</a></li>
<li><a href="datenverbund_client.php?action=pruefeBPK">BPK ermitteln manuell</a></li>
@@ -114,6 +121,50 @@ $strasse = filter_input(INPUT_POST, 'strasse');
</tr>';
}
/**
* Erstellt eine Tabllezeile mit Input-Feld
* @param string $name Name des Inputs.
* @param string $title Titel der Zeile.
* @param string $value Value des Inputs.
* @param string $hint Hinweistext zu Inputfeld.
* @param int $maxlength Maximallaenge des Eingabefeldes.
* @return void
*/
function printDropdownRow($name, $title, $values, $selectedValue = '', $hint = '')
{
global $db;
echo '
<tr>
<td align="right">'.$title.':</td>
<td>
<select name="'.$name.'">';
foreach ($values as $idx => $value)
{
$selected = $selectedValue === $value ? ' selected' : '';
echo '<option value="'.$db->convert_html_chars($value).'"'.$selected.'>'.$idx.'</option>';
}
echo '</select>'.$hint.'
</td>
</tr>';
}
/**
* Prints Stammdaten inputfields for setMatrikelnummer form
*/
function printSetMatrikelnrRows()
{
global $matrikelnr, $nachname, $vorname, $geburtsdatum, $geschlecht, $postleitzahl;
printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr);
printrow('nachname', 'Nachname', $nachname, '', 255);
printrow('vorname', 'Vorname', $vorname, '', 30);
printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10);
printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1);
printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10);
}
switch($action)
{
case 'getOAuth':
@@ -144,17 +195,37 @@ $strasse = filter_input(INPUT_POST, 'strasse');
break;
case 'setMatrikelnummer':
printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr);
printrow('nachname', 'Nachname', $nachname, '', 255);
printrow('vorname', 'Vorname', $vorname, '', 30);
printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10);
printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1);
printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10);
printSetMatrikelnrRows();
printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3);
printrow('svnr', 'SVNR', $svnr);
printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10);
break;
case 'setMatrikelnummerErnp':
echo '<b>HINWEIS: Die Eintragung ins ERnP (Ergänzungsregister für natürliche Personen) sollte nur dann durchgeführt werden, <br />wenn für die Person bei "Matrikelnummer Vergabe melden" keine BPK ermittelt werden kann.
<br />Beim Punkt "BPK ermitteln" sollte dementsprechend keine BPK zurückgegeben werden.</b></br></br>';
echo '
<tr>
<td colspan="2"><b>Personmeldung</b></td>
</tr>';
printSetMatrikelnrRows();
printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb D für Deutschland)', 3);
printrow('svnr', 'SVNR/Ersatzkennzeichen', $svnr);
printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10);
echo '
<tr>
<td colspan="2"><b>Ernpmeldung</b></td>
</tr>';
printDropdownRow('dokumenttyp', 'Dokumenttyp', array('Reisepass' => 'REISEP', 'Personalausweis' => 'PERSAUSW'), $dokumenttyp,'');
printrow('dokumentnr', 'Dokumentnummer', $dokumentnr, '', 60);
printrow('ausgabedatum', 'Ausgabedatum', $ausgabedatum, 'Format: YYYYMMDD', 10);
printrow('ausstellbehoerde', 'Ausstellbehörde', $ausstellbehoerde, '', 40);
printrow('ausstellland', 'Ausstellland', $ausstellland, '1-3 Stellen Codex (zb D für Deutschland)', 60);
break;
case 'assignMatrikelnummer':
printrow('person_id', 'PersonID', $person_id);
break;
@@ -337,6 +408,33 @@ if (isset($_REQUEST['submit']))
echo '<br><b>Fehlgeschlagen:</b>'.$result->errormsg;
break;
case 'setMatrikelnummerErnp':
$person = new stdClass();
$person->matrikelnummer = $matrikelnr;
$person->vorname = $vorname;
$person->nachname = $nachname;
$person->geburtsdatum = $geburtsdatum;
$person->geschlecht = $geschlecht;
$person->staat = $staat;
$person->plz = $postleitzahl;
$person->matura = $matura; // Optional
$person->svnr = $svnr; // Optional
$reisepass = new stdClass();
$reisepass->dokumenttyp = $dokumenttyp;
$reisepass->ausgabedatum = $ausgabedatum;
$reisepass->ausstellBehoerde = $ausstellbehoerde;
$reisepass->ausstellland = $ausstellland;
$reisepass->dokumentnr = $dokumentnr;
$result = $dvb->setMatrikelnummerErnp(DVB_BILDUNGSEINRICHTUNG_CODE, $person, $reisepass);
if (ErrorHandler::isSuccess($result))
echo '<br><b>Erfolgreich gemeldet</b>';
else
echo '<br><b>Fehlgeschlagen:</b>'.$result->errormsg;
break;
case 'assignMatrikelnummer':
$result = $dvb->assignMatrikelnummer($person_id);
if(ErrorHandler::isSuccess($result))
@@ -371,7 +469,14 @@ if (isset($_REQUEST['submit']))
break;
}
if (isset($_POST['debug']))
echo '<div style="color: gray">'.nl2br(htmlentities($dvb->debug_output)).'</div>';
{
$output = nl2br(htmlentities($dvb->debug_output));
$output = str_replace('&gt;&lt;','&gt;<br>&lt;',$output);
$output = preg_replace('/(&lt;uni:.*?&gt;)/','<span style="color: deepskyblue">$1</span>',$output);
$output = preg_replace('/(&lt;\/uni:.*?&gt;)/','<span style="color: deepskyblue">$1</span>',$output);
echo '<div style="color: gray">'.$output.'</div>';
}
}
?>
+52 -2
View File
@@ -196,6 +196,43 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_person LIMIT 1"))
echo '<br>Granted privileges to <strong>vilesci</strong> on public.vw_msg_vars_person';
}
// CREATE OR REPLACE VIEW public.vw_msg_vars_user and grants privileges
if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_user LIMIT 1"))
{
$qry = '
CREATE OR REPLACE VIEW public.vw_msg_vars_user AS (
SELECT DISTINCT ON
(b.uid) b.uid AS "my_uid",
p.vorname AS "my_vorname",
p.nachname AS "my_nachname",
COALESCE(b.alias, b.uid) AS "my_alias",
ma.telefonklappe AS "my_durchwahl"
FROM public.tbl_person p
JOIN public.tbl_benutzer b USING (person_id)
JOIN public.tbl_mitarbeiter ma ON ma.mitarbeiter_uid = b.uid
WHERE ma.personalnummer > 0
);';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars_user: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.vw_msg_vars_user view created';
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO web;';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars_user: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>web</strong> on public.vw_msg_vars_user';
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO vilesci;';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars_user: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>vilesci</strong> on public.vw_msg_vars_user';
}
//Spalte anmerkung und rechnungsadresse in tbl_adresse
if(!$result = @$db->db_query("SELECT rechnungsadresse FROM public.tbl_adresse LIMIT 1"))
{
@@ -4389,6 +4426,19 @@ if(!$result = @$db->db_query("SELECT sort FROM lehre.tbl_abschlussbeurteilung LI
echo '<br>lehre.tbl_abschlussbeurteilung: Spalte sort hinzugefuegt!<br>';
}
//Spalte co_adresse in tbl_adresse
if(!$result = @$db->db_query("SELECT co_name FROM public.tbl_adresse LIMIT 1"))
{
$qry = "
ALTER TABLE public.tbl_adresse ADD COLUMN co_name varchar(256);
COMMENT ON COLUMN public.tbl_adresse.co_name IS 'Name des abweichenden Empfaengers';";
if(!$db->db_query($qry))
echo '<strong>public.tbl_adresse: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_adresse: Spalte co_name und anmerkung hinzugefuegt';
}
// Add column iso3166_1_a3 to tbl_nation
if(!$result = @$db->db_query("SELECT iso3166_1_a3 FROM bis.tbl_nation LIMIT 1"))
{
@@ -4566,7 +4616,7 @@ $tabellen=array(
"lehre.tbl_zeugnis" => array("zeugnis_id","student_uid","zeugnis","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"),
"public.ci_apikey" => array("apikey_id","key","level","ignore_limits","date_created"),
"public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung"),
"public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung", "co_name"),
"public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern","nachgereicht_am","ausstellungsnation","formal_geprueft_amum","archiv","signiert","stud_selfservice","akzeptiertamum"),
"public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email","verpflichtend","buttontext"),
"public.tbl_ampel_benutzer_bestaetigt" => array("ampel_benutzer_bestaetigt_id","ampel_id","uid","insertamum","insertvon"),
@@ -4701,7 +4751,7 @@ $tabellen=array(
"wawi.tbl_bestellungtag" => array("tag","bestellung_id","insertamum","insertvon"),
"wawi.tbl_bestelldetailtag" => array("tag","bestelldetail_id","insertamum","insertvon"),
"wawi.tbl_projekt_bestellung" => array("projekt_kurzbz","bestellung_id","anteil"),
"wawi.tbl_bestellung" => array("bestellung_id","besteller_uid","kostenstelle_id","konto_id","firma_id","lieferadresse","rechnungsadresse","freigegeben","bestell_nr","titel","bemerkung","liefertermin","updateamum","updatevon","insertamum","insertvon","ext_id","zahlungstyp_kurzbz","zuordnung_uid","zuordnung_raum","zuordnung","auftragsbestaetigung","auslagenersatz","iban","wird_geleast","nicht_bestellen","empfehlung_leasing"),
"wawi.tbl_bestellung" => array("bestellung_id","besteller_uid","kostenstelle_id","konto_id","firma_id","lieferadresse","rechnungsadresse","freigegeben","bestell_nr","titel","bemerkung","liefertermin","updateamum","updatevon","insertamum","insertvon","ext_id","zahlungstyp_kurzbz"),
"wawi.tbl_bestelldetail" => array("bestelldetail_id","bestellung_id","position","menge","verpackungseinheit","beschreibung","artikelnummer","preisprove","mwst","erhalten","sort","text","updateamum","updatevon","insertamum","insertvon"),
"wawi.tbl_bestellung_bestellstatus" => array("bestellung_bestellstatus_id","bestellung_id","bestellstatus_kurzbz","uid","oe_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
"wawi.tbl_bestellstatus" => array("bestellstatus_kurzbz","beschreibung"),
+6 -6
View File
@@ -32,7 +32,7 @@ $filters = array(
"columns": [
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Nation"},
{"name": "ZGVNation"},
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
@@ -65,7 +65,7 @@ $filters = array(
"columns": [
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Nation"},
{"name": "ZGVNation"},
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
@@ -104,7 +104,7 @@ $filters = array(
"columns": [
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Nation"},
{"name": "ZGVNation"},
{"name": "LastAction"},
{"name": "LastActionType"},
{"name": "User/Operator"},
@@ -139,7 +139,7 @@ $filters = array(
"columns": [
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Nation"},
{"name": "ZGVNation"},
{"name": "LastAction"},
{"name": "User/Operator"},
{"name": "LockUser"},
@@ -179,7 +179,7 @@ $filters = array(
"columns": [
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Nation"},
{"name": "ZGVNation"},
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
@@ -217,7 +217,7 @@ $filters = array(
"columns": [
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Nation"},
{"name": "ZGVNation"},
{"name": "LastAction"},
{"name": "User/Operator"},
{"name": "LockUser"},
+20
View File
@@ -7949,6 +7949,26 @@ Any unusual occurrences
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'meineFelder',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Meine Felder',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'My fields',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'ui',
+151 -3
View File
@@ -44,8 +44,16 @@ $fehler='';
$maxsemester=0;
$v='';
$studiensemester=new studiensemester();
$ssem=$studiensemester->getaktorNext();
$psem=$studiensemester->getPrevious();
if (isset($_GET['studiensemester']))
{
$ssem = $_GET['studiensemester'];
$psem = $studiensemester->getPreviousFrom($ssem);
}
else
{
$ssem=$studiensemester->getaktorNext();
$psem=$studiensemester->getPrevious();
}
$datei='';
$zaehl=0;
$lehrgangsname = '';
@@ -93,6 +101,18 @@ if(isset($_GET['plausi']))
{
$plausi=$_GET['plausi'];
}
// Standortcode
if (defined('BIS_STANDORTCODE_LEHRGAENGE') && BIS_STANDORTCODE_LEHRGAENGE != '0')
{
$standortcode = BIS_STANDORTCODE_LEHRGAENGE;
}
else
{
echo "<H2>Standortcode f&uuml;r Lehrg&auml;nge fehlt.</H2>";
exit;
}
$datumobj=new datum();
//Lehrgangsdaten auslesen
@@ -185,6 +205,7 @@ if($result = $db->db_query($qry))
$gemeinde=$rowadr->gemeinde;
$strasse=$rowadr->strasse;
$nation=$rowadr->nation;
$co_name = $rowadr->co_name;
}
else
{
@@ -192,7 +213,58 @@ if($result = $db->db_query($qry))
$gemeinde='';
$strasse='';
$nation='';
$co_name = '';
}
// Zustelladresse & c/o Name(=abweichender Empfaenger)
$qryzustelladr = "
SELECT *
FROM public.tbl_adresse
WHERE zustelladresse IS TRUE
AND person_id=". $db->db_add_param($row->pers_id). ";
";
$results = $db->db_query($qryzustelladr);
if ($db->db_num_rows($results) != 1)
{
$error_log1.= "Es sind ".$db->db_num_rows($results)." Zustelladressen eingetragen\n";
}
$zustell_plz = '';
$zustell_gemeinde = '';
$zustell_strasse = '';
$zustell_nation = '';
if ($rowzustelladr = $db->db_fetch_object($results))
{
$zustell_plz = $rowzustelladr->plz;
$zustell_gemeinde = $rowzustelladr->gemeinde;
$zustell_strasse = $rowzustelladr->strasse;
$zustell_nation = $rowzustelladr->nation;
}
// eMail-Adresse
$qry_mail = "
SELECT kontakt
FROM public.tbl_kontakt
WHERE kontakttyp = 'email'
AND zustellung = TRUE
AND person_id = ". $db->db_add_param($row->pers_id). "
ORDER BY insertamum DESC LIMIT 1;
";
$email = '';
if ($result_email = $db->db_query($qry_mail))
{
if($db->db_num_rows($result_email) == 1)
{
if($row_mail = $db->db_fetch_object($result_email))
{
$email = $row_mail->kontakt;
}
}
}
if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='')
{
$error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
@@ -237,6 +309,7 @@ if($result = $db->db_query($qry))
{
$error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".$row->ersatzkennzeichen."') enth&auml;lt Geburtsdatum (".$row->gebdatum.") nicht";
}
// Wenn SVNR fehlt, darf Ersatzkennzeichen nicht fehlen (und umgekehrt)
if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null))
{
$error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') bzw. ErsKz ('".$row->ersatzkennzeichen."') fehlt";
@@ -306,6 +379,49 @@ if($result = $db->db_query($qry))
}
}
}
/*if($row->bpk == '' || $row->bpk == null)
{
$error_log .= (!empty($error_log) ? ', ' : '') . "bPK fehlt";
}
if($row->bpk != '' && $row->bpk != null)
{
if (!preg_match('/[a-zA-Z0-9\+\/]{27}=/', $row->bpk))
{
$error_log.=(!empty($error_log) ? ', ' : ''). "bPK-Zeichenfolge ist ung&uuml;ltig";
}
if (strlen($row->bpk) != 28)
{
$error_log.=(!empty($error_log) ? ', ' : ''). "bPK ist nicht 28 Zeichen lang";
}
}*/
if ($zustell_plz == '' || $zustell_plz == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-PLZ fehlt";
}
if ($zustell_gemeinde == '' || $zustell_gemeinde == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-Gemeinde fehlt";
}
if ($zustell_strasse == '' || $zustell_strasse == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-Strasse fehlt";
}
if ($zustell_nation == '' || $zustell_nation == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-Nation fehlt";
}
if ($email == '' || $email == null)
{
$error_log.=(!empty($error_log)?', ':'')."eMail Adresse fehlt oder eMail-Zustellung auf 'Nein' gesetzt.";
}
//Bestimmen der aktuellen Prestudentrolle (Status) und des akt. Ausbildungssemesters des Studenten
$qrystatus="SELECT * FROM public.tbl_prestudentstatus
WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($ssem)."
@@ -481,7 +597,21 @@ if($result = $db->db_query($qry))
<PersKz>".trim($row->matrikelnr)."</PersKz>
<Matrikelnummer>".$row->matr_nr."</Matrikelnummer>
<GeburtsDatum>".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))."</GeburtsDatum>
<Geschlecht>".strtoupper($row->geschlecht)."</Geschlecht>
<Geschlecht>".strtoupper($row->geschlecht)."</Geschlecht>";
if ($row->titelpre != '')
{
$datei .= "
<AkadGradeVorName>" . $row->titelpre . "</AkadGradeVorName>";
}
if ($row->titelpost != '')
{
$datei .= "
<AkadGradeNachName>" . $row->titelpost . "</AkadGradeNachName>";
}
$datei .= "
<Vorname>".$row->vorname."</Vorname>
<Familienname>".$row->nachname."</Familienname>";
@@ -495,6 +625,10 @@ if($result = $db->db_query($qry))
$datei.="
<ErsKz>".$row->ersatzkennzeichen."</ErsKz>";
}
/*$datei.="
<bPK>".$row->bpk."</bPK>
";*/
$datei.="
<StaatsangehoerigkeitCode>".$row->staatsbuergerschaft."</StaatsangehoerigkeitCode>
@@ -502,6 +636,19 @@ if($result = $db->db_query($qry))
<HeimatGemeinde>".$gemeinde."</HeimatGemeinde>
<HeimatStrasse><![CDATA[".$strasse."]]></HeimatStrasse>
<HeimatNation>".$nation."</HeimatNation>
<ZustellPLZ>". $zustell_plz. "</ZustellPLZ>
<ZustellGemeinde>". $zustell_gemeinde. "</ZustellGemeinde>
<ZustellStrasse>". $zustell_strasse. "</ZustellStrasse>
<ZustellNation>". $zustell_nation. "</ZustellNation>";
if ($co_name != '')
{
$datei .= "
<coName>". $co_name. "</coName>";
}
$datei.="
<eMailAdresse>". $email. "</eMailAdresse>
<ZugangCode>".$row->zgv_code."</ZugangCode>
<ZugangDatum>".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))."</ZugangDatum>";
@@ -545,6 +692,7 @@ if($result = $db->db_query($qry))
}
$datei.="
<StudStatusCode>".$status."</StudStatusCode>
<StandortCode>" .$standortcode. "</StandortCode>
</StudentIn>";
}
}
+351 -72
View File
@@ -52,6 +52,7 @@ if(!$rechte->isBerechtigt('student/stammdaten',null,'suid') && !$rechte->isBerec
$error_log='';
$error_log1='';
$error_log_all="";
$error_log_io = ''; // error log fuer plausichecks von incomings/outgoings
$stgart='';
$fehler='';
$maxsemester=0;
@@ -143,9 +144,9 @@ derzeit fuer alle Studierende der gleiche Standort
ToDo: Standort sollte pro Student konfigurierbar sein.
*/
$standortcode='22';
if(in_array($stg_kz,array('265','268','761','760','266','267','764','269','400')))
if(in_array($stg_kz,array('265','268','761','760','266','267','764','269','400','794','795','786','859')))
$standortcode='14'; // Pinkafeld
elseif(in_array($stg_kz,array('639','640','263','743','364','635','402','401','725','264','271')))
elseif(in_array($stg_kz,array('639','640','263','743','364','635','402','401','725','264','271','781')))
$standortcode='3'; // Eisenstadt
$datumobj=new datum();
@@ -358,8 +359,46 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<head>
<title>BIS - Meldung Student - ('.$stg_kz.')</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
</head>
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">';
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
echo ' </head>
<style>
#t1, #t2
{
width: auto;
}
</style>
<script language="JavaScript" type="text/javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[6,1],[5,1],[4,1],[2,0],[3,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
widgetOptions : { filter_functions:
{
// Add select menu to this column
4 : {
"Abbrecher" : function(e, n, f, i, $r, c, data) { return /Abbrecher/.test(e); },
"Absolvent" : function(e, n, f, i, $r, c, data) { return /Absolvent/.test(e); },
"Diplomand" : function(e, n, f, i, $r, c, data) { return /Diplomand/.test(e); },
"Incoming" : function(e, n, f, i, $r, c, data) { return /Incoming/.test(e); },
"Student" : function(e, n, f, i, $r, c, data) { return /Student/.test(e); },
"Unterbrecher" : function(e, n, f, i, $r, c, data) { return /Unterbrecher/.test(e); },
}
}
}
});
$("#t2").tablesorter(
{
sortList: [[0,0],[1,0]],
widgets: ["zebra", "filter", "stickyHeaders"]
});
});
</script>
<body>';
if ($rechte->isBerechtigt('admin'))
{
@@ -569,7 +608,8 @@ if(file_exists($eee))
echo '<a href="'.$eee.'">BIS-Melde&uuml;bersicht der BIS-Meldung Stg '.$stg_kz.'</a><br><br>';
}
echo '<table border=1>
echo '<table id="t1" class="tablesorter">
<thead>
<tr align=center>
<th>UID</th>
<th>PersKZ</th>
@@ -579,16 +619,25 @@ echo '<table border=1>
<th>Semester</th>
<th>Orgform</th>
</tr>
</thead>
<tbody>
',$stlist,'
</tbody>
</table>';
echo '<br>Bewerber&uuml;bersicht';
echo '<table border=1>
echo '<table id="t2" class="tablesorter">
<thead>
<tr align=center>
<th>Nachname</th>
<th>Vorname</th>
<th>Orgform</th>
<th>Geschlecht</th>
</tr>
</thead>
<tbody>
',$bwlist,'
</tbody>
</table>';
echo '</body></html>';
@@ -612,6 +661,7 @@ function GenerateXMLStudentBlock($row)
global $stg_kz;
$error_log='';
$error_log1='';
$error_log_io = '';
$datei = '';
$datumobj = new datum();
@@ -624,6 +674,9 @@ function GenerateXMLStudentBlock($row)
else
$ausserordentlich=false;
// Pruefen, ob Incoming (3.Stelle in Personenkennzeichen = 0)
$incoming = mb_substr($row->matrikelnr,2,1) == '0' ? true : false;
$qryadr="SELECT * FROM public.tbl_adresse WHERE heimatadresse IS TRUE AND person_id=".$db->db_add_param($row->pers_id).";";
$results=$db->db_query($qryadr);
@@ -637,6 +690,7 @@ function GenerateXMLStudentBlock($row)
$gemeinde=$rowadr->gemeinde;
$strasse=$rowadr->strasse;
$nation=$rowadr->nation;
$co_name = $rowadr->co_name;
}
else
{
@@ -644,7 +698,43 @@ function GenerateXMLStudentBlock($row)
$gemeinde='';
$strasse='';
$nation='';
$co_name = '';
}
// Zustelladresse & c/o Name(=abweichender Empfaenger)
$qryzustelladr = "
SELECT *
FROM public.tbl_adresse
WHERE zustelladresse IS TRUE
AND person_id=". $db->db_add_param($row->pers_id). ";
";
$results = $db->db_query($qryzustelladr);
if ($db->db_num_rows($results) != 1)
{
$error_log1.= "Es sind ".$db->db_num_rows($results)." Zustelladressen eingetragen\n";
}
$zustell_plz = '';
$zustell_gemeinde = '';
$zustell_strasse = '';
$zustell_nation = '';
if ($rowzustelladr = $db->db_fetch_object($results))
{
$zustell_plz = $rowzustelladr->plz;
$zustell_gemeinde = $rowzustelladr->gemeinde;
$zustell_strasse = $rowzustelladr->strasse;
$zustell_nation = $rowzustelladr->nation;
}
// FH eMail-Adresse FH aus UID@Domain
$email = '';
if ($row->student_uid != '')
{
$email = $row->student_uid. '@'. DOMAIN;
}
if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='')
{
$error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
@@ -709,6 +799,51 @@ function GenerateXMLStudentBlock($row)
{
$error_log.=(!empty($error_log)?', ':'')."Heimat-Nation ('".$nation."')";
}
/*if($row->bpk == '' || $row->bpk == null)
{
$error_log .= (!empty($error_log) ? ', ' : '') . "bPK fehlt";
}
if($row->bpk != '' && $row->bpk != null)
{
if (!preg_match('/[a-zA-Z0-9\+\/]{27}=/', $row->bpk))
{
$error_log.=(!empty($error_log) ? ', ' : ''). "bPK-Zeichenfolge ist ung&uuml;ltig";
}
if (strlen($row->bpk) != 28)
{
$error_log.=(!empty($error_log) ? ', ' : ''). "bPK ist nicht 28 Zeichen lang";
}
}*/
if (!$ausserordentlich && !$incoming)
{
if ($zustell_plz == '' || $zustell_plz == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-PLZ fehlt";
}
if ($zustell_gemeinde == '' || $zustell_gemeinde == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-Gemeinde fehlt";
}
if ($zustell_strasse == '' || $zustell_strasse == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-Strasse fehlt";
}
if ($zustell_nation == '' || $zustell_nation == null)
{
$error_log.=(!empty($error_log)?', ':'')."Zustell-Nation fehlt";
}
if ($email == '' || $email == null)
{
$error_log.=(!empty($error_log)?', ':'')."Studenten-eMail Adresse fehlt (keine Student-UID eingetragen).";
}
}
if(!$ausserordentlich)
{
if($row->zgv_code=='' || $row->zgv_code==null)
@@ -806,7 +941,7 @@ function GenerateXMLStudentBlock($row)
}
else
{
$error_log.= "$row->vorname $row->nachname wird nicht gemeldet da kein gueltiger Status vorhanden ist!";
$error_log.= (!empty($error_log)?', ':''). "$row->vorname $row->nachname wird nicht gemeldet da kein gueltiger Status vorhanden ist!";
return '';
}
$aktstatus=$rowstatus->status_kurzbz;
@@ -861,7 +996,7 @@ function GenerateXMLStudentBlock($row)
}
else
{
$error_log.= "$row->vorname $row->nachname wird nicht gemeldet da kein gueltiger Status vorhanden ist!";
$error_log.= (!empty($error_log)?', ':''). "$row->vorname $row->nachname wird nicht gemeldet da kein gueltiger Status vorhanden ist!";
return '';
}
$aktstatus=$rowstatus->status_kurzbz;
@@ -876,7 +1011,7 @@ function GenerateXMLStudentBlock($row)
$aktstatus_datum='';
$aktstatus_stsem='';
$sem='';
$error_log.= "kein gueltiger Status vorhanden";
$error_log.= (!empty($error_log)?', ':''). "kein gueltiger Status vorhanden";
}
}
@@ -887,7 +1022,7 @@ function GenerateXMLStudentBlock($row)
$aktstatus_datum='';
$aktstatus_stsem='';
$sem='';
$error_log.= "kein gueltiger Status vorhanden";
$error_log.= (!empty($error_log)?', ':''). "kein gueltiger Status vorhanden";
}
}
@@ -1066,44 +1201,85 @@ function GenerateXMLStudentBlock($row)
return '';
}
else
{
$datei.="
{
$datei .= "
<StudentIn>
<PersKz>".trim($row->matrikelnr)."</PersKz>";
<PersKz>" . trim($row->matrikelnr) . "</PersKz>";
$datei.="
<Matrikelnummer>".$row->matr_nr."</Matrikelnummer>";
$datei .= "
<Matrikelnummer>" . $row->matr_nr . "</Matrikelnummer>";
if(!$ausserordentlich)
if (!$ausserordentlich)
{
$datei.="
<OrgFormCode>".$orgform_code_array[$storgform]."</OrgFormCode>";
$datei .= "
<OrgFormCode>" . $orgform_code_array[$storgform] . "</OrgFormCode>";
}
$datei.="
<GeburtsDatum>".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))."</GeburtsDatum>
<Geschlecht>".strtoupper($row->geschlecht)."</Geschlecht>";
$datei.="
<Vorname>".$row->vorname."</Vorname>
<Familienname>".$row->nachname."</Familienname>";
$datei .= "
<GeburtsDatum>" . date("dmY", $datumobj->mktime_fromdate($row->gebdatum)) . "</GeburtsDatum>
<Geschlecht>" . strtoupper($row->geschlecht) . "</Geschlecht>";
if($row->svnr!='')
if ($row->titelpre != '')
{
$datei.="
<SVNR>".$row->svnr."</SVNR>";
}
if($row->ersatzkennzeichen!='')
{
$datei.="
<ErsKz>".$row->ersatzkennzeichen."</ErsKz>";
$datei .= "
<AkadGradeVorName>" . $row->titelpre . "</AkadGradeVorName>";
}
if ($row->titelpost != '')
{
$datei .= "
<AkadGradeNachName>" . $row->titelpost . "</AkadGradeNachName>";
}
$datei .= "
<Vorname>" . $row->vorname . "</Vorname>
<Familienname>" . $row->nachname . "</Familienname>";
if ($row->svnr != '')
{
$datei .= "
<SVNR>" . $row->svnr . "</SVNR>";
}
if ($row->ersatzkennzeichen != '')
{
$datei .= "
<ErsKz>" . $row->ersatzkennzeichen . "</ErsKz>";
}
/*$datei .= "
<bPK>" . $row->bpk . "</bPK>
";*/
$datei .= "
<StaatsangehoerigkeitCode>" . $row->staatsbuergerschaft . "</StaatsangehoerigkeitCode>
<HeimatPLZ>" . $plz . "</HeimatPLZ>
<HeimatGemeinde>" . $gemeinde . "</HeimatGemeinde>
<HeimatStrasse><![CDATA[" . $strasse . "]]></HeimatStrasse>
<HeimatNation>" . $nation . "</HeimatNation>";
if (!$ausserordentlich && !$incoming)
{
$datei .= "
<ZustellPLZ>" . $zustell_plz . "</ZustellPLZ>
<ZustellGemeinde>" . $zustell_gemeinde . "</ZustellGemeinde>
<ZustellStrasse>" . $zustell_strasse . "</ZustellStrasse>
<ZustellNation>" . $zustell_nation . "</ZustellNation>";
}
if ($co_name != '')
{
$datei .= "
<coName>" . $co_name . "</coName>
";
}
if ($email != '')
{
$datei .= "
<eMailAdresse>" . $email . "</eMailAdresse>
";
}
$datei.="
<StaatsangehoerigkeitCode>".$row->staatsbuergerschaft."</StaatsangehoerigkeitCode>
<HeimatPLZ>".$plz."</HeimatPLZ>
<HeimatGemeinde>".$gemeinde."</HeimatGemeinde>
<HeimatStrasse><![CDATA[".$strasse."]]></HeimatStrasse>
<HeimatNation>".$nation."</HeimatNation>";
if(!$ausserordentlich)
{
$datei.="
@@ -1206,48 +1382,151 @@ function GenerateXMLStudentBlock($row)
$gast=$rowio->nation_code;
$avon=date("dmY", $datumobj->mktime_fromdate($rowio->von));
$abis=date("dmY", $datumobj->mktime_fromdate($rowio->bis));
$adauer = (is_null($rowio->von) || is_null($rowio->bis))
? null
: $datumobj->DateDiff($rowio->von, $rowio->bis);
$datei.="
<IO>
<MobilitaetsProgrammCode>".$mob."</MobilitaetsProgrammCode>
<GastlandCode>".$gast."</GastlandCode>
<AufenthaltVon>".$avon."</AufenthaltVon>";
if($datumobj->mktime_fromdate($rowio->bis)<$datumobj->mktime_fromdate($bisdatum) && $datumobj->mktime_fromdate($rowio->bis)>$datumobj->mktime_fromdate($bisprevious))
{
$datei.="
<AufenthaltBis>".$abis."</AufenthaltBis>";
}
// Aufenthaltszweckcode --------------------------------------------------------------------------------
$bisio_zweck = new bisio();
$bisio_zweck->getZweck($rowio->bisio_id);
foreach ($bisio_zweck->result as $row_zweck)
$zweck_code_arr = array();
// Bei Incomings...
if ($aktstatus == 'Incoming')
{
$datei.="
<AufenthaltZweckCode>".$row_zweck->zweck_code."</AufenthaltZweckCode>";
}
if ($aktstatus != 'Incoming' && $rowio->ects_erworben != '')
{
$datei.="
<ECTSerworben>".$rowio->ects_erworben."</ECTSerworben>";
}
if ($aktstatus != 'Incoming' && $rowio->ects_angerechnet != '')
{
$datei.="
<ECTSangerechnet>".$rowio->ects_angerechnet."</ECTSangerechnet>";
}
if ($aktstatus != 'Incoming')
{
$bisio_foerderung = new bisio();
$bisio_foerderung->getFoerderungen($rowio->bisio_id);
foreach ($bisio_foerderung->result as $row_foerderung)
// ...max 1 Aufenthaltszweck
if (count($bisio_zweck->result) > 1)
{
$datei.="
<AufenthaltFoerderungCode>".$row_foerderung->aufenthaltfoerderung_code."</AufenthaltFoerderungCode>";
$error_log_io .= (!empty($error_log_io) ? ', ' : ''). "Es sind". count($bisio_zweck->result).
" Aufenthaltszwecke eingetragen (max. 1 Zweck für Incomings)";
}
//...nur Zweck 1, 2 oder 3 erlaubt
if (count($bisio_zweck->result) == 1 &&
empty(array_intersect(array(1, 2, 3), array_column($bisio_zweck->result, 'zweck_code'))))
{
$error_log_io .= (!empty($error_log_io) ? ', ' : ''). "Aufenthaltszweckcode ist ".
$bisio_zweck->result[0]->zweck_code. " (f&uuml;r Incomings ist nur Zweck 1, 2, 3 erlaubt)";
}
}
$datei.="
</IO>";
foreach ($bisio_zweck->result as $row_zweck)
{
// Nur eindeutige Werte (bei Mehrfachangaben; trifft auf Outgoings zu)
if (!in_array($row_zweck->zweck_code, $zweck_code_arr))
{
// Aufenthaltszweck 1, 2, 3 nicht gemeinsam melden
if (in_array(1,$zweck_code_arr) && in_array(2,$zweck_code_arr) && in_array(3,$zweck_code_arr))
{
$error_log_io .= (!empty($error_log_io) ? ', ' : '').
"Aufenthaltzweckcode 1, 2, 3 d&uuml;rfen nicht gemeinsam gemeldet werden";
}
$zweck_code_arr []= $row_zweck->zweck_code;
}
}
// Aufenthaltfoerderungscode ---------------------------------------------------------------------------
$aufenthaltfoerderung_code_arr = array();
// Nur bei Outgoings Aufenthaltsfoerderungscode melden
if ($aktstatus != 'Incoming') {
$bisio_foerderung = new bisio();
$bisio_foerderung->getFoerderungen($rowio->bisio_id);
// ... mindestens 1 Aufenthaltfoerderung melden, wenn Auslandsaufenthalt >= 29 Tage
if ((!$bisio_foerderung->result || count($bisio_foerderung->result) == 0) && $adauer >= 29)
{
$error_log_io .= (!empty($error_log_io) ? ', ' : '') .
"Keine Aufenthaltsfoerderung angegeben (bei Outgoings >= 29 Tage Monat im Ausland muss mind. 1 gemeldet werden)";
}
foreach ($bisio_foerderung->result as $row_foerderung)
{
// ...wenn code = 5, nur ein Wert erlaubt (keine Mehrfachangaben)
if ($row_foerderung->aufenthaltfoerderung_code == 5) {
unset($aufenthaltfoerderung_code_arr);
$aufenthaltfoerderung_code_arr [] = $row_foerderung->aufenthaltfoerderung_code;
break;
}
// nur eindeutige Werte
if (!in_array($row_foerderung->aufenthaltfoerderung_code, $aufenthaltfoerderung_code_arr)) {
$aufenthaltfoerderung_code_arr [] = $row_foerderung->aufenthaltfoerderung_code;
}
}
if($datumobj->mktime_fromdate($rowio->bis) < $datumobj->mktime_fromdate($bisdatum))
$aufenthalt_finished = true;
else
$aufenthalt_finished = false;
if ($rowio->ects_erworben == '' && $adauer >= 29 && $aufenthalt_finished)
{
$error_log_io .= (!empty($error_log_io) ? ', ' : '') .
"Erworbene ECTS fehlen (Meldepflicht bei Outgoings >= 29 Tage Monat im Ausland)";
}
if ($rowio->ects_angerechnet == '' && $adauer >= 29 && $aufenthalt_finished)
{
$error_log_io .= (!empty($error_log_io) ? ', ' : '') .
"Angerechnete ECTS fehlen (Meldepflicht bei Outgoings >= 29 Tage Monat im Ausland)";
}
}
// Bei validen Daten errorlog ausgeben
if($error_log_io != '')
{
$v.="<u>Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($laststatus->status_kurzbz): </u>\n";
if($error_log_io != '')
{
$v.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fehler: ".$error_log_io. "\n";
}
$v.="\n";
$error_log_io = '';
return '';
}
// Bei validen Daten XML-Datensatz bauen
else
{
$datei.="
<IO>
<MobilitaetsProgrammCode>".$mob."</MobilitaetsProgrammCode>
<GastlandCode>".$gast."</GastlandCode>
<AufenthaltVon>".$avon."</AufenthaltVon>";
if($datumobj->mktime_fromdate($rowio->bis)<$datumobj->mktime_fromdate($bisdatum) && $datumobj->mktime_fromdate($rowio->bis)>$datumobj->mktime_fromdate($bisprevious))
{
$datei.="
<AufenthaltBis>".$abis."</AufenthaltBis>";
}
foreach ($zweck_code_arr as $zweck)
{
$datei.="
<AufenthaltZweckCode>". $zweck. "</AufenthaltZweckCode>";
}
if ($aktstatus != 'Incoming' && $rowio->ects_erworben != '')
{
$datei.="
<ECTSerworben>".$rowio->ects_erworben."</ECTSerworben>";
}
if ($aktstatus != 'Incoming' && $rowio->ects_angerechnet != '')
{
$datei.="
<ECTSangerechnet>".$rowio->ects_angerechnet."</ECTSangerechnet>";
}
foreach ($aufenthaltfoerderung_code_arr as $aufenthaltfoerderung_code)
{
$datei.="
<AufenthaltFoerderungCode>". $aufenthaltfoerderung_code. "</AufenthaltFoerderungCode>";
}
$datei.="
</IO>";
}
if($aktstatus!='Incoming')
{
if(!isset($iosem[$storgform][$sem]))
+61
View File
@@ -0,0 +1,61 @@
<?php
/* Copyright (C) 2020 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
*/
/**
* Prueft ob aktuelle Jobs sich im Status running befinden.
* Falls dies der Fall ist wird ein Warn Mail an den Admin verschickt.
* Dies soll verhindern dass Jobs die stecken geblieben sind nicht mehr gestartet werden da diese im
* Running Status hängen und daher nicht erneut gestartet werden.
*/
require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
require_once(dirname(__FILE__).'/../../include/mail.class.php');
require_once(dirname(__FILE__).'/../../include/cronjob.class.php');
//ID des Cronjobs holen
$cj = new cronjob();
if($cj->isJobRunning())
{
$cj->getAll();
$text = '';
$found = false;
foreach($cj->result as $row)
{
if($row->running && (mb_strstr($row->file, 'jobwatcher.php')===false))
{
$found = true;
$text.="Der Cronjob \"$row->titel\" mit ID $row->cronjob_id ist im Status RUNNING\n";
$text.="Er wurde zuletzt am \"$row->last_execute\" Uhr gestartet.\n";
}
}
if ($found)
{
$text.="Der Status muss gegebenenfalls manuell zurückgesetzt werden da der Job sonst nicht erneut startet\n";
$mail = new mail(MAIL_ADMIN, 'no-reply@'.DOMAIN,'CronJob - RUNNING ALERT',$text);
if(!$mail->send())
die('Fehler beim Senden des Mails!');
else
echo 'Cronjob Running Alert verschickt';
}
}
?>