mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 23:42:17 +00:00
Merge branch 'master' into feature-6656/Worker_queue
This commit is contained in:
@@ -18,6 +18,8 @@ $config['ou_receivers'] = array('ass');
|
||||
$config['ou_receivers_no_notice'] = array('infocenter');
|
||||
// Organization units that will not send the notice email to the internal account, but to the private one
|
||||
$config['ou_receivers_private'] = array('eac', 'ewu', 'scs');
|
||||
//
|
||||
$config['ou_function_whitelist'] = array('ass', 'Leitung', 'fachzuordnung', 'oezuordnung');
|
||||
|
||||
$config['message_redirect_url'] = array();
|
||||
$config['message_redirect_url']['fallback'] = site_url('system/messages/ViewMessage/writeReply');
|
||||
|
||||
@@ -72,11 +72,18 @@ $config['navigation_header'] = array(
|
||||
'sort' => 40,
|
||||
'requiredPermissions' => 'basis/vilesci:r',
|
||||
'children'=> array(
|
||||
'messages' => array(
|
||||
'link' => site_url('system/messages/MessageClient/read'),
|
||||
'icon' => '',
|
||||
'target' => '_blank',
|
||||
'description' => 'Messages',
|
||||
'sort' => 10,
|
||||
),
|
||||
'bpk' => array(
|
||||
'link' => site_url('person/BPKWartung'),
|
||||
'icon' => '',
|
||||
'description' => 'BPK Wartung',
|
||||
'sort' => 10,
|
||||
'sort' => 20,
|
||||
'requiredPermissions' => 'admin:r'
|
||||
)
|
||||
)
|
||||
|
||||
@@ -149,10 +149,10 @@ class Message extends APIv1_Controller
|
||||
if (isSuccess($postMessage))
|
||||
{
|
||||
$result = $this->messagelib->sendMessageUser(
|
||||
$this->post()['receiver_id']), // receiverPersonId
|
||||
$this->post()['receiver_id'], // receiverPersonId
|
||||
$this->post()['subject'], // subject
|
||||
$this->post()['body'], // body
|
||||
$this->post()['person_id']) ? $this->post()['person_id'] : null, // sender_id
|
||||
$this->post()['person_id'] ? $this->post()['person_id'] : null, // sender_id
|
||||
isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, // senderOU
|
||||
isset($this->post()['relationmessage_id']) ? $this->post()['relationmessage_id'] : null, // relationmessage_id
|
||||
MSG_PRIORITY_NORMAL, // priority
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
if (!defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
/**
|
||||
* This job takes care of sending messages to a pool of users,
|
||||
* should not be a scheduled job, or maybe just for a short time,
|
||||
* but it is called manually every time it is needed.
|
||||
* Each method takes care to send a different message to a different pool of users,
|
||||
* so they are very specialize, diffucult to be reused.
|
||||
*/
|
||||
class OneTimeMessages extends JOB_Controller
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Loads CLMessagesModel
|
||||
$this->load->model('CL/Messages_model', 'CLMessagesModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the same message to all the applicants whith:
|
||||
* - Status set as "Wartender"
|
||||
* - The given study course type (b = bachelor, m = master)
|
||||
* - The given semester (ex WS2020)
|
||||
* - How long since applicant (days)
|
||||
* - The given template id to be used as message subject and body (vorlage_kurzbz)
|
||||
* The sender of all the messages is specified by the parameter senderId (sender person_id)
|
||||
*/
|
||||
public function sendMessageToApplicantsStillWaiting($senderId, $studyCourseType, $semester, $days, $messageTemplate)
|
||||
{
|
||||
$this->logInfo('Send message to applicants still waiting start');
|
||||
|
||||
$queryParams = array(
|
||||
$semester,
|
||||
$studyCourseType,
|
||||
$semester,
|
||||
$studyCourseType,
|
||||
$semester,
|
||||
$studyCourseType
|
||||
);
|
||||
|
||||
$dbModel = new DB_Model();
|
||||
|
||||
$dbPrestudents = $dbModel->execReadOnlyQuery(
|
||||
'SELECT distinct on(person_id) p.prestudent_id
|
||||
FROM public.tbl_prestudent p
|
||||
JOIN public.tbl_prestudentstatus ps USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang s USING (studiengang_kz)
|
||||
WHERE ps.status_kurzbz = \'Wartender\'
|
||||
AND ps.studiensemester_kurzbz = ?
|
||||
AND ps.datum <= NOW() - \''.$days.' days\'::interval
|
||||
AND s.typ = ?
|
||||
AND NOT EXISTS (
|
||||
SELECT pp.person_id
|
||||
FROM public.tbl_prestudent pp
|
||||
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang ss USING (studiengang_kz)
|
||||
WHERE pss.status_kurzbz = \'Aufgenommener\'
|
||||
AND pss.studiensemester_kurzbz = ?
|
||||
AND ss.typ = ?
|
||||
AND pp.person_id = p.person_id
|
||||
)
|
||||
AND NOT EXISTS (
|
||||
SELECT pp.person_id
|
||||
FROM public.tbl_prestudent pp
|
||||
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang ss USING (studiengang_kz)
|
||||
WHERE pss.status_kurzbz = \'Student\'
|
||||
AND pss.studiensemester_kurzbz = ?
|
||||
AND ss.typ = ?
|
||||
AND pp.person_id = p.person_id
|
||||
)',
|
||||
$queryParams
|
||||
);
|
||||
|
||||
if (isError($dbPrestudents))
|
||||
{
|
||||
$this->logError(getError($dbPrestudents), $queryParams);
|
||||
}
|
||||
elseif (!hasData($dbPrestudents))
|
||||
{
|
||||
$this->logInfo('There were no users to send message');
|
||||
}
|
||||
else
|
||||
{
|
||||
$prestudentIdsArray = array();
|
||||
|
||||
foreach (getData($dbPrestudents) as $dbPrestudent)
|
||||
{
|
||||
$prestudentIdsArray[] = $dbPrestudent->prestudent_id;
|
||||
}
|
||||
|
||||
$sendMessage = $this->CLMessagesModel->sendExplicitTemplateSenderId(
|
||||
$senderId, // sender person id
|
||||
$prestudentIdsArray, // prestudents id
|
||||
null, // organization unit
|
||||
$messageTemplate, // template id
|
||||
null // extra variables
|
||||
);
|
||||
|
||||
if (isError($sendMessage))
|
||||
{
|
||||
$this->logError(
|
||||
getError($sendMessage),
|
||||
array(
|
||||
'prestudents' => $prestudentIdsArray,
|
||||
'template' => $messageTemplate
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$this->logInfo('Total amount of prestudents: '.count($prestudentIdsArray));
|
||||
}
|
||||
|
||||
$this->logInfo('Send message to applicants still waiting end');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*/
|
||||
class Pruefungsprotokoll extends Auth_Controller
|
||||
{
|
||||
private $_uid; // uid of the logged user
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/pruefungsbeurteilung:r',
|
||||
'Protokoll' => 'lehre/pruefungsbeurteilung:r',
|
||||
'saveProtokoll' => 'lehre/pruefungsbeurteilung:rw',
|
||||
)
|
||||
);
|
||||
|
||||
// Load models
|
||||
$this->load->model('education/Abschlusspruefung_model', 'AbschlusspruefungModel');
|
||||
$this->load->model('education/Abschlussbeurteilung_model', 'AbschlussbeurteilungModel');
|
||||
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'ui',
|
||||
'global',
|
||||
'person',
|
||||
'abschlusspruefung',
|
||||
'password',
|
||||
'lehre'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
public function index()
|
||||
{
|
||||
$this->load->library('WidgetLib');
|
||||
$this->load->view('lehre/pruefungsprotokollUebersicht.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Pruefungsprotokoll.
|
||||
*/
|
||||
public function Protokoll()
|
||||
{
|
||||
$abschlusspruefung_id = $this->input->get('abschlusspruefung_id');
|
||||
|
||||
if (!is_numeric($abschlusspruefung_id))
|
||||
show_error('invalid abschlusspruefung');
|
||||
|
||||
$abschlusspruefung_saved = false;
|
||||
$abschlusspruefung = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id);
|
||||
|
||||
if (isError($abschlusspruefung))
|
||||
show_error(getError($abschlusspruefung));
|
||||
else
|
||||
{
|
||||
$abschlusspruefung = getData($abschlusspruefung);
|
||||
$abschlusspruefung_saved = isset($abschlusspruefung->protokoll) && isset($abschlusspruefung->abschlussbeurteilung_kurzbz);
|
||||
}
|
||||
|
||||
$this->AbschlussbeurteilungModel->addOrder("sort", "ASC");
|
||||
$this->AbschlussbeurteilungModel->addOrder("(CASE WHEN abschlussbeurteilung_kurzbz = 'ausgezeichnet' THEN 1
|
||||
WHEN abschlussbeurteilung_kurzbz = 'gut' THEN 2
|
||||
WHEN abschlussbeurteilung_kurzbz = 'bestanden' THEN 3
|
||||
WHEN abschlussbeurteilung_kurzbz = 'angerechnet' THEN 4
|
||||
ELSE 5
|
||||
END
|
||||
)");
|
||||
$abschlussbeurteilung = $this->AbschlussbeurteilungModel->load();
|
||||
|
||||
if (isError($abschlussbeurteilung))
|
||||
show_error(getError($abschlussbeurteilung));
|
||||
else
|
||||
$abschlussbeurteilung = getData($abschlussbeurteilung);
|
||||
|
||||
$language = getUserLanguage();
|
||||
|
||||
$data = array(
|
||||
'abschlusspruefung' => $abschlusspruefung,
|
||||
'abschlussbeurteilung' => $abschlussbeurteilung,
|
||||
'abschlusspruefung_saved' => $abschlusspruefung_saved,
|
||||
'language' => $language
|
||||
);
|
||||
|
||||
$this->load->view('lehre/pruefungsprotokoll.php', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save Pruefungsprotokoll (including possible Freigabe)
|
||||
*/
|
||||
public function saveProtokoll()
|
||||
{
|
||||
$abschlusspruefung_id = $this->input->post('abschlusspruefung_id');
|
||||
$data = $this->input->post('protocoldata');
|
||||
|
||||
if (isset($abschlusspruefung_id) && is_numeric($abschlusspruefung_id) && isset($data))
|
||||
{
|
||||
// check permission
|
||||
$berechtigt = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id);
|
||||
if (isError($berechtigt))
|
||||
$this->outputJsonError(getError($berechtigt));
|
||||
else
|
||||
{
|
||||
$freigabe = isset($data['freigabedatum']) && $data['freigabedatum'];
|
||||
|
||||
if ($freigabe)
|
||||
{
|
||||
// Verify password
|
||||
$password = $data['password'];
|
||||
unset($data['password']);
|
||||
if (!isEmptyString($password))
|
||||
{
|
||||
$result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
|
||||
if (isError($result))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('password', 'wrongPassword')); // exit if password is incorrect
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('password', 'passwordMissing'));
|
||||
}
|
||||
}
|
||||
|
||||
$data = $this->_prepareAbschlusspruefungDataForSave($data);
|
||||
$result = $this->AbschlusspruefungModel->update($abschlusspruefung_id, $data);
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$abschlusspruefung_id = getData($result);
|
||||
$updateresult = array('abschlusspruefung_id' => $abschlusspruefung_id);
|
||||
if ($freigabe)
|
||||
$updateresult['freigabedatum'] = date_format(date_create($data['freigabedatum']), 'd.m.Y');
|
||||
|
||||
$this->outputJsonSuccess($updateresult);
|
||||
}
|
||||
else
|
||||
$this->outputJsonError('Fehler beim Speichern des Prüfungsprotokolls');
|
||||
}
|
||||
}
|
||||
else
|
||||
$this->outputJsonError($this->p->t('ui', 'ungueltigeParameter'));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves an Abschlussprüfung, with permission check
|
||||
* permission: admin, assistance of study programe or Vorsitz of the Prüfung
|
||||
* @param $abschlusspruefung_id
|
||||
* @return object success or error
|
||||
*/
|
||||
private function _getAbschlusspruefungBerechtigt($abschlusspruefung_id)
|
||||
{
|
||||
$result = error('Error when getting Abschlusspruefung');
|
||||
|
||||
if (isset($this->_uid))
|
||||
{
|
||||
$abschlusspruefung = $this->AbschlusspruefungModel->getAbschlusspruefung($abschlusspruefung_id);
|
||||
|
||||
if (hasData($abschlusspruefung))
|
||||
{
|
||||
$abschlusspruefung_data = getData($abschlusspruefung);
|
||||
if ($this->permissionlib->isBerechtigt('admin') ||
|
||||
(isset($abschlusspruefung_data->studiengang_kz) && $this->permissionlib->isBerechtigt('assistenz', 'suid', $abschlusspruefung_data->studiengang_kz))
|
||||
|| $this->_uid === $abschlusspruefung_data->uid_vorsitz)
|
||||
$result = $abschlusspruefung;
|
||||
else
|
||||
$result = error('Permission denied');
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares Abschlussprüfung for save in database, replaces '' with null, sets Freigabedatum
|
||||
* @param $data
|
||||
* @return array
|
||||
*/
|
||||
private function _prepareAbschlusspruefungDataForSave($data)
|
||||
{
|
||||
$nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll');
|
||||
foreach ($data as $idx => $item)
|
||||
{
|
||||
if (in_array($idx, $nullfields) & $item === '')
|
||||
$data[$idx] = null;
|
||||
}
|
||||
|
||||
if (isset($data['freigabedatum']) && $data['freigabedatum'])
|
||||
$data['freigabedatum'] = date('Y-m-d');
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
@@ -52,7 +52,8 @@ class Lehrauftrag extends Auth_Controller
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre'
|
||||
'lehre',
|
||||
'table'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -8,180 +8,196 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
*/
|
||||
class LehrauftragAkzeptieren extends Auth_Controller
|
||||
{
|
||||
const APP = 'lehrauftrag';
|
||||
const LEHRAUFTRAG_URI = 'lehre/lehrauftrag/LehrauftragAkzeptieren'; // URL prefix for this controller
|
||||
const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
|
||||
const APP = 'lehrauftrag';
|
||||
const LEHRAUFTRAG_URI = 'lehre/lehrauftrag/LehrauftragAkzeptieren'; // URL prefix for this controller
|
||||
const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
|
||||
|
||||
private $_uid; // uid of the logged user
|
||||
private $_uid; // uid of the logged user
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/lehrauftrag_akzeptieren:r',
|
||||
'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw',
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/lehrauftrag_akzeptieren:r',
|
||||
'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw',
|
||||
'checkInkludierteLehre' => 'lehre/lehrauftrag_akzeptieren:rw'
|
||||
)
|
||||
);
|
||||
)
|
||||
);
|
||||
|
||||
// Load models
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$this->load->model('accounting/Vertrag_model', 'VertragModel');
|
||||
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
|
||||
$this->load->model('codex/Bisverwendung_model', 'BisverwendungModel');
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
// Load models
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$this->load->model('accounting/Vertrag_model', 'VertragModel');
|
||||
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
|
||||
$this->load->model('codex/Bisverwendung_model', 'BisverwendungModel');
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
|
||||
// Load libraries
|
||||
$this->load->library('WidgetLib');
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AuthLib');
|
||||
// Load libraries
|
||||
$this->load->library('WidgetLib');
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('array');
|
||||
$this->load->helper('url');
|
||||
// Load helpers
|
||||
$this->load->helper('array');
|
||||
$this->load->helper('url');
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre'
|
||||
)
|
||||
);
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre',
|
||||
'password',
|
||||
'dms',
|
||||
'table'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Main page of Lehrauftrag
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Set studiensemester selected for studiengang dropdown
|
||||
$studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester
|
||||
if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value
|
||||
{
|
||||
$studiensemester = $this->StudiensemesterModel->getAktOrNextSemester();
|
||||
if (hasData($studiensemester))
|
||||
{
|
||||
$studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz;
|
||||
}
|
||||
elseif (isError($studiensemester))
|
||||
{
|
||||
show_error(getError($studiensemester));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Main page of Lehrauftrag
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Set studiensemester selected for studiengang dropdown
|
||||
$studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester
|
||||
if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value
|
||||
{
|
||||
$studiensemester = $this->StudiensemesterModel->getAktOrNextSemester();
|
||||
if (hasData($studiensemester))
|
||||
{
|
||||
$studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz;
|
||||
}
|
||||
elseif (isError($studiensemester))
|
||||
{
|
||||
show_error(getError($studiensemester));
|
||||
}
|
||||
}
|
||||
|
||||
$view_data = array(
|
||||
'studiensemester_selected' => $studiensemester_kurzbz
|
||||
);
|
||||
// Check if user is external lector
|
||||
$this->MitarbeiterModel->addJoin('public.tbl_benutzer', 'uid = mitarbeiter_uid');
|
||||
$result = $this->MitarbeiterModel->loadWhere(array(
|
||||
'uid' => $this->_uid,
|
||||
'fixangestellt' => false,
|
||||
'personalnummer > ' => 0,
|
||||
'lektor' => true,
|
||||
'aktiv' => true
|
||||
));
|
||||
|
||||
$is_external_lector = hasData($result) ? true : false;
|
||||
|
||||
$view_data = array(
|
||||
'studiensemester_selected' => $studiensemester_kurzbz,
|
||||
'is_external_lector' => $is_external_lector
|
||||
);
|
||||
|
||||
$this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data);
|
||||
}
|
||||
$this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the contract status of Lehrauftrag to 'akzeptiert'.
|
||||
* Performed on ajax call.
|
||||
*/
|
||||
public function acceptLehrauftrag()
|
||||
{
|
||||
// Verify password
|
||||
$password = $this->input->post('password');
|
||||
if (!isEmptyString($password))
|
||||
{
|
||||
$result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
|
||||
if (isError($result))
|
||||
{
|
||||
return $this->outputJsonError('Passwort ist inkorrekt'); // exit if password is incorrect
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/**
|
||||
* Set the contract status of Lehrauftrag to 'akzeptiert'.
|
||||
* Performed on ajax call.
|
||||
*/
|
||||
public function acceptLehrauftrag()
|
||||
{
|
||||
// Verify password
|
||||
$password = $this->input->post('password');
|
||||
if (!isEmptyString($password))
|
||||
{
|
||||
$result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
|
||||
if (isError($result))
|
||||
{
|
||||
return $this->outputJsonError('Passwort ist inkorrekt'); // exit if password is incorrect
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Passwort fehlt');
|
||||
}
|
||||
}
|
||||
|
||||
// Loop through lehraufträge
|
||||
$lehrauftrag_arr = $this->input->post('selected_data');
|
||||
// Loop through lehraufträge
|
||||
$lehrauftrag_arr = $this->input->post('selected_data');
|
||||
|
||||
if(is_array($lehrauftrag_arr))
|
||||
{
|
||||
foreach($lehrauftrag_arr as $lehrauftrag)
|
||||
{
|
||||
$vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
|
||||
if(is_array($lehrauftrag_arr))
|
||||
{
|
||||
foreach($lehrauftrag_arr as $lehrauftrag)
|
||||
{
|
||||
$vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
|
||||
|
||||
// Check if user is entitled to accept this Lehrauftrag
|
||||
// * first retrieve person_id of the contract
|
||||
$this->VertragModel->addSelect('person_id');
|
||||
// Check if user is entitled to accept this Lehrauftrag
|
||||
// * first retrieve person_id of the contract
|
||||
$this->VertragModel->addSelect('person_id');
|
||||
|
||||
if ($result = getData($this->VertragModel->load($vertrag_id)))
|
||||
{
|
||||
// * then find the uid of that contracts person_id
|
||||
$this->BenutzerModel->addSelect('uid');
|
||||
if ($result = getData($this->VertragModel->load($vertrag_id)))
|
||||
{
|
||||
// * then find the uid of that contracts person_id
|
||||
$this->BenutzerModel->addSelect('uid');
|
||||
|
||||
if ($result = getData($this->BenutzerModel->getFromPersonId($result[0]->person_id)))
|
||||
{
|
||||
// * finally check uid of contract against the logged in user
|
||||
if ($result = getData($this->BenutzerModel->getFromPersonId($result[0]->person_id)))
|
||||
{
|
||||
// * finally check uid of contract against the logged in user
|
||||
$account_found = false;
|
||||
foreach($result as $row_accounts)
|
||||
foreach ($result as $row_accounts)
|
||||
{
|
||||
if($row_accounts->uid == $this->_uid)
|
||||
if ($row_accounts->uid == $this->_uid)
|
||||
{
|
||||
$account_found = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$account_found)
|
||||
{
|
||||
if (!$account_found)
|
||||
{
|
||||
return $this->outputJsonError('Sie haben keine Berechtigung für einen Vertrag');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Laden der Benutzerdaten');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Laden des Vertrags');
|
||||
}
|
||||
}
|
||||
|
||||
// Set status to accepted
|
||||
$result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $this->_uid, 'akzeptiert');
|
||||
// Set status to accepted
|
||||
$result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $this->_uid, 'akzeptiert');
|
||||
|
||||
if ($result->retval)
|
||||
{
|
||||
$json []= array(
|
||||
'row_index' => $lehrauftrag['row_index'],
|
||||
'akzeptiert' => date('Y-m-d')
|
||||
);
|
||||
}
|
||||
if ($result->retval)
|
||||
{
|
||||
$json []= array(
|
||||
'row_index' => $lehrauftrag['row_index'],
|
||||
'akzeptiert' => date('Y-m-d')
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError($result->retval);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Output json to ajax
|
||||
if (isset($json) && !isEmptyArray($json))
|
||||
{
|
||||
$this->outputJsonSuccess($json);
|
||||
}
|
||||
}
|
||||
// Output json to ajax
|
||||
if (isset($json) && !isEmptyArray($json))
|
||||
{
|
||||
$this->outputJsonSuccess($json);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Übertragen der Daten.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if lectors latest Verwendung has inkludierte Lehre
|
||||
@@ -189,7 +205,7 @@ class LehrauftragAkzeptieren extends Auth_Controller
|
||||
* - inkludierte_lehre -1: fix employed lector -> has inkludierte Lehre (all inclusive)
|
||||
* - inkludierte_lehre > 0: fix employed lector -> has inkludierte Lehre (value is amount of hours included)
|
||||
*/
|
||||
public function checkInkludierteLehre()
|
||||
public function checkInkludierteLehre()
|
||||
{
|
||||
$result = $this->BisverwendungModel->getLast($this->_uid, false);
|
||||
|
||||
@@ -203,17 +219,17 @@ class LehrauftragAkzeptieren extends Auth_Controller
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -50,7 +50,8 @@ class LehrauftragErteilen extends Auth_Controller
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre'
|
||||
'lehre',
|
||||
'table'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -7,60 +7,34 @@ class FAS_UDF extends Auth_Controller
|
||||
const FAS_UDF_SESSION_NAME = 'fasUdfSessionName';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'basis/person:r',
|
||||
'saveUDF' => 'basis/person:rw'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$fasUdfSession = getSession(self::FAS_UDF_SESSION_NAME);
|
||||
|
||||
$person_id = $this->input->get('person_id');
|
||||
if (isset($fasUdfSession['person_id']))
|
||||
{
|
||||
if (!isset($person_id))
|
||||
{
|
||||
$person_id = $fasUdfSession['person_id'];
|
||||
}
|
||||
unset($fasUdfSession['person_id']);
|
||||
}
|
||||
|
||||
$prestudent_id = $this->input->get('prestudent_id');
|
||||
if (isset($fasUdfSession['prestudent_id']))
|
||||
{
|
||||
if (!isset($prestudent_id))
|
||||
{
|
||||
$prestudent_id = $fasUdfSession['prestudent_id'];
|
||||
}
|
||||
unset($fasUdfSession['prestudent_id']);
|
||||
}
|
||||
|
||||
$result = null;
|
||||
if (isset($fasUdfSession['result']))
|
||||
{
|
||||
$result = clone $fasUdfSession['result'];
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'result', null);
|
||||
}
|
||||
|
||||
$data = array('result' => $result);
|
||||
$data = array();
|
||||
|
||||
if (isset($person_id) && is_numeric($person_id))
|
||||
{
|
||||
if ($this->PersonModel->hasUDF())
|
||||
{
|
||||
$personUdfs = $this->PersonModel->getUDFs($person_id);
|
||||
$personUdfs['person_id'] = $person_id;
|
||||
$data['person_id'] = $person_id;
|
||||
$data['personUdfs'] = $personUdfs;
|
||||
}
|
||||
}
|
||||
@@ -70,61 +44,12 @@ class FAS_UDF extends Auth_Controller
|
||||
if ($this->PrestudentModel->hasUDF())
|
||||
{
|
||||
$prestudentUdfs = $this->PrestudentModel->getUDFs($prestudent_id);
|
||||
$prestudentUdfs['prestudent_id'] = $prestudent_id;
|
||||
$data['prestudent_id'] = $prestudent_id;
|
||||
$data['prestudentUdfs'] = $prestudentUdfs;
|
||||
}
|
||||
}
|
||||
|
||||
$this->load->view('system/fas_udf', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function saveUDF()
|
||||
{
|
||||
$udfs = $this->input->post();
|
||||
$validation = $this->_validate($udfs);
|
||||
|
||||
$userdata = array(
|
||||
'person_id' => $this->input->post('person_id'),
|
||||
'prestudent_id' => $this->input->post('prestudent_id')
|
||||
);
|
||||
|
||||
if (isSuccess($validation))
|
||||
{
|
||||
// Load model UDF_model
|
||||
$this->load->model('system/FAS_UDF_model', 'FASUDFModel');
|
||||
|
||||
$result = $this->FASUDFModel->saveUDFs($udfs);
|
||||
|
||||
$userdata['result'] = $result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$userdata['result'] = $validation;
|
||||
}
|
||||
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'person_id', $userdata['person_id']);
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'prestudent_id', $userdata['prestudent_id']);
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'result', $userdata['result']);
|
||||
|
||||
redirect('system/FAS_UDF');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _validate($udfs)
|
||||
{
|
||||
$validation = error('person_id or prestudent_id is missing');
|
||||
|
||||
if((isset($udfs['person_id']) && !(is_null($udfs['person_id'])) && ($udfs['person_id'] != ''))
|
||||
|| (isset($udfs['prestudent_id']) && !(is_null($udfs['prestudent_id'])) && ($udfs['prestudent_id'] != '')))
|
||||
{
|
||||
$validation = success(true);
|
||||
}
|
||||
|
||||
return $validation;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ class Phrases extends Auth_Controller
|
||||
|
||||
$phrase_inhalt = $this->phraseslib->insertPhraseinhalt($data);
|
||||
if ($phrase_inhalt->error)
|
||||
show_error(getError($phrase_inhalt);
|
||||
show_error(getError($phrase_inhalt));
|
||||
|
||||
$phrase_inhalt_id = $phrase_inhalt->retval;
|
||||
|
||||
|
||||
@@ -1337,7 +1337,7 @@ class InfoCenter extends Auth_Controller
|
||||
show_error(getError($prestudentWithZgv));
|
||||
}
|
||||
|
||||
$zgvpruefung = $prestudentWithZgv->retval[0];
|
||||
$zgvpruefung = getData($prestudentWithZgv);
|
||||
|
||||
if (isset($zgvpruefung->prestudentstatus))
|
||||
{
|
||||
@@ -1362,11 +1362,15 @@ class InfoCenter extends Auth_Controller
|
||||
$zgvpruefung->isRtFreigegeben = false;
|
||||
$zgvpruefung->isStgFreigegeben = false;
|
||||
$zgvpruefung->sendStgFreigabeMsg = true;//wether Stgudiengangfreigabemessage can be sent (for "exceptions", Studiengänge with no message sending)
|
||||
$this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund');
|
||||
$this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
|
||||
$isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz,
|
||||
'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id));
|
||||
|
||||
$isFreigegeben = null;
|
||||
if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
|
||||
{
|
||||
$this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund');
|
||||
$this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
|
||||
$isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz,
|
||||
'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id));
|
||||
}
|
||||
|
||||
if (hasData($isFreigegeben))
|
||||
{
|
||||
@@ -1374,7 +1378,7 @@ class InfoCenter extends Auth_Controller
|
||||
{
|
||||
if (isset($prestudentstatus->bestaetigtam))
|
||||
{
|
||||
//if statusgrund set - RTfreigabe, otherwise Stgfreigabe
|
||||
//if statusgrund set - freigegeben for Studiengang, otherwise freigegeben for RT
|
||||
if (isset($prestudentstatus->statusgrund_id))
|
||||
{
|
||||
if (isset($prestudentstatus->bezeichnung_statusgrund[0])
|
||||
@@ -1388,23 +1392,37 @@ class InfoCenter extends Auth_Controller
|
||||
$zgvpruefung->isRtFreigegeben = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//application priority change possible?
|
||||
$zgvpruefung->changeup = false;
|
||||
$zgvpruefung->changedown = false;
|
||||
//application priority change possible?
|
||||
$zgvpruefung->changeup = false;
|
||||
$zgvpruefung->changedown = false;
|
||||
$zgvpruefung->hasBewerber = false;
|
||||
|
||||
if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz == self::INTERESSENTSTATUS)
|
||||
{
|
||||
if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
|
||||
{
|
||||
$studiensemester = $zgvpruefung->prestudentstatus->studiensemester_kurzbz;
|
||||
$zgvpruefung->changeup = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, -1);
|
||||
$zgvpruefung->changedown = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, 1);
|
||||
}
|
||||
}
|
||||
if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz == self::INTERESSENTSTATUS)
|
||||
{
|
||||
if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
|
||||
{
|
||||
$studiensemester = $zgvpruefung->prestudentstatus->studiensemester_kurzbz;
|
||||
//show warning if there is already another bewerber (RT result already exists)
|
||||
$bewerber = $this->PersonModel->hasBewerber($person_id, $studiensemester, 'b');
|
||||
|
||||
$zgvpruefungen[] = $zgvpruefung;
|
||||
if (hasData($bewerber))
|
||||
{
|
||||
$bewerbercnt = getData($bewerber);
|
||||
|
||||
if (is_numeric($bewerbercnt[0]->anzahl_bewerber) && $bewerbercnt[0]->anzahl_bewerber > 0)
|
||||
{
|
||||
$zgvpruefung->hasBewerber = true;
|
||||
}
|
||||
}
|
||||
|
||||
$zgvpruefung->changeup = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, -1);
|
||||
$zgvpruefung->changedown = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, 1);
|
||||
}
|
||||
}
|
||||
|
||||
$zgvpruefungen[] = $zgvpruefung;
|
||||
}
|
||||
|
||||
$this->_sortPrestudents($zgvpruefungen);
|
||||
@@ -1523,9 +1541,10 @@ class InfoCenter extends Auth_Controller
|
||||
show_error(getError($prestudent));
|
||||
}
|
||||
|
||||
$person_id = $prestudent->retval[0]->person_id;
|
||||
$studiengang_kurzbz = $prestudent->retval[0]->studiengang;
|
||||
$studiengang_bezeichnung = $prestudent->retval[0]->studiengangbezeichnung;
|
||||
$prestudentdata = getData($prestudent);
|
||||
$person_id = $prestudentdata->person_id;
|
||||
$studiengang_kurzbz = $prestudentdata->studiengang;
|
||||
$studiengang_bezeichnung = $prestudentdata->studiengangbezeichnung;
|
||||
|
||||
return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz, 'studiengang_bezeichnung' => $studiengang_bezeichnung);
|
||||
}
|
||||
@@ -1568,7 +1587,8 @@ class InfoCenter extends Auth_Controller
|
||||
private function _sendFreigabeMail($prestudent_id)
|
||||
{
|
||||
//get data
|
||||
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id)->retval[0];
|
||||
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id);
|
||||
$prestudent = getData($prestudent);
|
||||
$prestudentstatus = $prestudent->prestudentstatus;
|
||||
$person_id = $prestudent->person_id;
|
||||
$person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval;
|
||||
|
||||
@@ -34,7 +34,7 @@ class MessageClient extends FHC_Controller
|
||||
public function read()
|
||||
{
|
||||
// Loads the view to read messages
|
||||
$this->load->view('system/messages/ajaxRead');
|
||||
$this->load->view('system/messages/ajaxRead', $this->CLMessagesModel->prepareAjaxRead());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -92,9 +92,9 @@ class Messages extends Auth_Controller
|
||||
*/
|
||||
public function parseMessageText()
|
||||
{
|
||||
$receiver_id = $this->input->get('receiver_id');
|
||||
$text = $this->input->get('text');
|
||||
$type = $this->input->get('type');
|
||||
$receiver_id = $this->input->post('receiver_id');
|
||||
$text = $this->input->post('text');
|
||||
$type = $this->input->post('type');
|
||||
|
||||
if ($type == Messages_model::TYPE_PERSONS)
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* This controller operates between (interface) the JS (GUI) and the FilterWidgetLib (back-end)
|
||||
* Provides data to the ajax get calls about the filter
|
||||
* Provides data to the ajax get calls about the filter widget
|
||||
* Accepts ajax post calls to change the filter data
|
||||
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
|
||||
* NOTE: extends the FHC_Controller instead of the Auth_Controller because the FilterWidget has its
|
||||
@@ -12,7 +12,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
*/
|
||||
class Filters extends FHC_Controller
|
||||
{
|
||||
const FILTER_UNIQUE_ID = 'filterUniqueId';
|
||||
const FILTER_UNIQUE_ID = 'filterUniqueId'; // Name of the filter widget unique id
|
||||
|
||||
/**
|
||||
* Calls the parent's constructor and loads the FilterWidgetLib
|
||||
|
||||
@@ -4,7 +4,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* This controller operates between (interface) the JS (GUI) and the tablewidgetlib (back-end)
|
||||
* Provides data to the ajax get calls about the filter
|
||||
* Provides data to the ajax get calls about the table widget
|
||||
* Accepts ajax post calls to change the filter data
|
||||
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
|
||||
* NOTE: extends the FHC_Controller instead of the Auth_Controller because the TableWidget has its
|
||||
@@ -12,7 +12,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
*/
|
||||
class Tables extends FHC_Controller
|
||||
{
|
||||
const TABLE_UNIQUE_ID = 'tableUniqueId';
|
||||
const TABLE_UNIQUE_ID = 'tableUniqueId'; // Name of the table widget unique id
|
||||
|
||||
/**
|
||||
* Calls the parent's constructor and loads the tablewidgetlib
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* This controller operates between (interface) the JS (GUI) and the UDFLib (back-end)
|
||||
* Provides data to the ajax get calls about the UDF widget
|
||||
* Accepts ajax post calls to save UDFs
|
||||
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
|
||||
* NOTE: extends the FHC_Controller instead of the Auth_Controller because the UDFWidget has its
|
||||
* own permissions check
|
||||
*/
|
||||
class UDF extends FHC_Controller
|
||||
{
|
||||
const UDF_UNIQUE_ID = 'udfUniqueId'; // Name of the udf widget unique id
|
||||
|
||||
/**
|
||||
* Calls the parent's constructor and loads the UDFLib
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Loads authentication library and starts authentication
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
// Loads the UDFLib with HTTP GET/POST parameters
|
||||
$this->_loadUDFLib();
|
||||
|
||||
// Checks if the caller is allow to use this UDF widget
|
||||
$this->_isAllowed();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Save data about the current UDFs and the result will be written on the output in JSON format
|
||||
*/
|
||||
public function saveUDFs()
|
||||
{
|
||||
$udfUniqueId = $this->input->post(self::UDF_UNIQUE_ID);
|
||||
$udfs = $this->input->post(UDFLib::UDFS_ARG_NAME);
|
||||
|
||||
if (!isEmptyString($udfs))
|
||||
{
|
||||
$jsonDecodedUDF = json_decode($udfs);
|
||||
if ($jsonDecodedUDF != null)
|
||||
{
|
||||
$this->outputJson($this->udflib->saveUDFs($udfUniqueId, $jsonDecodedUDF));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('No valid JSON format for UDF values');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('UDFUniqueId, schema, table name, primary key name and primary key value are mandatory paramenters');
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Checks if the user is allowed to use this UDFWidget
|
||||
*/
|
||||
private function _isAllowed()
|
||||
{
|
||||
if (!$this->udflib->isAllowed())
|
||||
{
|
||||
$this->terminateWithJsonError('You are not allowed to access to this content');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the UDFLib with the UDF_UNIQUE_ID parameter
|
||||
* If the parameter UDF_UNIQUE_ID is not given then the execution of the controller is terminated and
|
||||
* an error message is printed
|
||||
*/
|
||||
private function _loadUDFLib()
|
||||
{
|
||||
// If the parameter UDF_UNIQUE_ID is present in the HTTP GET or POST
|
||||
if (isset($_GET[self::UDF_UNIQUE_ID]) || isset($_POST[self::UDF_UNIQUE_ID]))
|
||||
{
|
||||
// If it is present in the HTTP GET
|
||||
if (isset($_GET[self::UDF_UNIQUE_ID]))
|
||||
{
|
||||
$udfUniqueId = $this->input->get(self::UDF_UNIQUE_ID); // is retrieved from the HTTP GET
|
||||
}
|
||||
elseif (isset($_POST[self::UDF_UNIQUE_ID])) // Else if it is present in the HTTP POST
|
||||
{
|
||||
$udfUniqueId = $this->input->post(self::UDF_UNIQUE_ID); // is retrieved from the HTTP POST
|
||||
}
|
||||
|
||||
// Loads the UDFLib that contains all the used logic
|
||||
$this->load->library('UDFLib');
|
||||
|
||||
$this->udflib->setUDFUniqueId($udfUniqueId);
|
||||
}
|
||||
else // Otherwise an error will be written in the output
|
||||
{
|
||||
$this->terminateWithJsonError('Parameter "'.self::UDF_UNIQUE_ID.'" not provided!');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,6 +60,20 @@ class DB_Model extends CI_Model
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* This method provides a way to setup a database model without declaring one that extends this class
|
||||
*/
|
||||
public function setup($schema, $table, $primaryKey, $hasSequence = true)
|
||||
{
|
||||
//
|
||||
if (!isEmptyString($schema) && !isEmptyString($table) && !isEmptyString($primaryKey) && is_bool($hasSequence))
|
||||
{
|
||||
$this->dbTable = $schema.'.'.$table;
|
||||
$this->pk = $primaryKey;
|
||||
$this->hasSequence = $hasSequence;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert Data into DB-Table
|
||||
*
|
||||
@@ -690,7 +704,7 @@ class DB_Model extends CI_Model
|
||||
*/
|
||||
public function hasUDF()
|
||||
{
|
||||
if($this->fieldExists(UDFLib::COLUMN_NAME))
|
||||
if ($this->fieldExists(UDFLib::COLUMN_NAME))
|
||||
{
|
||||
$resultUDFsDefinitions = $this->UDFModel->getUDFsDefinitions($this->dbTable);
|
||||
if (hasData($resultUDFsDefinitions))
|
||||
@@ -727,8 +741,8 @@ class DB_Model extends CI_Model
|
||||
$cleanedQuery = trim(preg_replace('/\t|\n|\r|;/', '', $query)); //
|
||||
|
||||
//
|
||||
if (stripos($cleanedQuery, 'SELECT') == 0
|
||||
&& (stripos($cleanedQuery, 'INSERT') > 0 || stripos($cleanedQuery, 'INSERT') == false)
|
||||
if (
|
||||
(stripos($cleanedQuery, 'INSERT') > 0 || stripos($cleanedQuery, 'INSERT') == false)
|
||||
&& (stripos($cleanedQuery, 'UPDATE') > 0 || stripos($cleanedQuery, 'UPDATE') == false)
|
||||
&& (stripos($cleanedQuery, 'CREATE') > 0 || stripos($cleanedQuery, 'CREATE') == false)
|
||||
&& (stripos($cleanedQuery, 'DELETE') > 0 || stripos($cleanedQuery, 'DELETE') == false)
|
||||
|
||||
@@ -69,6 +69,8 @@ function generateCSSsInclude($CSSs)
|
||||
*/
|
||||
function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod)
|
||||
{
|
||||
$user_language = getUserLanguage();
|
||||
|
||||
$toPrint = "\n";
|
||||
$toPrint .= '<script type="text/javascript">';
|
||||
$toPrint .= '
|
||||
|
||||
@@ -35,6 +35,12 @@ function getUserLanguage($language = null)
|
||||
{
|
||||
$language = $_SESSION[LANG_SESSION_CURRENT_LANGUAGE]; // then use it
|
||||
}
|
||||
// Else if the language is present in the cookie and it is valid
|
||||
elseif (isset($_COOKIE[LANG_SESSION_CURRENT_LANGUAGE]) && !isEmptyString($_COOKIE[LANG_SESSION_CURRENT_LANGUAGE]))
|
||||
{
|
||||
$language = $_COOKIE[LANG_SESSION_CURRENT_LANGUAGE];
|
||||
}
|
||||
|
||||
// Otherwise checks if the user is authenticated to retrieve the users's language
|
||||
// NOTE: this helper could be called when the user is NOT logged in the system
|
||||
// therefore is checked if the user is logged
|
||||
|
||||
@@ -89,7 +89,7 @@ function _parseMailContent($vorlage_kurzbz, $vorlage_data)
|
||||
$ci =& get_instance();
|
||||
$ci->load->library('VorlageLib');
|
||||
|
||||
$result = $ci->vorlagelib->getVorlagetextByVorlage($vorlage_kurzbz);
|
||||
$result = $ci->vorlagelib->loadVorlagetext($vorlage_kurzbz);
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
|
||||
@@ -15,6 +15,7 @@ class MessageLib
|
||||
const CFG_OU_RECEIVERS = 'ou_receivers';
|
||||
const CFG_OU_RECEIVERS_NO_NOTICE = 'ou_receivers_no_notice';
|
||||
const CFG_OU_RECEIVERS_PRIVATE = 'ou_receivers_private';
|
||||
const CFG_OU_FUNCTION_WHITELIST = 'ou_function_whitelist';
|
||||
const CFG_REDIRECT_VIEW_MESSAGE_URL = 'redirect_view_message_url';
|
||||
|
||||
// Templates names
|
||||
@@ -229,7 +230,14 @@ class MessageLib
|
||||
$ouArray = array();
|
||||
|
||||
// Copies organisation units in $ouArray array
|
||||
foreach (getData($benutzer) as $val) $ouArray[] = $val->oe_kurzbz;
|
||||
foreach (getData($benutzer) as $val)
|
||||
{
|
||||
// If the function is in the white list then get the organisation unit
|
||||
if (in_array($val->funktion_kurzbz, $this->_ci->config->item(self::CFG_OU_FUNCTION_WHITELIST)))
|
||||
{
|
||||
$ouArray[] = $val->oe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
return success($ouArray);
|
||||
}
|
||||
|
||||
+284
-119
@@ -3,15 +3,20 @@
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Library to manage UDF
|
||||
* Library to manage UDFs
|
||||
*/
|
||||
class UDFLib
|
||||
{
|
||||
const WIDGET_NAME = 'UDFWidget';
|
||||
const SCHEMA_ARG_NAME = 'schema';
|
||||
const TABLE_ARG_NAME = 'table';
|
||||
const FIELD_ARG_NAME = 'field';
|
||||
const UDFS_ARG_NAME = 'udfs';
|
||||
const UDF_UNIQUE_ID = 'udfUniqueId'; // Name of the UDF widget unique id
|
||||
|
||||
const SESSION_NAME = 'FHC_UDF_WIDGET'; // Name of the session area used for UDFs
|
||||
|
||||
// Parameters names
|
||||
const WIDGET_NAME = 'UDFWidget'; // UDFWidget name
|
||||
const SCHEMA_ARG_NAME = 'schema'; // Schema parameter name
|
||||
const TABLE_ARG_NAME = 'table'; // Table parameter name
|
||||
const FIELD_ARG_NAME = 'field'; // Field parameter name
|
||||
const UDFS_ARG_NAME = 'udfs'; // UDFs parameter name
|
||||
|
||||
// UDF json schema attributes
|
||||
const NAME = 'name'; // UDF name attribute
|
||||
@@ -22,6 +27,16 @@ class UDFLib
|
||||
const FE_REGEX_LANGUAGE = 'js'; // UDF javascript regex language attribute (front end)
|
||||
const BE_REGEX_LANGUAGE = 'php'; // UDF php regex language attribute (back end)
|
||||
|
||||
// ...to specify permissions that are needed to use this TableWidget
|
||||
const REQUIRED_PERMISSIONS_PARAMETER = 'requiredPermissions';
|
||||
|
||||
// ...to specify the primary key name and value
|
||||
const PRIMARY_KEY_NAME = 'primaryKeyName';
|
||||
const PRIMARY_KEY_VALUE = 'primaryKeyValue';
|
||||
|
||||
const PERMISSION_TABLE_METHOD = 'UDFWidget'; // Name for fake method to be checked by the PermissionLib
|
||||
const PERMISSION_TYPE = 'rw';
|
||||
|
||||
// HTML components
|
||||
const LABEL = 'title';
|
||||
const TITLE = 'description';
|
||||
@@ -47,8 +62,10 @@ class UDFLib
|
||||
|
||||
private $_ci; // Code igniter instance
|
||||
|
||||
private $_udfUniqueId; // Property that contains the UDF widget unique id
|
||||
|
||||
/**
|
||||
* Loads fhc helper
|
||||
* Gets CI instance
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
@@ -63,8 +80,8 @@ class UDFLib
|
||||
*/
|
||||
public function UDFWidget($args, $htmlArgs = array())
|
||||
{
|
||||
if ((isset($args[UDFLib::SCHEMA_ARG_NAME]) && !isEmptyString($args[UDFLib::SCHEMA_ARG_NAME]))
|
||||
&& (isset($args[UDFLib::TABLE_ARG_NAME]) && !isEmptyString($args[UDFLib::TABLE_ARG_NAME])))
|
||||
if ((isset($args[self::SCHEMA_ARG_NAME]) && !isEmptyString($args[self::SCHEMA_ARG_NAME]))
|
||||
&& (isset($args[self::TABLE_ARG_NAME]) && !isEmptyString($args[self::TABLE_ARG_NAME])))
|
||||
{
|
||||
// Loads the widget library
|
||||
$this->_ci->load->library('WidgetLib');
|
||||
@@ -73,26 +90,26 @@ class UDFLib
|
||||
loadResource(APPPATH.'widgets/udf');
|
||||
|
||||
// Default external block is true
|
||||
if (!isset($args[UDFLib::FIELD_ARG_NAME]) && !isset($htmlArgs[HTMLWidget::EXTERNAL_BLOCK]))
|
||||
if (!isset($args[self::FIELD_ARG_NAME]) && !isset($htmlArgs[HTMLWidget::EXTERNAL_BLOCK]))
|
||||
{
|
||||
$htmlArgs[HTMLWidget::EXTERNAL_BLOCK] = true;
|
||||
}
|
||||
|
||||
return $this->_ci->widgetlib->widget(
|
||||
UDFLib::WIDGET_NAME,
|
||||
self::WIDGET_NAME,
|
||||
$args,
|
||||
$htmlArgs
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isset($args[UDFLib::SCHEMA_ARG_NAME]) || isEmptyString($args[UDFLib::SCHEMA_ARG_NAME]))
|
||||
if (!isset($args[self::SCHEMA_ARG_NAME]) || isEmptyString($args[self::SCHEMA_ARG_NAME]))
|
||||
{
|
||||
show_error(UDFLib::SCHEMA_ARG_NAME.' parameter is missing!');
|
||||
show_error(self::SCHEMA_ARG_NAME.' parameter is missing!');
|
||||
}
|
||||
if (!isset($args[UDFLib::TABLE_ARG_NAME]) || isEmptyString($args[UDFLib::TABLE_ARG_NAME]))
|
||||
if (!isset($args[self::TABLE_ARG_NAME]) || isEmptyString($args[self::TABLE_ARG_NAME]))
|
||||
{
|
||||
show_error(UDFLib::TABLE_ARG_NAME.' parameter is missing!');
|
||||
show_error(self::TABLE_ARG_NAME.' parameter is missing!');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -105,12 +122,12 @@ class UDFLib
|
||||
*/
|
||||
public function displayUDFWidget(&$widgetData)
|
||||
{
|
||||
$schema = $widgetData[UDFLib::SCHEMA_ARG_NAME]; // schema attribute
|
||||
$table = $widgetData[UDFLib::TABLE_ARG_NAME]; // table attribute
|
||||
$schema = $widgetData[self::SCHEMA_ARG_NAME]; // schema attribute
|
||||
$table = $widgetData[self::TABLE_ARG_NAME]; // table attribute
|
||||
|
||||
if (isset($widgetData[UDFLib::FIELD_ARG_NAME]))
|
||||
if (isset($widgetData[self::FIELD_ARG_NAME]))
|
||||
{
|
||||
$field = $widgetData[UDFLib::FIELD_ARG_NAME]; // UDF name
|
||||
$field = $widgetData[self::FIELD_ARG_NAME]; // UDF name
|
||||
}
|
||||
|
||||
$udfResults = $this->_loadUDF($schema, $table); // loads UDF definition
|
||||
@@ -122,6 +139,9 @@ class UDFLib
|
||||
$jsonSchemas = json_decode($udf->jsons); // decode the json schema
|
||||
if (is_object($jsonSchemas) || is_array($jsonSchemas))
|
||||
{
|
||||
//
|
||||
$this->_printStartUDFBlock($widgetData);
|
||||
|
||||
// If the schema is an object then convert it into an array
|
||||
if (is_object($jsonSchemas))
|
||||
{
|
||||
@@ -140,18 +160,18 @@ class UDFLib
|
||||
foreach ($jsonSchemasArray as $jsonSchema)
|
||||
{
|
||||
// If the type property is not present then show an error
|
||||
if (!isset($jsonSchema->{UDFLib::TYPE}))
|
||||
if (!isset($jsonSchema->{self::TYPE}))
|
||||
{
|
||||
show_error(sprintf('%s.%s: Attribute "type" not present in the json schema', $schema, $table));
|
||||
}
|
||||
// If the name property is not present then show an error
|
||||
if (!isset($jsonSchema->{UDFLib::NAME}))
|
||||
if (!isset($jsonSchema->{self::NAME}))
|
||||
{
|
||||
show_error(sprintf('%s.%s: Attribute "name" not present in the json schema', $schema, $table));
|
||||
}
|
||||
|
||||
// If a UDF is specified and is present in the json schemas list or no UDF is specified
|
||||
if ((isset($field) && $field == $jsonSchema->{UDFLib::NAME}) || !isset($field))
|
||||
if ((isset($field) && $field == $jsonSchema->{self::NAME}) || !isset($field))
|
||||
{
|
||||
// Set attributes using phrases
|
||||
$this->_setAttributesWithPhrases($jsonSchema, $widgetData[HTMLWidget::HTML_ARG_NAME]);
|
||||
@@ -166,7 +186,7 @@ class UDFLib
|
||||
$this->_render($jsonSchema, $widgetData);
|
||||
|
||||
// If a UDf is specified and it was found then stop looking through this list
|
||||
if (isset($field) && $field == $jsonSchema->{UDFLib::NAME})
|
||||
if (isset($field) && $field == $jsonSchema->{self::NAME})
|
||||
{
|
||||
$found = true;
|
||||
break;
|
||||
@@ -179,6 +199,9 @@ class UDFLib
|
||||
{
|
||||
show_error(sprintf('%s.%s: No schema present for field: %s', $schema, $table, $field));
|
||||
}
|
||||
|
||||
//
|
||||
$this->_printEndUDFBlock();
|
||||
}
|
||||
else // not a valid schema
|
||||
{
|
||||
@@ -218,7 +241,7 @@ class UDFLib
|
||||
|
||||
// Decodes json that define the UDFs for this table
|
||||
$decodedUDFDefinitions = json_decode(
|
||||
$resultUDFsDefinitions->retval[0]->{UDFLib::COLUMN_JSON_DESCRIPTION}
|
||||
$resultUDFsDefinitions->retval[0]->{self::COLUMN_JSON_DESCRIPTION}
|
||||
);
|
||||
|
||||
// Loops through the UDFs definitions
|
||||
@@ -232,28 +255,28 @@ class UDFLib
|
||||
$tmpValidate = success(true); // temporary variable used to store the returned value from _validateUDFs
|
||||
|
||||
// If this is the definition of this UDF
|
||||
if ($decodedUDFDefinition->{UDFLib::NAME} == $key)
|
||||
if ($decodedUDFDefinition->{self::NAME} == $key)
|
||||
{
|
||||
if (isset($decodedUDFDefinition->{UDFLib::VALIDATION})) // If validation rules are present for this UDF
|
||||
if (isset($decodedUDFDefinition->{self::VALIDATION})) // If validation rules are present for this UDF
|
||||
{
|
||||
// Checks if the given UDF is required and the result will be stored in $chkRequiredPassed
|
||||
// If $chkRequiredPassed == true => required check passed
|
||||
// If $chkRequiredPassed == false => required check NOT passed
|
||||
$chkRequiredPassed = true;
|
||||
// If required property is present in the UDF description and it is true
|
||||
if (isset($decodedUDFDefinition->{UDFLib::VALIDATION}->{UDFLib::REQUIRED})
|
||||
&& $decodedUDFDefinition->{UDFLib::VALIDATION}->{UDFLib::REQUIRED} === true)
|
||||
if (isset($decodedUDFDefinition->{self::VALIDATION}->{self::REQUIRED})
|
||||
&& $decodedUDFDefinition->{self::VALIDATION}->{self::REQUIRED} === true)
|
||||
{
|
||||
// If this UDF is a checkbox and the given value is false
|
||||
// OR
|
||||
// if this UDF is NOT a checkbox and the given value is null
|
||||
if (($decodedUDFDefinition->{UDFLib::TYPE} == UDFLib::CHKBOX_TYPE && $val === false)
|
||||
|| ($decodedUDFDefinition->{UDFLib::TYPE} != UDFLib::CHKBOX_TYPE && $val == null))
|
||||
// if this UD7F is NOT a checkbox and the given value is null
|
||||
if (($decodedUDFDefinition->{self::TYPE} == self::CHKBOX_TYPE && $val === false)
|
||||
|| ($decodedUDFDefinition->{self::TYPE} != self::CHKBOX_TYPE && $val == null))
|
||||
{
|
||||
$chkRequiredPassed = false; // not passed
|
||||
// A new error is generated and added to array $requiredUDFsArray
|
||||
$requiredUDFsArray[$decodedUDFDefinition->{UDFLib::NAME}] = error(
|
||||
$decodedUDFDefinition->{UDFLib::NAME},
|
||||
$requiredUDFsArray[$decodedUDFDefinition->{self::NAME}] = error(
|
||||
$decodedUDFDefinition->{self::NAME},
|
||||
EXIT_VALIDATION_UDF_REQUIRED
|
||||
);
|
||||
}
|
||||
@@ -267,22 +290,22 @@ class UDFLib
|
||||
// If $toBeValidated == false => validation is NOT performed
|
||||
$toBeValidated = false;
|
||||
// If this UDF is NOT a checkbox
|
||||
if ($decodedUDFDefinition->{UDFLib::TYPE} != UDFLib::CHKBOX_TYPE)
|
||||
if ($decodedUDFDefinition->{self::TYPE} != self::CHKBOX_TYPE)
|
||||
{
|
||||
// If required property is NOT present in the UDF description
|
||||
if (!isset($decodedUDFDefinition->{UDFLib::VALIDATION}->{UDFLib::REQUIRED}))
|
||||
if (!isset($decodedUDFDefinition->{self::VALIDATION}->{self::REQUIRED}))
|
||||
{
|
||||
$toBeValidated = true;
|
||||
}
|
||||
// If required property is present in the UDF description and it is true
|
||||
if (isset($decodedUDFDefinition->{UDFLib::VALIDATION}->{UDFLib::REQUIRED})
|
||||
&& $decodedUDFDefinition->{UDFLib::VALIDATION}->{UDFLib::REQUIRED} === true)
|
||||
if (isset($decodedUDFDefinition->{self::VALIDATION}->{self::REQUIRED})
|
||||
&& $decodedUDFDefinition->{self::VALIDATION}->{self::REQUIRED} === true)
|
||||
{
|
||||
$toBeValidated = true;
|
||||
}
|
||||
// If required property is present in the UDF description and it is true and the given value is null
|
||||
if (isset($decodedUDFDefinition->{UDFLib::VALIDATION}->{UDFLib::REQUIRED})
|
||||
&& $decodedUDFDefinition->{UDFLib::VALIDATION}->{UDFLib::REQUIRED} === false
|
||||
if (isset($decodedUDFDefinition->{self::VALIDATION}->{self::REQUIRED})
|
||||
&& $decodedUDFDefinition->{self::VALIDATION}->{self::REQUIRED} === false
|
||||
&& $val != null)
|
||||
{
|
||||
$toBeValidated = true;
|
||||
@@ -292,8 +315,8 @@ class UDFLib
|
||||
if ($toBeValidated === true) // Checks if validation should be performed
|
||||
{
|
||||
$tmpValidate = $this->_validateUDFs(
|
||||
$decodedUDFDefinition->{UDFLib::VALIDATION},
|
||||
$decodedUDFDefinition->{UDFLib::NAME},
|
||||
$decodedUDFDefinition->{self::VALIDATION},
|
||||
$decodedUDFDefinition->{self::NAME},
|
||||
$val
|
||||
);
|
||||
}
|
||||
@@ -341,7 +364,7 @@ class UDFLib
|
||||
if ($encodedToBeStoredUDFs !== false) // if encode was ok
|
||||
{
|
||||
// Save the supplied UDFs values
|
||||
$data[UDFLib::COLUMN_NAME] = $encodedToBeStoredUDFs;
|
||||
$data[self::COLUMN_NAME] = $encodedToBeStoredUDFs;
|
||||
}
|
||||
}
|
||||
else // otherwise the returning value will be the list of UDFs validation errors
|
||||
@@ -360,8 +383,8 @@ class UDFLib
|
||||
{
|
||||
$isUDFColumn = false;
|
||||
|
||||
if (substr($columnName, 0, strlen(UDFLib::COLUMN_PREFIX)) == UDFLib::COLUMN_PREFIX
|
||||
&& $columnType == UDFLib::COLUMN_TYPE)
|
||||
if (substr($columnName, 0, strlen(self::COLUMN_PREFIX)) == self::COLUMN_PREFIX
|
||||
&& $columnType == self::COLUMN_TYPE)
|
||||
{
|
||||
$isUDFColumn = true;
|
||||
}
|
||||
@@ -369,9 +392,151 @@ class UDFLib
|
||||
return $isUDFColumn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the _udfUniqueId property
|
||||
*/
|
||||
public function setUDFUniqueId($udfUniqueId)
|
||||
{
|
||||
$this->_udfUniqueId = $udfUniqueId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an unique string that identify this UDF widget
|
||||
* NOTE: The default value is the URI where the FilterWidget is called
|
||||
* If the fhc_controller_id is present then is also used
|
||||
*/
|
||||
public function setUDFUniqueIdByParams($params)
|
||||
{
|
||||
if ($params != null
|
||||
&& is_array($params)
|
||||
&& isset($params[self::UDF_UNIQUE_ID])
|
||||
&& !isEmptyString($params[self::UDF_UNIQUE_ID]))
|
||||
{
|
||||
$udfUniqueId = $this->_ci->router->directory.$this->_ci->router->class.'/'.
|
||||
$this->_ci->router->method.'/'.
|
||||
$params[self::UDF_UNIQUE_ID];
|
||||
|
||||
$this->setUDFUniqueId($udfUniqueId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper method to the session helper funtions to retrieve the whole session for this UDF widget
|
||||
*/
|
||||
public function getSession()
|
||||
{
|
||||
return getSessionElement(self::SESSION_NAME, $this->_udfUniqueId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper method to the session helper funtions to retrieve one element from the session of this UDF widget
|
||||
*/
|
||||
public function getSessionElement($name)
|
||||
{
|
||||
$session = getSessionElement(self::SESSION_NAME, $this->_udfUniqueId);
|
||||
|
||||
if (isset($session[$name]))
|
||||
{
|
||||
return $session[$name];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper method to the session helper funtions to set the whole session for this UDF widget
|
||||
*/
|
||||
public function setSession($data)
|
||||
{
|
||||
setSessionElement(self::SESSION_NAME, $this->_udfUniqueId, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper method to the session helper funtions to set one element in the session for this UDF widget
|
||||
*/
|
||||
public function setSessionElement($name, $value)
|
||||
{
|
||||
$session = getSessionElement(self::SESSION_NAME, $this->_udfUniqueId);
|
||||
|
||||
$session[$name] = $value;
|
||||
|
||||
setSessionElement(self::SESSION_NAME, $this->_udfUniqueId, $session); // stores the single value
|
||||
}
|
||||
|
||||
/**
|
||||
* Save UDFs
|
||||
*/
|
||||
public function saveUDFs($udfUniqueId, $udfs)
|
||||
{
|
||||
// Read the all session for this udf widget
|
||||
$session = $this->getSession();
|
||||
|
||||
// If session is empty then return an error
|
||||
if ($session == null) return error('No UDFWidget loaded');
|
||||
|
||||
// Workaround to load CI
|
||||
$this->_ci->load->model('system/UDF_model', 'UDFModel');
|
||||
|
||||
// Initialize a new DB_Model
|
||||
$dbModel = new DB_Model();
|
||||
|
||||
// Setup the new dbModel object with...
|
||||
$dbModel->setup(
|
||||
$session[self::SCHEMA_ARG_NAME], // ... schema...
|
||||
$session[self::TABLE_ARG_NAME], // ...table...
|
||||
$session[self::PRIMARY_KEY_NAME] // ...and primary key name
|
||||
);
|
||||
|
||||
// Returns the result of the database update operation to save UDFs
|
||||
return $dbModel->update(
|
||||
array($session[self::PRIMARY_KEY_NAME] => $session[self::PRIMARY_KEY_VALUE]),
|
||||
(array)$udfs
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if at least one of the permissions given as parameter (requiredPermissions) belongs
|
||||
* to the authenticated user, if confirmed then is allowed to use this UDFWidget.
|
||||
* If the parameter requiredPermissions is NOT given or is not present in the session,
|
||||
* then NO one is allow to use this UDFWidget
|
||||
* Wrapper method to permissionlib->hasAtLeastOne
|
||||
*/
|
||||
public function isAllowed($requiredPermissions = null)
|
||||
{
|
||||
$this->_ci->load->library('PermissionLib'); // Load permission library
|
||||
|
||||
// Gets the required permissions from the session if they are not provided as parameter
|
||||
$rq = $requiredPermissions;
|
||||
if ($rq == null) $rq = $this->getSessionElement(self::REQUIRED_PERMISSIONS_PARAMETER);
|
||||
|
||||
return $this->_ci->permissionlib->hasAtLeastOne($rq, self::PERMISSION_TABLE_METHOD, self::PERMISSION_TYPE);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Print the block for UDFs
|
||||
*/
|
||||
private function _printStartUDFBlock($widgetData)
|
||||
{
|
||||
$startBlock = '<div type="%s" udfUniqueId="%s">'."\n";
|
||||
|
||||
echo sprintf(
|
||||
$startBlock,
|
||||
self::WIDGET_NAME,
|
||||
$widgetData[self::UDF_UNIQUE_ID]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the end of the UDFs block
|
||||
*/
|
||||
private function _printEndUDFBlock()
|
||||
{
|
||||
echo '</div>'."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Move UDFs from $data to $UDFs
|
||||
*/
|
||||
@@ -381,7 +546,7 @@ class UDFLib
|
||||
|
||||
foreach ($data as $key => $val)
|
||||
{
|
||||
if (substr($key, 0, 4) == UDFLib::COLUMN_PREFIX)
|
||||
if (substr($key, 0, 4) == self::COLUMN_PREFIX)
|
||||
{
|
||||
$udfsParameters[$key] = $val; // stores UDF value into property UDFs
|
||||
unset($data[$key]); // remove from data
|
||||
@@ -416,8 +581,8 @@ class UDFLib
|
||||
{
|
||||
// If min value attribute is present in the validation for this UDF,
|
||||
// then checks if the value of this UDF is compliant to this attribute
|
||||
if (isset($decodedUDFValidation->{UDFLib::MIN_VALUE})
|
||||
&& $udfVal < $decodedUDFValidation->{UDFLib::MIN_VALUE})
|
||||
if (isset($decodedUDFValidation->{self::MIN_VALUE})
|
||||
&& $udfVal < $decodedUDFValidation->{self::MIN_VALUE})
|
||||
{
|
||||
// validation is failed and the error is stored in $returnArrayValidation
|
||||
$returnArrayValidation[] = error($udfName, EXIT_VALIDATION_UDF_MIN_VALUE);
|
||||
@@ -425,8 +590,8 @@ class UDFLib
|
||||
|
||||
// If max value attribute is present in the validation for this UDF,
|
||||
// then checks if the value of this UDF is compliant to this attribute
|
||||
if (isset($decodedUDFValidation->{UDFLib::MAX_VALUE})
|
||||
&& $udfVal > $decodedUDFValidation->{UDFLib::MAX_VALUE})
|
||||
if (isset($decodedUDFValidation->{self::MAX_VALUE})
|
||||
&& $udfVal > $decodedUDFValidation->{self::MAX_VALUE})
|
||||
{
|
||||
// validation is failed and the error is stored in $returnArrayValidation
|
||||
$returnArrayValidation[] = error($udfName, EXIT_VALIDATION_UDF_MAX_VALUE);
|
||||
@@ -436,8 +601,8 @@ class UDFLib
|
||||
$strUdfVal = strval($udfVal); // store in $strUdfVal the string conversion of $udfVal
|
||||
// If min length attribute is present in the validation for this UDF,
|
||||
// then checks if the value of this UDF is compliant to this attribute
|
||||
if (isset($decodedUDFValidation->{UDFLib::MIN_LENGTH}) && isset($strUdfVal)
|
||||
&& strlen($strUdfVal) < $decodedUDFValidation->{UDFLib::MIN_LENGTH})
|
||||
if (isset($decodedUDFValidation->{self::MIN_LENGTH}) && isset($strUdfVal)
|
||||
&& strlen($strUdfVal) < $decodedUDFValidation->{self::MIN_LENGTH})
|
||||
{
|
||||
// validation is failed and the error is stored in $returnArrayValidation
|
||||
$returnArrayValidation[] = error($udfName, EXIT_VALIDATION_UDF_MIN_LENGTH);
|
||||
@@ -445,8 +610,8 @@ class UDFLib
|
||||
|
||||
// If max length attribute is present in the validation for this UDF,
|
||||
// then checks if the value of this UDF is compliant to this attribute
|
||||
if (isset($decodedUDFValidation->{UDFLib::MAX_LENGTH}) && isset($strUdfVal)
|
||||
&& strlen($strUdfVal) > $decodedUDFValidation->{UDFLib::MAX_LENGTH})
|
||||
if (isset($decodedUDFValidation->{self::MAX_LENGTH}) && isset($strUdfVal)
|
||||
&& strlen($strUdfVal) > $decodedUDFValidation->{self::MAX_LENGTH})
|
||||
{
|
||||
// validation is failed and the error is stored in $returnArrayValidation
|
||||
$returnArrayValidation[] = error($udfName, EXIT_VALIDATION_UDF_MAX_LENGTH);
|
||||
@@ -457,12 +622,12 @@ class UDFLib
|
||||
{
|
||||
// Search for a php regular expression in the validation of this UDF, if one is found
|
||||
// then checks if the value of this UDF is compliant to this attribute
|
||||
if (isset($decodedUDFValidation->{UDFLib::REGEX})
|
||||
&& is_array($decodedUDFValidation->{UDFLib::REGEX}))
|
||||
if (isset($decodedUDFValidation->{self::REGEX})
|
||||
&& is_array($decodedUDFValidation->{self::REGEX}))
|
||||
{
|
||||
foreach ($decodedUDFValidation->{UDFLib::REGEX} as $regexIndx => $regex)
|
||||
foreach ($decodedUDFValidation->{self::REGEX} as $regexIndx => $regex)
|
||||
{
|
||||
if ($regex->language == UDFLib::BE_REGEX_LANGUAGE)
|
||||
if ($regex->language == self::BE_REGEX_LANGUAGE)
|
||||
{
|
||||
if (preg_match($regex->expression, $udfVal) != 1)
|
||||
{
|
||||
@@ -494,8 +659,8 @@ class UDFLib
|
||||
*/
|
||||
private function _setNameAndId($jsonSchema, &$htmlParameters)
|
||||
{
|
||||
$htmlParameters[HTMLWidget::HTML_ID] = $jsonSchema->{UDFLib::NAME};
|
||||
$htmlParameters[HTMLWidget::HTML_NAME] = $jsonSchema->{UDFLib::NAME};
|
||||
$htmlParameters[HTMLWidget::HTML_ID] = $jsonSchema->{self::NAME};
|
||||
$htmlParameters[HTMLWidget::HTML_NAME] = $jsonSchema->{self::NAME};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -504,20 +669,20 @@ class UDFLib
|
||||
private function _sortJsonSchemas(&$jsonSchemasArray)
|
||||
{
|
||||
usort($jsonSchemasArray, function ($a, $b) {
|
||||
if (!isset($a->{UDFLib::SORT}))
|
||||
if (!isset($a->{self::SORT}))
|
||||
{
|
||||
$a->{UDFLib::SORT} = 9999;
|
||||
$a->{self::SORT} = 9999;
|
||||
}
|
||||
if (!isset($b->{UDFLib::SORT}))
|
||||
if (!isset($b->{self::SORT}))
|
||||
{
|
||||
$b->{UDFLib::SORT} = 9999;
|
||||
$b->{self::SORT} = 9999;
|
||||
}
|
||||
if ($a->{UDFLib::SORT} == $b->{UDFLib::SORT})
|
||||
if ($a->{self::SORT} == $b->{self::SORT})
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ($a->{UDFLib::SORT} < $b->{UDFLib::SORT}) ? -1 : 1;
|
||||
return ($a->{self::SORT} < $b->{self::SORT}) ? -1 : 1;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -565,32 +730,32 @@ class UDFLib
|
||||
private function _render($jsonSchema, &$widgetData)
|
||||
{
|
||||
// Checkbox
|
||||
if ($jsonSchema->{UDFLib::TYPE} == 'checkbox')
|
||||
if ($jsonSchema->{self::TYPE} == 'checkbox')
|
||||
{
|
||||
$this->_renderCheckbox($jsonSchema, $widgetData);
|
||||
}
|
||||
// Textfield
|
||||
elseif ($jsonSchema->{UDFLib::TYPE} == 'textfield')
|
||||
elseif ($jsonSchema->{self::TYPE} == 'textfield')
|
||||
{
|
||||
$this->_renderTextfield($jsonSchema, $widgetData);
|
||||
}
|
||||
// Textarea
|
||||
elseif ($jsonSchema->{UDFLib::TYPE} == 'textarea')
|
||||
elseif ($jsonSchema->{self::TYPE} == 'textarea')
|
||||
{
|
||||
$this->_renderTextarea($jsonSchema, $widgetData);
|
||||
}
|
||||
// Date
|
||||
elseif ($jsonSchema->{UDFLib::TYPE} == 'date')
|
||||
elseif ($jsonSchema->{self::TYPE} == 'date')
|
||||
{
|
||||
// To be done
|
||||
}
|
||||
// Dropdown
|
||||
elseif ($jsonSchema->{UDFLib::TYPE} == 'dropdown')
|
||||
elseif ($jsonSchema->{self::TYPE} == 'dropdown')
|
||||
{
|
||||
$this->_renderDropdown($jsonSchema, $widgetData);
|
||||
}
|
||||
// Multiple dropdown
|
||||
elseif ($jsonSchema->{UDFLib::TYPE} == 'multipledropdown')
|
||||
elseif ($jsonSchema->{self::TYPE} == 'multipledropdown')
|
||||
{
|
||||
$this->_renderDropdown($jsonSchema, $widgetData, true);
|
||||
}
|
||||
@@ -602,29 +767,29 @@ class UDFLib
|
||||
private function _renderDropdown($jsonSchema, &$widgetData, $multiple = false)
|
||||
{
|
||||
// Selected element/s
|
||||
if (isset($widgetData[UDFLib::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}]))
|
||||
if (isset($widgetData[self::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}]))
|
||||
{
|
||||
$widgetData[DropdownWidget::SELECTED_ELEMENT] = $widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}];
|
||||
$widgetData[DropdownWidget::SELECTED_ELEMENT] = $widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}];
|
||||
}
|
||||
else
|
||||
{
|
||||
$widgetData[DropdownWidget::SELECTED_ELEMENT] = null;
|
||||
}
|
||||
|
||||
$dropdownWidgetUDF = new DropdownWidgetUDF(UDFLib::WIDGET_NAME, $widgetData);
|
||||
$dropdownWidgetUDF = new DropdownWidgetUDF(self::WIDGET_NAME, $widgetData);
|
||||
$parameters = array();
|
||||
|
||||
// If the list of values to show is an array
|
||||
if (isset($jsonSchema->{UDFLib::LIST_VALUES}->enum))
|
||||
if (isset($jsonSchema->{self::LIST_VALUES}->enum))
|
||||
{
|
||||
$parameters = $jsonSchema->{UDFLib::LIST_VALUES}->enum;
|
||||
$parameters = $jsonSchema->{self::LIST_VALUES}->enum;
|
||||
}
|
||||
// If the list of values to show should be retrieved with a SQL statement
|
||||
elseif (isset($jsonSchema->{UDFLib::LIST_VALUES}->sql))
|
||||
elseif (isset($jsonSchema->{self::LIST_VALUES}->sql))
|
||||
{
|
||||
// UDFModel is loaded in method _loadUDF that is called before the current method
|
||||
$queryResult = $this->_ci->UDFModel->execReadOnlyQuery($jsonSchema->{UDFLib::LIST_VALUES}->sql);
|
||||
$queryResult = $this->_ci->UDFModel->execReadOnlyQuery($jsonSchema->{self::LIST_VALUES}->sql);
|
||||
if (hasData($queryResult))
|
||||
{
|
||||
$parameters = $queryResult->retval;
|
||||
@@ -645,13 +810,13 @@ class UDFLib
|
||||
private function _renderTextarea($jsonSchema, &$widgetData)
|
||||
{
|
||||
$text = null; // text value
|
||||
$textareaUDF = new TextareaWidgetUDF(UDFLib::WIDGET_NAME, $widgetData);
|
||||
$textareaUDF = new TextareaWidgetUDF(self::WIDGET_NAME, $widgetData);
|
||||
|
||||
// Set text value if present in the DB
|
||||
if (isset($widgetData[UDFLib::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}]))
|
||||
if (isset($widgetData[self::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}]))
|
||||
{
|
||||
$text = $widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}];
|
||||
$text = $widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}];
|
||||
}
|
||||
|
||||
$textareaUDF->render($text);
|
||||
@@ -663,13 +828,13 @@ class UDFLib
|
||||
private function _renderTextfield($jsonSchema, &$widgetData)
|
||||
{
|
||||
$text = null; // text value
|
||||
$textareaUDF = new TextfieldWidgetUDF(UDFLib::WIDGET_NAME, $widgetData);
|
||||
$textareaUDF = new TextfieldWidgetUDF(self::WIDGET_NAME, $widgetData);
|
||||
|
||||
// Set text value if present in the DB
|
||||
if (isset($widgetData[UDFLib::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}]))
|
||||
if (isset($widgetData[self::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}]))
|
||||
{
|
||||
$text = $widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}];
|
||||
$text = $widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}];
|
||||
}
|
||||
|
||||
$textareaUDF->render($text);
|
||||
@@ -681,17 +846,17 @@ class UDFLib
|
||||
private function _renderCheckbox($jsonSchema, &$widgetData)
|
||||
{
|
||||
// Set checkbox value if present in the DB
|
||||
if (isset($widgetData[UDFLib::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}]))
|
||||
if (isset($widgetData[self::UDFS_ARG_NAME])
|
||||
&& isset($widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}]))
|
||||
{
|
||||
$widgetData[CheckboxWidget::VALUE_FIELD] = $widgetData[UDFLib::UDFS_ARG_NAME][$jsonSchema->{UDFLib::NAME}];
|
||||
$widgetData[CheckboxWidget::VALUE_FIELD] = $widgetData[self::UDFS_ARG_NAME][$jsonSchema->{self::NAME}];
|
||||
}
|
||||
else
|
||||
{
|
||||
$widgetData[CheckboxWidget::VALUE_FIELD] = CheckboxWidget::HTML_DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
$checkboxWidgetUDF = new CheckboxWidgetUDF(UDFLib::WIDGET_NAME, $widgetData);
|
||||
$checkboxWidgetUDF = new CheckboxWidgetUDF(self::WIDGET_NAME, $widgetData);
|
||||
|
||||
$checkboxWidgetUDF->render();
|
||||
}
|
||||
@@ -707,21 +872,21 @@ class UDFLib
|
||||
$htmlParameters[HTMLWidget::PLACEHOLDER] = null;
|
||||
|
||||
// Description, title and placeholder
|
||||
if (isset($jsonSchema->{UDFLib::LABEL})
|
||||
|| isset($jsonSchema->{UDFLib::TITLE})
|
||||
|| isset($jsonSchema->{UDFLib::PLACEHOLDER}))
|
||||
if (isset($jsonSchema->{self::LABEL})
|
||||
|| isset($jsonSchema->{self::TITLE})
|
||||
|| isset($jsonSchema->{self::PLACEHOLDER}))
|
||||
{
|
||||
// Loads phrases library
|
||||
$this->_ci->load->library('PhrasesLib');
|
||||
|
||||
// If is set the label property in the json schema
|
||||
if (isset($jsonSchema->{UDFLib::LABEL}))
|
||||
if (isset($jsonSchema->{self::LABEL}))
|
||||
{
|
||||
// Load the related phrase
|
||||
$tmpResult = $this->_ci->phraseslib->getPhrases(
|
||||
UDFLib::PHRASES_APP_NAME,
|
||||
self::PHRASES_APP_NAME,
|
||||
getUserLanguage(),
|
||||
$jsonSchema->{UDFLib::LABEL},
|
||||
$jsonSchema->{self::LABEL},
|
||||
null,
|
||||
null,
|
||||
'no'
|
||||
@@ -733,13 +898,13 @@ class UDFLib
|
||||
}
|
||||
|
||||
// If is set the title property in the json schema
|
||||
if (isset($jsonSchema->{UDFLib::TITLE}))
|
||||
if (isset($jsonSchema->{self::TITLE}))
|
||||
{
|
||||
// Load the related phrase
|
||||
$tmpResult = $this->_ci->phraseslib->getPhrases(
|
||||
UDFLib::PHRASES_APP_NAME,
|
||||
self::PHRASES_APP_NAME,
|
||||
getUserLanguage(),
|
||||
$jsonSchema->{UDFLib::TITLE},
|
||||
$jsonSchema->{self::TITLE},
|
||||
null,
|
||||
null,
|
||||
'no'
|
||||
@@ -751,13 +916,13 @@ class UDFLib
|
||||
}
|
||||
|
||||
// If is set the placeholder property in the json schema
|
||||
if (isset($jsonSchema->{UDFLib::PLACEHOLDER}))
|
||||
if (isset($jsonSchema->{self::PLACEHOLDER}))
|
||||
{
|
||||
// Load the related phrase
|
||||
$tmpResult = $this->_ci->phraseslib->getPhrases(
|
||||
UDFLib::PHRASES_APP_NAME,
|
||||
self::PHRASES_APP_NAME,
|
||||
getUserLanguage(),
|
||||
$jsonSchema->{UDFLib::PLACEHOLDER},
|
||||
$jsonSchema->{self::PLACEHOLDER},
|
||||
null,
|
||||
null,
|
||||
'no'
|
||||
@@ -784,17 +949,17 @@ class UDFLib
|
||||
$htmlParameters[HTMLWidget::MAX_LENGTH] = null;
|
||||
|
||||
// If validation property is present in the json schema
|
||||
if (isset($jsonSchema->{UDFLib::VALIDATION}))
|
||||
if (isset($jsonSchema->{self::VALIDATION}))
|
||||
{
|
||||
$jsonSchemaValidation =& $jsonSchema->{UDFLib::VALIDATION}; // Reference for a better code readability
|
||||
$jsonSchemaValidation =& $jsonSchema->{self::VALIDATION}; // Reference for a better code readability
|
||||
|
||||
// Front-end regex
|
||||
if (isset($jsonSchemaValidation->{UDFLib::REGEX})
|
||||
&& is_array($jsonSchemaValidation->{UDFLib::REGEX}))
|
||||
if (isset($jsonSchemaValidation->{self::REGEX})
|
||||
&& is_array($jsonSchemaValidation->{self::REGEX}))
|
||||
{
|
||||
foreach ($jsonSchemaValidation->{UDFLib::REGEX} as $regex)
|
||||
foreach ($jsonSchemaValidation->{self::REGEX} as $regex)
|
||||
{
|
||||
if ($regex->language === UDFLib::FE_REGEX_LANGUAGE)
|
||||
if ($regex->language === self::FE_REGEX_LANGUAGE)
|
||||
{
|
||||
$htmlParameters[HTMLWidget::REGEX] = $regex->expression;
|
||||
}
|
||||
@@ -802,33 +967,33 @@ class UDFLib
|
||||
}
|
||||
|
||||
// Required
|
||||
if (isset($jsonSchemaValidation->{UDFLib::REQUIRED}))
|
||||
if (isset($jsonSchemaValidation->{self::REQUIRED}))
|
||||
{
|
||||
$htmlParameters[HTMLWidget::REQUIRED] = $jsonSchemaValidation->{UDFLib::REQUIRED};
|
||||
$htmlParameters[HTMLWidget::REQUIRED] = $jsonSchemaValidation->{self::REQUIRED};
|
||||
}
|
||||
|
||||
// Min value
|
||||
if (isset($jsonSchemaValidation->{UDFLib::MIN_VALUE}))
|
||||
if (isset($jsonSchemaValidation->{self::MIN_VALUE}))
|
||||
{
|
||||
$htmlParameters[HTMLWidget::MIN_VALUE] = $jsonSchemaValidation->{UDFLib::MIN_VALUE};
|
||||
$htmlParameters[HTMLWidget::MIN_VALUE] = $jsonSchemaValidation->{self::MIN_VALUE};
|
||||
}
|
||||
|
||||
// Max value
|
||||
if (isset($jsonSchemaValidation->{UDFLib::MAX_VALUE}))
|
||||
if (isset($jsonSchemaValidation->{self::MAX_VALUE}))
|
||||
{
|
||||
$htmlParameters[HTMLWidget::MAX_VALUE] = $jsonSchemaValidation->{UDFLib::MAX_VALUE};
|
||||
$htmlParameters[HTMLWidget::MAX_VALUE] = $jsonSchemaValidation->{self::MAX_VALUE};
|
||||
}
|
||||
|
||||
// Min length
|
||||
if (isset($jsonSchemaValidation->{UDFLib::MIN_LENGTH}))
|
||||
if (isset($jsonSchemaValidation->{self::MIN_LENGTH}))
|
||||
{
|
||||
$htmlParameters[HTMLWidget::MIN_LENGTH] = $jsonSchemaValidation->{UDFLib::MIN_LENGTH};
|
||||
$htmlParameters[HTMLWidget::MIN_LENGTH] = $jsonSchemaValidation->{self::MIN_LENGTH};
|
||||
}
|
||||
|
||||
// Max length
|
||||
if (isset($jsonSchemaValidation->{UDFLib::MAX_LENGTH}))
|
||||
if (isset($jsonSchemaValidation->{self::MAX_LENGTH}))
|
||||
{
|
||||
$htmlParameters[HTMLWidget::MAX_LENGTH] = $jsonSchemaValidation->{UDFLib::MAX_LENGTH};
|
||||
$htmlParameters[HTMLWidget::MAX_LENGTH] = $jsonSchemaValidation->{self::MAX_LENGTH};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +91,23 @@ class Messages_model extends CI_Model
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares data for the view system/messages/ajaxRead
|
||||
*/
|
||||
public function prepareAjaxRead()
|
||||
{
|
||||
$psResult = $this->PrestudentModel->loadWhere(array('person_id' => getAuthPersonId()));
|
||||
|
||||
if (isError($psResult)) show_error('An error occurred while loading this page, please contact the site administrator');
|
||||
|
||||
if (hasData($psResult))
|
||||
{
|
||||
return array('writeButton' => '<input id="writeMessage" type="button" value="'.$this->p->t('ui', 'nachrichtSenden').'">');
|
||||
}
|
||||
|
||||
return array('writeButton' => '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares data for the view system/messages/ajaxWrite
|
||||
*/
|
||||
@@ -267,15 +284,10 @@ class Messages_model extends CI_Model
|
||||
|
||||
$sender = getData($senderResult)[0]; // Found sender data
|
||||
|
||||
// Check if the receiver is an employee
|
||||
$isEmployee = false; // not by default
|
||||
$isEmployeeResult = $this->MessageTokenModel->isEmployee($message->receiver_id);
|
||||
if (isError($isEmployeeResult)) show_error(getError($isEmployeeResult));
|
||||
if (hasData($isEmployeeResult)) $isEmployee = true;
|
||||
|
||||
// If the sender is not an employee and are present configurations to reply
|
||||
// If the sender is not the system sender and are present configurations to reply
|
||||
$hrefReply = '';
|
||||
if (!$isEmployee && !isEmptyString($this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL)))
|
||||
if ($message->sender_id != $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID)
|
||||
&& !isEmptyString($this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL)))
|
||||
{
|
||||
$hrefReply = $this->config->item(MessageLib::CFG_MESSAGE_SERVER).
|
||||
$this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL).
|
||||
@@ -399,33 +411,30 @@ class Messages_model extends CI_Model
|
||||
|
||||
$message = $this->messagelib->sendMessageUser(
|
||||
$msgVarsDataArray['person_id'], // receiverPersonId
|
||||
$parsedSubject, // subject
|
||||
$parsedBody, // body
|
||||
$sender_id, // sender_id
|
||||
$senderOU, // senderOU
|
||||
$relationmessage_id, // relationmessage_id
|
||||
MSG_PRIORITY_NORMAL // priority
|
||||
$parsedSubject, // subject
|
||||
$parsedBody, // body
|
||||
$sender_id, // sender_id
|
||||
$senderOU, // senderOU
|
||||
$relationmessage_id, // relationmessage_id
|
||||
MSG_PRIORITY_NORMAL // priority
|
||||
);
|
||||
|
||||
if (isError($message)) return $message;
|
||||
if (!hasData($message)) return error('No messages were saved in database');
|
||||
|
||||
// Write log entry only if persons were given
|
||||
if ($type == self::TYPE_PERSONS)
|
||||
{
|
||||
$personLog = $this->_personLog($sender_id, $msgVarsDataArray['person_id'], getData($message)[0]);
|
||||
if (isError($personLog)) return $personLog;
|
||||
}
|
||||
// Write log entry only
|
||||
$personLog = $this->_personLog($sender_id, $msgVarsDataArray['person_id'], getData($message)[0]);
|
||||
if (isError($personLog)) return $personLog;
|
||||
|
||||
$receiversCounter++; // increment the counter
|
||||
}
|
||||
|
||||
return success('Messages sent successfully');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sends a new message using the given template and information present in parameter prestudents
|
||||
* Extra variables can be added using parameter $msgVars
|
||||
* Wrapper method for sendExplicitTemplateSenderId
|
||||
* The sender id is retrieved from the authentication session, if not present an error would be raised
|
||||
*/
|
||||
public function sendExplicitTemplate($prestudents, $oe_kurzbz, $vorlage_kurzbz, $msgVars)
|
||||
{
|
||||
@@ -433,6 +442,15 @@ class Messages_model extends CI_Model
|
||||
$sender_id = getAuthPersonId();
|
||||
if (!is_numeric($sender_id)) show_error('The current logged user person_id is not defined');
|
||||
|
||||
return $this->sendExplicitTemplateSenderId($sender_id, $prestudents, $oe_kurzbz, $vorlage_kurzbz, $msgVars);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a new message using the given template and information present in parameter prestudents
|
||||
* Extra variables can be added using parameter $msgVars
|
||||
*/
|
||||
public function sendExplicitTemplateSenderId($sender_id, $prestudents, $oe_kurzbz, $vorlage_kurzbz, $msgVars)
|
||||
{
|
||||
// Retrieves message vars data for the given user/s
|
||||
$msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents);
|
||||
if (isError($msgVarsData)) show_error(getError($msgVarsData));
|
||||
@@ -454,12 +472,12 @@ class Messages_model extends CI_Model
|
||||
if (is_array($msgVars)) $msgVarsDataArray = array_merge($msgVarsDataArray, $msgVars);
|
||||
|
||||
$message = $this->messagelib->sendMessageUserTemplate(
|
||||
$msgVarsDataArray['person_id'], // receiversPersonId
|
||||
$vorlage_kurzbz, // vorlage
|
||||
$msgVarsDataArray, // parseData
|
||||
null, // orgform
|
||||
$sender_id, // sender_id
|
||||
$oe_kurzbz // senderOU
|
||||
$msgVarsDataArray['person_id'], // receiversPersonId
|
||||
$vorlage_kurzbz, // vorlage
|
||||
$msgVarsDataArray, // parseData
|
||||
null, // orgform
|
||||
$sender_id, // sender_id
|
||||
$oe_kurzbz // senderOU
|
||||
);
|
||||
|
||||
if (isError($message)) return $message;
|
||||
|
||||
@@ -196,7 +196,7 @@ class Prestudent_model extends DB_Model
|
||||
{
|
||||
$this->addSelect('tbl_prestudent.*, tbl_studiengang.studiengang_kz, tbl_studiengang.kurzbzlang as studiengang, tbl_studiengang.bezeichnung as studiengangbezeichnung, tbl_studiengang.english as studiengangenglish,
|
||||
tbl_studiengang.email as studiengangmail, tbl_studiengang.typ as studiengangtyp, tbl_studiengangstyp.bezeichnung as studiengangtyp_bez,
|
||||
tbl_zgv.zgv_code, tbl_zgv.zgv_bez, tbl_prestudent.zgvnation as zgvnation_code, zgvnat.kurztext as zgvnation_kurzbez, zgvnat.langtext as zgvnation_bez, zgvnat.engltext as zgvnation_englbez,
|
||||
tbl_zgv.zgv_code, tbl_zgv.zgv_bez, tbl_prestudent.zgvnation as zgvnation_code, zgvnat.kurztext as zgvnation_kurzbez, zgvnat.langtext as zgvnation_bez, zgvnat.engltext as zgvnation_englbez, zgvnat.nationengruppe_kurzbz as zgvnation_nationengruppe,
|
||||
tbl_zgvmaster.zgvmas_code, tbl_zgvmaster.zgvmas_bez, tbl_prestudent.zgvmanation as zgvmanation_code, zgvmanat.kurztext as zgvmanation_kurzbez, zgvmanat.langtext as zgvmanation_bez, zgvmanat.engltext as zgvmanation_englbez');
|
||||
$this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT');
|
||||
$this->addJoin('public.tbl_studiengangstyp', 'typ', 'LEFT');
|
||||
@@ -209,66 +209,95 @@ class Prestudent_model extends DB_Model
|
||||
if (!hasData($prestudent))
|
||||
return error('prestudent could not be loaded');
|
||||
|
||||
$prestudentdata = getData($prestudent);
|
||||
$prestudentdata = $prestudentdata[0];
|
||||
|
||||
//Prestudentstatus
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
|
||||
if ($lastStatus->error)
|
||||
if (isError($lastStatus))
|
||||
{
|
||||
return $lastStatus;
|
||||
}
|
||||
|
||||
if (count($lastStatus->retval) > 0)
|
||||
if (hasData($lastStatus))
|
||||
{
|
||||
$lastStatusData = getData($lastStatus);
|
||||
$lastStatusData = $lastStatusData[0];
|
||||
//get Studiengangname from Studienplan and -ordnung
|
||||
$studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent($prestudent_id);
|
||||
if ($studienordnung->error)
|
||||
if (isError($studienordnung))
|
||||
return $studienordnung;
|
||||
|
||||
if (count($studienordnung->retval) > 0)
|
||||
if (hasData($studienordnung))
|
||||
{
|
||||
$lastStatus->retval[0]->studiengang_kz = $studienordnung->retval[0]->studiengang_kz;
|
||||
$lastStatus->retval[0]->studiengangkurzbzlang = $studienordnung->retval[0]->studiengangkurzbzlang;
|
||||
$lastStatus->retval[0]->studiengangbezeichnung = $studienordnung->retval[0]->studiengangbezeichnung;
|
||||
$lastStatus->retval[0]->studiengangbezeichnung_englisch = $studienordnung->retval[0]->studiengangbezeichnung_englisch;
|
||||
$lastStatus->retval[0]->regelstudiendauer = $studienordnung->retval[0]->regelstudiendauer;
|
||||
$studienordnungdata = getData($studienordnung);
|
||||
$studienordnungdata = $studienordnungdata[0];
|
||||
|
||||
$lastStatusData->studiengang_kz = $studienordnungdata->studiengang_kz;
|
||||
$lastStatusData->studiengangkurzbzlang = $studienordnungdata->studiengangkurzbzlang;
|
||||
$lastStatusData->studiengangbezeichnung = $studienordnungdata->studiengangbezeichnung;
|
||||
$lastStatusData->studiengangbezeichnung_englisch = $studienordnungdata->studiengangbezeichnung_englisch;
|
||||
$lastStatusData->regelstudiendauer = $studienordnungdata->regelstudiendauer;
|
||||
}
|
||||
|
||||
//get Sprache
|
||||
$this->load->model('system/sprache_model', 'SpracheModel');
|
||||
$this->SpracheModel->addSelect('sprache, locale, bezeichnung');
|
||||
$language = $this->SpracheModel->load($lastStatus->retval[0]->sprache);
|
||||
$language = $this->SpracheModel->load($lastStatusData->sprache);
|
||||
|
||||
if ($language->error)
|
||||
if (isError($language))
|
||||
return $language;
|
||||
|
||||
if (count($language->retval) > 0)
|
||||
$lastStatus->retval[0]->sprachedetails = $language->retval[0];
|
||||
if (hasData($language))
|
||||
{
|
||||
$languagedata = getData($language);
|
||||
$languagedata = $languagedata[0];
|
||||
$lastStatusData->sprachedetails = $languagedata;
|
||||
}
|
||||
|
||||
//get Bewerbungsfrist
|
||||
$this->load->model('crm/bewerbungstermine_model', 'BewerbungstermineModel');
|
||||
$this->BewerbungstermineModel->addSelect('ende, nachfrist_ende');
|
||||
$this->BewerbungstermineModel->addOrder('ende', 'DESC');
|
||||
$this->BewerbungstermineModel->addOrder('updateamum', 'DESC');
|
||||
$this->BewerbungstermineModel->addOrder('insertamum', 'DESC');
|
||||
$this->BewerbungstermineModel->addOrder('ende');
|
||||
$this->BewerbungstermineModel->addLimit(1);
|
||||
$bewerbungstermin = $this->BewerbungstermineModel->loadWhere(
|
||||
array(
|
||||
'studienplan_id' => $lastStatus->retval[0]->studienplan_id,
|
||||
'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz,
|
||||
'studiengang_kz' => $prestudent->retval[0]->studiengang_kz
|
||||
)
|
||||
|
||||
$fristparams = array(
|
||||
'studienplan_id' => $lastStatusData->studienplan_id,
|
||||
'studiensemester_kurzbz' => $lastStatusData->studiensemester_kurzbz,
|
||||
'studiengang_kz' => $prestudentdata->studiengang_kz
|
||||
);
|
||||
|
||||
if (isset($prestudentdata->zgvnation_nationengruppe))
|
||||
$fristparams['nationengruppe_kurzbz'] = $prestudentdata->zgvnation_nationengruppe;
|
||||
|
||||
$bewerbungstermin = $this->BewerbungstermineModel->loadWhere(
|
||||
$fristparams
|
||||
);
|
||||
if ($bewerbungstermin->error)
|
||||
|
||||
if (isError($bewerbungstermin))
|
||||
return $bewerbungstermin;
|
||||
|
||||
if (count($bewerbungstermin->retval) > 0)
|
||||
if (hasData($bewerbungstermin))
|
||||
{
|
||||
$lastStatus->retval[0]->bewerbungstermin = $bewerbungstermin->retval[0]->ende;
|
||||
$lastStatus->retval[0]->bewerbungsnachfrist = $bewerbungstermin->retval[0]->nachfrist_ende;
|
||||
$bewerbungstermindata = getData($bewerbungstermin);
|
||||
$bewerbungstermindata = $bewerbungstermindata[0];
|
||||
$lastStatusData->bewerbungstermin = $bewerbungstermindata->ende;
|
||||
$lastStatusData->bewerbungsnachfrist = $bewerbungstermindata->nachfrist_ende;
|
||||
}
|
||||
|
||||
$prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0];
|
||||
$prestudentdata->prestudentstatus = $lastStatusData;
|
||||
|
||||
|
||||
if ($this->hasUDF())
|
||||
{
|
||||
$prestudentdata->prestudentUdfs = $this->getUDFs($prestudent_id);
|
||||
}
|
||||
}
|
||||
|
||||
return success($prestudent->retval);
|
||||
return success($prestudentdata);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,4 +11,93 @@ class Abschlusspruefung_model extends DB_Model
|
||||
$this->dbTable = 'lehre.tbl_abschlusspruefung';
|
||||
$this->pk = 'abschlusspruefung_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets data of an Abschlusspruefung, including Abschlussarbeit.
|
||||
* @param $abschlusspruefung_id
|
||||
* @return object
|
||||
*/
|
||||
public function getAbschlusspruefung($abschlusspruefung_id)
|
||||
{
|
||||
$this->load->model('crm/Student_model', 'StudentModel');
|
||||
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$this->load->model('education/Projektarbeit_model', 'ProjektarbeitModel');
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
|
||||
$abschlusspruefungdata = array();
|
||||
|
||||
$this->addSelect('tbl_abschlusspruefung.abschlusspruefung_id, tbl_abschlusspruefung.datum, tbl_abschlusspruefung.abschlussbeurteilung_kurzbz, tbl_abschlusspruefung.uhrzeit AS pruefungsbeginn, tbl_abschlusspruefung.endezeit AS pruefungsende,
|
||||
tbl_abschlusspruefung.freigabedatum, tbl_abschlusspruefung_antritt.bezeichnung AS pruefungsantritt_bezeichnung, tbl_abschlusspruefung_antritt.bezeichnung_english AS pruefungsantritt_bezeichnung_english, tbl_abschlusspruefung.protokoll,
|
||||
studentpers.vorname AS vorname_student, studentpers.nachname AS nachname_student, studentpers.titelpre AS titelpre_student, studentpers.titelpost AS titelpost_student, studentben.uid AS uid_student, matrikelnr,
|
||||
vorsitzenderben.uid AS uid_vorsitz, vorsitzenderpers.vorname AS vorname_vorsitz, vorsitzenderpers.nachname AS nachname_vorsitz, vorsitzenderpers.titelpre AS titelpre_vorsitz, vorsitzenderpers.titelpost AS titelpost_vorsitz,
|
||||
erstprueferpers.vorname AS vorname_erstpruefer, erstprueferpers.nachname AS nachname_erstpruefer, erstprueferpers.titelpre AS titelpre_erstpruefer, erstprueferpers.titelpost AS titelpost_erstpruefer,
|
||||
zweitprueferpers.vorname AS vorname_zweitpruefer, zweitprueferpers.nachname AS nachname_zweitpruefer, zweitprueferpers.titelpre AS titelpre_zweitpruefer, zweitprueferpers.titelpost AS titelpost_zweitpruefer
|
||||
');
|
||||
$this->addJoin('lehre.tbl_abschlusspruefung_antritt', 'pruefungsantritt_kurzbz', 'LEFT');
|
||||
$this->addJoin('public.tbl_benutzer studentben', 'tbl_abschlusspruefung.student_uid = studentben.uid');
|
||||
$this->addJoin('public.tbl_person studentpers', 'studentben.person_id = studentpers.person_id');
|
||||
$this->addJoin('public.tbl_student', 'studentben.uid = tbl_student.student_uid');
|
||||
$this->addJoin('public.tbl_benutzer vorsitzenderben', 'vorsitz = vorsitzenderben.uid', 'LEFT');
|
||||
$this->addJoin('public.tbl_person vorsitzenderpers', 'vorsitzenderben.person_id = vorsitzenderpers.person_id', 'LEFT');
|
||||
$this->addJoin('public.tbl_person erstprueferpers', 'pruefer1 = erstprueferpers.person_id', 'LEFT');
|
||||
$this->addJoin('public.tbl_person zweitprueferpers', 'pruefer2 = zweitprueferpers.person_id', 'LEFT');
|
||||
|
||||
$abschlusspruefung = $this->load($abschlusspruefung_id);
|
||||
|
||||
if (isError($abschlusspruefung))
|
||||
return $abschlusspruefung;
|
||||
elseif (hasData($abschlusspruefung))
|
||||
{
|
||||
$abschlusspruefungdata = getData($abschlusspruefung)[0];
|
||||
|
||||
// get Studiengang of Student
|
||||
$student_uid = $abschlusspruefungdata->uid_student;
|
||||
$this->StudentModel->addSelect('prestudent_id');
|
||||
$prestudent_id = $this->StudentModel->load(array('student_uid' => $student_uid));
|
||||
|
||||
if (isError($prestudent_id))
|
||||
return $prestudent_id;
|
||||
elseif (hasData($prestudent_id))
|
||||
{
|
||||
//get Studiengangname from Studienplan and -ordnung
|
||||
$studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent(getData($prestudent_id)[0]->prestudent_id);
|
||||
|
||||
if (isError($studienordnung))
|
||||
return $studienordnung;
|
||||
elseif (hasData($studienordnung))
|
||||
{
|
||||
$studienordnungdata = getData($studienordnung)[0];
|
||||
|
||||
$abschlusspruefungdata->studiengang_kz = $studienordnungdata->studiengang_kz;
|
||||
$abschlusspruefungdata->studiengangbezeichnung = $studienordnungdata->studiengangbezeichnung;
|
||||
$abschlusspruefungdata->studiengangbezeichnung_englisch = $studienordnungdata->studiengangbezeichnung_englisch;
|
||||
|
||||
$this->StudiengangModel->addSelect('typ');
|
||||
$typ = $this->StudiengangModel->load($studienordnungdata->studiengang_kz);
|
||||
if (isError($typ))
|
||||
return $typ;
|
||||
elseif (hasData($typ))
|
||||
{
|
||||
$abschlusspruefungdata->studiengangstyp = getData($typ)[0]->typ;
|
||||
}
|
||||
|
||||
// get Abschlussarbeit
|
||||
$projekttyp = array('Bachelor','Diplom','Master','Dissertation','Lizenziat','Magister');
|
||||
$abschlussarbeit = $this->ProjektarbeitModel->getProjektarbeit($student_uid, $studienordnungdata->studiengang_kz, null, $projekttyp, true);
|
||||
|
||||
if (isError($abschlussarbeit))
|
||||
return $abschlussarbeit;
|
||||
if (hasData($abschlussarbeit))
|
||||
{
|
||||
$abschlussarbeit = getData($abschlussarbeit)[0];
|
||||
$abschlusspruefungdata->projektarbeit_studiengangstyp_name = $abschlussarbeit->projekttyp_kurzbz;
|
||||
$abschlusspruefungdata->abschlussarbeit_titel = $abschlussarbeit->titel;
|
||||
$abschlusspruefungdata->abschlussarbeit_note = $abschlussarbeit->note;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return success($abschlusspruefungdata);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,62 @@ class Projektarbeit_model extends DB_Model
|
||||
$this->dbTable = 'lehre.tbl_projektarbeit';
|
||||
$this->pk = 'projektarbeit_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Projektarbeit(en) of a student for a Studiengang, Semester, Projekttyp, final.
|
||||
* @param $student_uid
|
||||
* @param $studiengang_kz
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $projekttyp
|
||||
* @param $final
|
||||
* @return object
|
||||
*/
|
||||
public function getProjektarbeit($student_uid, $studiengang_kz = null, $studiensemester_kurzbz = null, $projekttyp = null, $final = null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
tbl_projektarbeit.* , tbl_projekttyp.bezeichnung
|
||||
FROM
|
||||
lehre.tbl_projektarbeit
|
||||
JOIN
|
||||
lehre.tbl_projekttyp USING (projekttyp_kurzbz), lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
|
||||
|
||||
WHERE
|
||||
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
tbl_projektarbeit.student_uid = ?";
|
||||
|
||||
$params = array($student_uid);
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= ' AND tbl_lehrveranstaltung.studiengang_kz=?';
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz=?';
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($projekttyp))
|
||||
{
|
||||
if (is_array($projekttyp))
|
||||
$qry .= ' AND tbl_projektarbeit.projekttyp_kurzbz IN ?';
|
||||
else
|
||||
$qry .= ' AND tbl_projektarbeit.projekttyp_kurzbz=?';
|
||||
|
||||
$params[] = $projekttyp;
|
||||
}
|
||||
|
||||
if (isset($final))
|
||||
{
|
||||
$qry .= ' AND tbl_projektarbeit.final=?';
|
||||
$params[] = $final;
|
||||
}
|
||||
|
||||
$qry .= ' ORDER BY beginn DESC, projektarbeit_id DESC';
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,12 +125,12 @@ class Organisationseinheit_model extends DB_Model
|
||||
public function getChilds($oe_kurzbz, $includeinactive = false)
|
||||
{
|
||||
$query = "
|
||||
WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
|
||||
WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
|
||||
(
|
||||
SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
|
||||
SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
|
||||
WHERE oe_kurzbz=? %s
|
||||
UNION ALL
|
||||
SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
|
||||
SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
|
||||
WHERE o.oe_parent_kurzbz=oes.oe_kurzbz %s
|
||||
)
|
||||
SELECT oe_kurzbz
|
||||
@@ -150,12 +150,12 @@ class Organisationseinheit_model extends DB_Model
|
||||
public function getParents($oe_kurzbz, $includeinactive = false)
|
||||
{
|
||||
$query=
|
||||
"WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
|
||||
"WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
|
||||
(
|
||||
SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
|
||||
SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
|
||||
WHERE oe_kurzbz=? %s
|
||||
UNION ALL
|
||||
SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
|
||||
SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
|
||||
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz %s
|
||||
)
|
||||
SELECT oe_kurzbz
|
||||
@@ -177,7 +177,7 @@ class Organisationseinheit_model extends DB_Model
|
||||
{
|
||||
$condition = '
|
||||
oe_kurzbz = (
|
||||
SELECT
|
||||
SELECT
|
||||
oe_parent_kurzbz
|
||||
FROM
|
||||
public.tbl_organisationseinheit
|
||||
|
||||
@@ -14,7 +14,7 @@ class Studienjahr_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets current Studienjahr, as determined by its start and enddate
|
||||
* Gets current Studienjahr, as determined by start and enddate of current semester
|
||||
* @return array|null
|
||||
*/
|
||||
public function getCurrStudienjahr()
|
||||
|
||||
@@ -1,169 +0,0 @@
|
||||
<?php
|
||||
|
||||
class FAS_UDF_model extends DB_Model
|
||||
{
|
||||
// String values of booleans
|
||||
const STRING_NULL = 'null';
|
||||
const STRING_TRUE = 'true';
|
||||
const STRING_FALSE = 'false';
|
||||
|
||||
const UDF_DROPDOWN_TYPE = 'dropdown';
|
||||
const UDF_MULTIPLEDROPDOWN_TYPE = 'multipledropdown';
|
||||
|
||||
/**
|
||||
* Methods to save data from FAS
|
||||
*/
|
||||
public function saveUDFs($udfs)
|
||||
{
|
||||
$result = error('No way man!');
|
||||
$resultPerson = success('person');
|
||||
$resultPrestudent = success('prestudent');
|
||||
|
||||
$person_id = null;
|
||||
if (isset($udfs['person_id'])) $person_id = $udfs['person_id'];
|
||||
unset($udfs['person_id']);
|
||||
|
||||
$prestudent_id = null;
|
||||
if (isset($udfs['prestudent_id'])) $prestudent_id = $udfs['prestudent_id'];
|
||||
unset($udfs['prestudent_id']);
|
||||
|
||||
$jsons = array();
|
||||
|
||||
//
|
||||
if (isset($person_id))
|
||||
{
|
||||
// Load model Person_model
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
|
||||
$result = $this->load(array('public', 'tbl_person'));
|
||||
if (isSuccess($result) && count($result->retval) == 1)
|
||||
{
|
||||
$jsons = json_decode($result->retval[0]->jsons);
|
||||
}
|
||||
|
||||
$udfs = $this->_fillMissingTextUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingChkboxUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingDropdownUDF($udfs, $jsons);
|
||||
|
||||
$resultPerson = $this->PersonModel->update($person_id, $udfs);
|
||||
}
|
||||
|
||||
//
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
// Load model Prestudent_model
|
||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$result = $this->load(array('public', 'tbl_prestudent'));
|
||||
if (isSuccess($result) && count($result->retval) == 1)
|
||||
{
|
||||
$jsons = json_decode($result->retval[0]->jsons);
|
||||
}
|
||||
|
||||
$udfs = $this->_fillMissingTextUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingChkboxUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingDropdownUDF($udfs, $jsons);
|
||||
|
||||
$resultPrestudent = $this->PrestudentModel->update($prestudent_id, $udfs);
|
||||
}
|
||||
|
||||
if (isSuccess($resultPerson) && isSuccess($resultPrestudent))
|
||||
{
|
||||
$result = success(array($resultPerson->retval, $resultPrestudent->retval));
|
||||
}
|
||||
else if(isError($resultPerson))
|
||||
{
|
||||
$result = $resultPerson;
|
||||
}
|
||||
else if(isError($resultPrestudent))
|
||||
{
|
||||
$result = $resultPrestudent;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingChkboxUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingChkboxUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == UDFLib::CHKBOX_TYPE)
|
||||
{
|
||||
if (!isset($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_FALSE)
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = false;
|
||||
}
|
||||
else if ($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_TRUE)
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingChkboxUDF;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingDropdownUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingDropdownUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == UDF_model::UDF_DROPDOWN_TYPE
|
||||
|| $udfDescription->{UDFLib::TYPE} == UDF_model::UDF_MULTIPLEDROPDOWN_TYPE)
|
||||
{
|
||||
if (!isset($_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
else if($_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_NULL)
|
||||
{
|
||||
$_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingDropdownUDF;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingTextUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingTextUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == 'textarea'
|
||||
|| $udfDescription->{UDFLib::TYPE} == 'textfield')
|
||||
{
|
||||
if (!isset($_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
else if(trim($_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}]) == '')
|
||||
{
|
||||
$_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingTextUDF;
|
||||
}
|
||||
}
|
||||
@@ -1,180 +1,202 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag annehmen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => false,
|
||||
'tabulator' => true,
|
||||
'momentjs' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeAnnehmen'),
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/lehre/lehrauftrag/acceptLehrauftrag.js')
|
||||
)
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag annehmen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => false,
|
||||
'tabulator' => true,
|
||||
'momentjs' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array(
|
||||
'lehrauftraegeAnnehmen',
|
||||
'dokumentePDF',
|
||||
'PDFLehrauftraegeFH',
|
||||
'PDFLehrauftraegeLehrgaenge'
|
||||
),
|
||||
'ui' => array(
|
||||
'anzeigen',
|
||||
'alleAnzeigen',
|
||||
'nurBestellteAnzeigen',
|
||||
'nurErteilteAnzeigen',
|
||||
'nurAngenommeneAnzeigen',
|
||||
'nurStornierteAnzeigen',
|
||||
'hilfeZuDieserSeite',
|
||||
'alleAuswaehlen',
|
||||
'alleAbwaehlen',
|
||||
'ausgewaehlteZeilen',
|
||||
'hilfe',
|
||||
'tabelleneinstellungen',
|
||||
'keineDatenVorhanden',
|
||||
'spaltenEinstellen',
|
||||
'bestelltVon',
|
||||
'erteiltVon',
|
||||
'angenommenVon',
|
||||
'storniertVon',
|
||||
'lehrauftragInBearbeitung',
|
||||
'wartetAufErteilung',
|
||||
'wartetAufErneuteErteilung',
|
||||
'letzterStatusBestellt',
|
||||
'letzterStatusErteilt',
|
||||
'letzterStatusAngenommen',
|
||||
'vertragWurdeStorniert',
|
||||
),
|
||||
'password' => array('password'),
|
||||
'dms' => array('informationsblattExterneLehrende'),
|
||||
'table' => array(
|
||||
'spaltenEinAusblenden',
|
||||
'spaltenEinAusblendenMitKlickOeffnen',
|
||||
'spaltenEinAusblendenAufEinstellungenKlicken',
|
||||
'spaltenEinAusblendenMitKlickAktivieren',
|
||||
'spaltenEinAusblendenMitKlickSchliessen',
|
||||
'spaltenbreiteVeraendern',
|
||||
'spaltenbreiteVeraendernText',
|
||||
'spaltenbreiteVeraendernInfotext',
|
||||
'zeilenAuswaehlen',
|
||||
'zeilenAuswaehlenEinzeln',
|
||||
'zeilenAuswaehlenBereich',
|
||||
'zeilenAuswaehlenAlle'
|
||||
),
|
||||
'lehre' => array(
|
||||
'lehrauftraegeAnnehmen',
|
||||
'lehrauftraegeAnnehmenText',
|
||||
'lehrauftraegeAnnehmenKlickStatusicon',
|
||||
'lehrauftraegeAnnehmenLehrauftraegeWaehlen',
|
||||
'lehrauftraegeAnnehmenMitKlickAnnehmen',
|
||||
'lehrauftraegeNichtAuswaehlbar',
|
||||
'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme',
|
||||
'filterAlleBeiAnnahme',
|
||||
'filterErteiltBeiAnnahme',
|
||||
'filterAngenommen'
|
||||
)
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/lehre/lehrauftrag/acceptLehrauftrag.js')
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- title & helper link -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?>
|
||||
</h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- helper collapse module -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
<h4>Wie nehme ich Lehraufträge an?</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen.
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur erteilte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'erteilt' können gewählt werden.<br>
|
||||
Angenommene Lehraufträge oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information angezeigt.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<div class="col-xs-12 col-md-8 col-lg-6">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND bestellte Lehraufträge, die in Bearbeitung sind</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind</td>
|
||||
<td><b>Angenommen</b><br>Nur von Ihnen angenommene Lehraufträge</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragHelp') ?>
|
||||
</div> <!--./well-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- dropdown widgets -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formLehrauftrag" class="form-inline" action="" method="get">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
|
||||
),
|
||||
array(
|
||||
'name' => 'studiensemester',
|
||||
'id' => 'studiensemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formLehrauftrag" class="form-inline" action="" method="get">
|
||||
<input type="hidden" id="uid" name="uid" value="<?php echo getAuthUID(); ?>">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
|
||||
),
|
||||
array(
|
||||
'name' => 'studiensemester',
|
||||
'id' => 'studiensemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tabulator data table 'Lehrauftraege annehmen'-->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<!-- filter buttons & password field & akzeptieren-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag active focus" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i>
|
||||
<!-- link for external lectors 'Informationsblatt fuer externe Lehrende'. Show only for external lecturers -->
|
||||
<?php if ($is_external_lector): ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<span class="pull-right"><?php echo $this->p->t('dms' , 'informationsblattExterneLehrende'); ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- filter buttons & PDF downloads & password field & akzeptieren-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-5 col-md-4">
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag active focus" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i>
|
||||
</button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen">
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>">
|
||||
</button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen">
|
||||
</button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i>
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button id="show-cancelled" class="btn btn-default btn-lehrauftrag" type="button" style="margin-left: 20px;"
|
||||
data-toggle="collapse" data-placement="left" title="Stornierte anzeigen"
|
||||
data-toggle="collapse" data-placement="left" title="<?php echo $this->p->t('ui', 'nurStornierteAnzeigen'); ?>"
|
||||
data-target ="#collapseCancelledLehrauftraege" aria-expanded="false" aria-controls="collapseExample">
|
||||
</button><!-- png img set in javascript -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-offset-2 col-md-4 col-xs-6">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-xs-3 col-md-offset-2 col-md-2">
|
||||
<div class="btn-group dropup pull-right">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<?php echo $this->p->t('global', 'dokumentePDF'); ?> <i class="fa fa-arrow-down"></i> <span class="caret"></span>
|
||||
</button>
|
||||
<ul id="ul-download-pdf" class="dropdown-menu">
|
||||
<li value="etw"><a href="#"><?php echo $this->p->t('global', 'PDFLehrauftraegeFH'); ?></a></li>
|
||||
<li value="lehrgang"><a href="#"><?php echo $this->p->t('global', 'PDFLehrauftraegeLehrgaenge'); ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-4 col-md-offset-0 col-md-4">
|
||||
<div class="input-group">
|
||||
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-Passwort">
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
|
||||
<span class="input-group-btn">
|
||||
<button id="accept-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag annehmen</button>
|
||||
<button id="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
@@ -196,8 +218,8 @@ $this->load->view(
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end container -->
|
||||
</div>
|
||||
</div><!-- end container -->
|
||||
</div><!-- end page-wrapper -->
|
||||
<br>
|
||||
</body>
|
||||
|
||||
@@ -9,19 +9,19 @@ $query = '
|
||||
SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
auftrag,
|
||||
stg_typ_kurzbz,
|
||||
gruppe,
|
||||
typ,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
stunden,
|
||||
betrag,
|
||||
vertrag_id,
|
||||
@@ -170,7 +170,7 @@ FROM
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter vertragsstatus to avoid showing before status is bestellt */
|
||||
AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
|
||||
AND vvs.vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\')
|
||||
) tmp_lehrauftraege
|
||||
|
||||
UNION
|
||||
@@ -182,8 +182,8 @@ FROM
|
||||
(SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
ON tbl_benutzer.uid = ma.mitarbeiter_uid
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
ON tbl_benutzer.uid = ma.mitarbeiter_uid
|
||||
WHERE
|
||||
person_id = tmp_projektbetreuung.person_id
|
||||
ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last
|
||||
@@ -285,8 +285,8 @@ FROM
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter vertragsstatus to avoid showing before status is bestellt */
|
||||
AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
|
||||
/* filter vertragsstatus to avoid showing before status is erteilt */
|
||||
AND vvs.vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\')
|
||||
) tmp_projektbetreuung
|
||||
) auftraege
|
||||
ORDER BY "akzeptiert" NULLS FIRST, "erteilt" NULLS LAST, "bestellt"
|
||||
@@ -297,40 +297,39 @@ $filterWidgetArray = array(
|
||||
'tableUniqueId' => 'acceptLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
|
||||
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('lehre', 'gruppe')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehreinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
|
||||
'Semester',
|
||||
'OrgForm',
|
||||
ucfirst($this->p->t('lehre', 'organisationsform')),
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
ucfirst($this->p->t('ui', 'bestellt')),
|
||||
ucfirst($this->p->t('ui', 'erteilt')),
|
||||
ucfirst($this->p->t('ui', 'angenommen')),
|
||||
ucfirst($this->p->t('ui', 'bestelltVon')),
|
||||
ucfirst($this->p->t('ui', 'erteiltVon')),
|
||||
ucfirst($this->p->t('ui', 'angenommenVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 550,
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
height: func_height(this),
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
|
||||
headerFilterPlaceholder: " ",
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
selectable: true, // allow row selection
|
||||
@@ -339,13 +338,9 @@ $filterWidgetArray = array(
|
||||
selectableCheck: function(row){
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
footerElement: func_footerElement(),
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
@@ -357,40 +352,47 @@ $filterWidgetArray = array(
|
||||
},
|
||||
renderStarted:function(){
|
||||
func_renderStarted(this);
|
||||
}
|
||||
},
|
||||
tableWidgetFooter: {
|
||||
selectButtons: true
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
row_index: {visible:false}, // necessary for row indexing
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}, width: "7%"},
|
||||
lehrveranstaltung_id: {headerFilter:"input", width: "5%"},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {visible: false},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
auftrag: {
|
||||
headerFilter:"input", widthGrow: 3,
|
||||
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
|
||||
},
|
||||
stg_typ_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
typ: {headerFilter:"input"},
|
||||
lehreinheit_id: {visible: false, headerFilter:"input"},
|
||||
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
|
||||
projektarbeit_id: {visible: false, headerFilter:"input"},
|
||||
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
|
||||
studiengang_kz: {visible: false, headerFilter:"input"},
|
||||
semester: {headerFilter:"input"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input", width: "7%"},
|
||||
auftrag: {headerFilter:"input", width: "15%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input", width: "8%"},
|
||||
gruppe: {headerFilter:"input", width: "5%"},
|
||||
orgform_kurzbz: {visible: false, headerFilter:"input"},
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}, width: "5%"},
|
||||
betrag: {align:"right", width: "6%", formatter: form_formatNulltoStringNumber,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}
|
||||
},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
|
||||
width: "8%"},
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
|
||||
},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
mitarbeiter_uid: {visible: false, headerFilter:"input"},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt_von: {visible: false, headerFilter:"input"},
|
||||
erteilt_von: {visible: false, headerFilter:"input"},
|
||||
akzeptiert_von: {visible: false, headerFilter:"input"}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenText'); ?>
|
||||
<ol>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenKlickStatusicon'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenLehrauftraegeWaehlen'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenMitKlickAnnehmen'); ?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<div class="col-xs-12 col-md-8 col-lg-6">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><?php echo $this->p->t('lehre', 'filterAlleBeiAnnahme'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterErteiltBeiAnnahme'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
@@ -16,7 +16,76 @@ $this->load->view(
|
||||
'tablewidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeErteilen'),
|
||||
'global' => array(
|
||||
'lehrauftraegeErteilen',
|
||||
'mehrHilfe',
|
||||
'weitereInformationenUnter'
|
||||
),
|
||||
'ui' => array(
|
||||
'anzeigen',
|
||||
'alleAnzeigen',
|
||||
'nurNeueAnzeigen',
|
||||
'nurBestellteAnzeigen',
|
||||
'nurErteilteAnzeigen',
|
||||
'nurAngenommeneAnzeigen',
|
||||
'nurGeaenderteAnzeigen',
|
||||
'nurDummiesAnzeigen',
|
||||
'hilfeZuDieserSeite',
|
||||
'alleAuswaehlen',
|
||||
'alleAbwaehlen',
|
||||
'ausgewaehlteZeilen',
|
||||
'hilfe',
|
||||
'tabelleneinstellungen',
|
||||
'keineDatenVorhanden',
|
||||
'spaltenEinstellen',
|
||||
'bestelltVon',
|
||||
'erteiltVon',
|
||||
'angenommenVon',
|
||||
'stundenStundensatzGeaendert',
|
||||
'neuerLehrauftragOhneLektorVerplant',
|
||||
'wartetAufBestellung',
|
||||
'wartetAufErneuteBestellung',
|
||||
'neuerLehrauftragWartetAufBestellung',
|
||||
'letzterStatusBestellt',
|
||||
'letzterStatusErteilt',
|
||||
'letzterStatusAngenommen',
|
||||
),
|
||||
'table' => array(
|
||||
'spaltenEinAusblenden',
|
||||
'spaltenEinAusblendenMitKlickOeffnen',
|
||||
'spaltenEinAusblendenAufEinstellungenKlicken',
|
||||
'spaltenEinAusblendenMitKlickAktivieren',
|
||||
'spaltenEinAusblendenMitKlickSchliessen',
|
||||
'spaltenbreiteVeraendern',
|
||||
'spaltenbreiteVeraendernText',
|
||||
'spaltenbreiteVeraendernInfotext',
|
||||
'zeilenAuswaehlen',
|
||||
'zeilenAuswaehlenEinzeln',
|
||||
'zeilenAuswaehlenBereich',
|
||||
'zeilenAuswaehlenAlle'
|
||||
),
|
||||
'lehre' => array(
|
||||
'lehrauftragStandardBestellprozess',
|
||||
'lehrauftragStandardBestellprozessBestellen',
|
||||
'lehrauftragStandardBestellprozessErteilen',
|
||||
'lehrauftragStandardBestellprozessAnnehmen',
|
||||
'lehrauftraegeErteilen',
|
||||
'lehrauftraegeErteilenText',
|
||||
'lehrauftraegeErteilenKlickStatusicon',
|
||||
'lehrauftraegeErteilenLehrauftraegeWaehlen',
|
||||
'lehrauftraegeErteilenMitKlickErteilen',
|
||||
'geaenderteLehrauftraege',
|
||||
'geaenderteLehrauftraegeTextBeiErteilung',
|
||||
'lehrauftraegeNichtAuswaehlbar',
|
||||
'lehrauftraegeNichtAuswaehlbarTextBeiErteilung',
|
||||
'filterAlle',
|
||||
'filterNeu',
|
||||
'filterBestellt',
|
||||
'filterErteilt',
|
||||
'filterAngenommen',
|
||||
'filterGeaendert',
|
||||
'filterDummies'
|
||||
)
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
@@ -24,7 +93,6 @@ $this->load->view(
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<body>
|
||||
@@ -36,7 +104,7 @@ $this->load->view(
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeErteilen')); ?>
|
||||
@@ -48,103 +116,7 @@ $this->load->view(
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
|
||||
<h4>Lehrauftrag Standard-Bestellprozess</h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="text-muted">BESTELLEN<br>(Studiengangsleitung)</td>
|
||||
<td></td>
|
||||
<td><b>ERTEILEN<br>(Department-/Kompetenzfeldleitung)</b></td>
|
||||
<td></td>
|
||||
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Lehraufträge erteilen</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald Lehraufträge bestellt wurden, können Sie diese hier erteilen.<br>
|
||||
Erteilte Lehraufträge können von den Lehrenden angenommen werden.<br>
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur bestellte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die zu erteilenden Lehraufträge selbst oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Klicken Sie auf Lehrauftrag erteilen.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Geänderte Lehraufträge</h4>
|
||||
<div class="panel panel-body">
|
||||
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
|
||||
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, müssen diese vom Studiengang erneut bestellt werden.<br>
|
||||
Bei bereits erteilten Lehraufträgen wird zusätzlich der Status 'erteilt' zurückgesetzt.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'bestellt' können gewählt werden.<br>
|
||||
Neue, Bestellte, Akzeptierte oder geänderte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
|
||||
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<?php $this->load->view('lehre/lehrauftrag/approveLehrauftragHelp') ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,7 +169,7 @@ $this->load->view(
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -213,20 +185,20 @@ $this->load->view(
|
||||
<!-- filter buttons & erteil-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<button id="approve-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag erteilen</button>
|
||||
<button id="approve-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeErteilen')); ?></button>
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurNeueAnzeigen'); ?>"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurBestellteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i></button>
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,20 +9,20 @@ SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
personalnummer,
|
||||
auftrag,
|
||||
stg_typ_kurzbz,
|
||||
gruppe,
|
||||
typ,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
lv_bezeichnung,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
lektor,
|
||||
stunden,
|
||||
betrag,
|
||||
@@ -305,46 +305,46 @@ $filterWidgetArray = array(
|
||||
'tableUniqueId' => 'approveLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_erteilen',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'Personalnummer',
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'LV',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
'Semester',
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Lektor',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
ucfirst($this->p->t('global', 'personalnummer')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
|
||||
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('lehre', 'gruppe')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehreinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
|
||||
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
|
||||
'Semester',
|
||||
ucfirst($this->p->t('lehre', 'organisationsform')),
|
||||
'Person-ID',
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lektor')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
|
||||
'UID',
|
||||
ucfirst($this->p->t('ui', 'bestellt')),
|
||||
ucfirst($this->p->t('ui', 'erteilt')),
|
||||
ucfirst($this->p->t('ui', 'angenommen')),
|
||||
ucfirst($this->p->t('ui', 'bestelltVon')),
|
||||
ucfirst($this->p->t('ui', 'erteiltVon')),
|
||||
ucfirst($this->p->t('ui', 'angenommenVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 700,
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
height: func_height(this),
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded
|
||||
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
@@ -357,13 +357,9 @@ $filterWidgetArray = array(
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
initialFilter: func_initialFilter(),
|
||||
footerElement: func_footerElement(),
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row)
|
||||
{
|
||||
func_rowFormatter(row);
|
||||
@@ -373,44 +369,49 @@ $filterWidgetArray = array(
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
}
|
||||
},
|
||||
tableWidgetFooter: {
|
||||
selectButtons: true
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
// column status is built dynamically in funcTableBuilt(),
|
||||
row_index: {visible:false}, // necessary for row indexing
|
||||
personalnummer: {visible: false},
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
|
||||
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();},},
|
||||
lehrveranstaltung_id: {headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
personalnummer: {visible: false, headerFilter:"input"},
|
||||
auftrag: {
|
||||
headerFilter:"input", widthGrow: 2,
|
||||
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
|
||||
},
|
||||
stg_typ_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
typ: {headerFilter:"input"},
|
||||
lehreinheit_id: {visible: false, headerFilter:"input"},
|
||||
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false, headerFilter:"input"},
|
||||
projektarbeit_id: {visible: false, headerFilter:"input"},
|
||||
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
|
||||
studiengang_kz: {visible: false, headerFilter:"input"},
|
||||
semester: {headerFilter:"input"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
auftrag: {headerFilter:"input", width:"20%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 3},
|
||||
orgform_kurzbz: {visible: false, headerFilter:"input"},
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 2},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false},
|
||||
mitarbeiter_uid: {visible: false, headerFilter:"input"},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt_von: {visible: false, headerFilter:"input"},
|
||||
erteilt_von: {visible: false, headerFilter:"input"},
|
||||
akzeptiert_von: {visible: false, headerFilter:"input"},
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozess'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></td>
|
||||
<td></td>
|
||||
<td><b><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?></b></td>
|
||||
<td></td>
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeErteilen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeErteilenText'); ?>
|
||||
<ol>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenKlickStatusicon'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenLehrauftraegeWaehlen'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenMitKlickErteilen'); ?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'geaenderteLehrauftraege'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'geaenderteLehrauftraegeTextBeiErteilung'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarTextBeiErteilung'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><?php echo $this->p->t('lehre', 'filterAlle'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterNeu'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterBestellt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterErteilt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterGeaendert'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterDummies'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('global', 'mehrHilfe'); ?></h4>
|
||||
<div class="panel panel-info panel-body">
|
||||
<?php echo $this->p->t('global', 'weitereInformationenUnter'); ?><a href="https://wiki.fhcomplete.org/doku.php?id=fhc:lehrauftraege" target="_blank">FH Complete WIKI</a>
|
||||
</div><br>
|
||||
@@ -53,20 +53,17 @@ $tableWidgetArray = array(
|
||||
'tableUniqueId' => 'cancelledLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status',
|
||||
'Studiensemester',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Storniert am'
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '. ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'storniertAm')),
|
||||
ucfirst($this->p->t('ui', 'storniertVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
@@ -78,22 +75,24 @@ $tableWidgetArray = array(
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
}
|
||||
},
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
vertrag_id: {visible: false},
|
||||
vertragsstunden_studiensemester_kurzbz: {visible: false},
|
||||
vertragstyp_kurzbz: {widthGrow: 2},
|
||||
bezeichnung: {widthGrow: 2},
|
||||
vertragsstunden_studiensemester_kurzbz: {visible: false, widthShrink:1},
|
||||
vertragstyp_kurzbz: {minWidth: 200},
|
||||
bezeichnung: {minWidth: 200},
|
||||
vertragsstunden: {
|
||||
align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1},
|
||||
minWidth: 200
|
||||
},
|
||||
betrag: {
|
||||
align:"right", formatter: form_formatNulltoStringNumber,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
|
||||
minWidth: 200
|
||||
},
|
||||
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip},
|
||||
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip, minWidth: 200},
|
||||
storniert_von: {visible: false},
|
||||
letzterStatus_vorStorniert: {visible: false}
|
||||
}', // col properties
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
// TODO: phrasen anpassen
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
@@ -17,7 +16,76 @@ $this->load->view(
|
||||
'tablewidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeBestellen'),
|
||||
'global' => array(
|
||||
'lehrauftraegeBestellen',
|
||||
'mehrHilfe',
|
||||
'weitereInformationenUnter'
|
||||
),
|
||||
'ui' => array(
|
||||
'anzeigen',
|
||||
'alleAnzeigen',
|
||||
'nurNeueAnzeigen',
|
||||
'nurBestellteAnzeigen',
|
||||
'nurErteilteAnzeigen',
|
||||
'nurAngenommeneAnzeigen',
|
||||
'nurGeaenderteAnzeigen',
|
||||
'nurDummiesAnzeigen',
|
||||
'hilfeZuDieserSeite',
|
||||
'alleAuswaehlen',
|
||||
'alleAbwaehlen',
|
||||
'ausgewaehlteZeilen',
|
||||
'hilfe',
|
||||
'tabelleneinstellungen',
|
||||
'keineDatenVorhanden',
|
||||
'spaltenEinstellen',
|
||||
'bestelltVon',
|
||||
'erteiltVon',
|
||||
'angenommenVon',
|
||||
'neuerLehrauftragOhneLektorVerplant',
|
||||
'neuerLehrauftragWartetAufBestellung',
|
||||
'letzterStatusBestellt',
|
||||
'letzterStatusErteilt',
|
||||
'letzterStatusAngenommen',
|
||||
'nachAenderungStundensatzStunden',
|
||||
'vorAenderungStundensatzStunden'
|
||||
),
|
||||
'table' => array(
|
||||
'spaltenEinAusblenden',
|
||||
'spaltenEinAusblendenMitKlickOeffnen',
|
||||
'spaltenEinAusblendenAufEinstellungenKlicken',
|
||||
'spaltenEinAusblendenMitKlickAktivieren',
|
||||
'spaltenEinAusblendenMitKlickSchliessen',
|
||||
'spaltenbreiteVeraendern',
|
||||
'spaltenbreiteVeraendernText',
|
||||
'spaltenbreiteVeraendernInfotext',
|
||||
'zeilenAuswaehlen',
|
||||
'zeilenAuswaehlenEinzeln',
|
||||
'zeilenAuswaehlenBereich',
|
||||
'zeilenAuswaehlenAlle'
|
||||
),
|
||||
'lehre' => array(
|
||||
'lehrauftragStandardBestellprozess',
|
||||
'lehrauftragStandardBestellprozessBestellen',
|
||||
'lehrauftragStandardBestellprozessErteilen',
|
||||
'lehrauftragStandardBestellprozessAnnehmen',
|
||||
'lehrauftraegeBestellen',
|
||||
'lehrauftraegeBestellenText',
|
||||
'lehrauftraegeBestellenKlickStatusicon',
|
||||
'lehrauftraegeBestellenLehrauftraegeWaehlen',
|
||||
'lehrauftraegeBestellenMitKlickBestellen',
|
||||
'lehrauftraegeBestellenVertragWirdAngelegt',
|
||||
'geaenderteLehrauftraege',
|
||||
'geaenderteLehrauftraegeText',
|
||||
'lehrauftraegeNichtAuswaehlbar',
|
||||
'lehrauftraegeNichtAuswaehlbarText',
|
||||
'filterAlle',
|
||||
'filterNeu',
|
||||
'filterBestellt',
|
||||
'filterErteilt',
|
||||
'filterAngenommen',
|
||||
'filterGeaendert',
|
||||
'filterDummies'
|
||||
)
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
@@ -35,8 +103,8 @@ $this->load->view(
|
||||
<!-- title & helper link -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseHelp">
|
||||
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeBestellen')); ?>
|
||||
@@ -48,105 +116,7 @@ $this->load->view(
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
|
||||
<h4>Lehrauftrag Standard-Bestellprozess</h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>BESTELLEN<br>(Studiengangsleitung)</b></td>
|
||||
<td></td>
|
||||
<td class="text-muted">ERTEILEN<br>(Department-/Kompetenzfeldleitung)</td>
|
||||
<td></td>
|
||||
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Lehraufträge bestellen</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald im FAS ein Lehrauftrag/eine Projektbetreuung angelegt wurde, können Sie diese hier bestellen.<br>
|
||||
Bestellte Lehraufträge sind zur Erteilung freigegeben.<br>
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur neue anzeigen', 'Nur geänderte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die zu bestellenden Lehraufträge selbst oder über den Button 'Alle auswählen'.</li>
|
||||
<li>Klicken Sie auf Lehrauftrag bestellen.</li>
|
||||
</ol>
|
||||
Für jeden bestellten Lehrauftrag legt das System einen Vertrag an.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Geänderte Lehraufträge</h4>
|
||||
<div class="panel panel-body">
|
||||
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
|
||||
Diese müssen dann erneut bestellt werden.<br><br>
|
||||
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, werden diese in einem tooltip angezeigt.<br>
|
||||
Fahren Sie dazu mit der Maus über dem Status-Icon am Beginn der Zeile.<br>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'neu' und 'geändert' können bestellt werden.<br>
|
||||
Erteilte oder akzeptierte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
|
||||
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragHelp') ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -199,36 +169,31 @@ $this->load->view(
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tabulator data table -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
|
||||
|
||||
<!-- filter buttons & bestell-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<button id="order-lehrauftraege" class="btn btn-primary pull-right" data-toggle="tooltip" data-placement="left" title="">Lehrauftrag bestellen</button>
|
||||
<button id="order-lehrauftraege" class="btn btn-primary pull-right" data-toggle="tooltip" data-placement="left" title=""><?php echo ucfirst($this->p->t('global', 'lehrauftraegeBestellen')); ?></button>
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurNeueAnzeigen'); ?>"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurBestellteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i></button>
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -239,4 +204,4 @@ $this->load->view(
|
||||
<br>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -9,13 +9,16 @@ SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
personalnummer,
|
||||
auftrag,
|
||||
stg_typ_kurzbz,
|
||||
gruppe,
|
||||
typ,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
lv_bezeichnung,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
/* get valid STPL(s), to which the lehrveranstaltung is assigned to (can be more) */
|
||||
/* therefore join over lv, studiensemester and semester */
|
||||
@@ -49,10 +52,7 @@ SELECT
|
||||
) AS "studienplan_bezeichnung",
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
lektor,
|
||||
stunden,
|
||||
stundensatz,
|
||||
@@ -337,54 +337,53 @@ $filterWidgetArray = array(
|
||||
'tableUniqueId' => 'orderLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_bestellen',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'Personalnummer',
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'LV',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
ucfirst($this->p->t('global', 'personalnummer')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
|
||||
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('lehre', 'gruppe')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehreinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
|
||||
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
|
||||
'Semester',
|
||||
'Studienplan',
|
||||
'OrgForm',
|
||||
ucfirst($this->p->t('lehre', 'studienplan')),
|
||||
ucfirst($this->p->t('lehre', 'organisationsform')),
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Lektor',
|
||||
'Stunden',
|
||||
'Stundensatz',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lektor')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'stundensatz')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
ucfirst($this->p->t('ui', 'bestellt')),
|
||||
ucfirst($this->p->t('ui', 'erteilt')),
|
||||
ucfirst($this->p->t('ui', 'angenommen')),
|
||||
ucfirst($this->p->t('ui', 'bestelltVon')),
|
||||
ucfirst($this->p->t('ui', 'erteiltVon')),
|
||||
ucfirst($this->p->t('ui', 'angenommenVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 700,
|
||||
layout:"fitColumns", // fit columns to width of table
|
||||
responsiveLayout:"hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
footerElement: func_footerElement(),
|
||||
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
height: func_height(this),
|
||||
layout:"fitColumns", // fit columns to width of table
|
||||
layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded
|
||||
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
selectable: true, // allows row selection
|
||||
selectableRangeMode: "click", // allows range selection using shift end click on end of range
|
||||
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
|
||||
@@ -394,9 +393,6 @@ $filterWidgetArray = array(
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
@@ -409,46 +405,52 @@ $filterWidgetArray = array(
|
||||
dataLoaded: function(data){
|
||||
func_dataLoaded(data, this);
|
||||
},
|
||||
tableWidgetFooter: {
|
||||
selectButtons: true
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
// column status is built dynamically in funcTableBuilt()
|
||||
row_index: {visible: false},
|
||||
personalnummer: {visible: false},
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
|
||||
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}},
|
||||
lehrveranstaltung_id: {headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
personalnummer: {visible: false, headerFilter:"input"},
|
||||
auftrag: {
|
||||
headerFilter:"input", widthGrow: 2,
|
||||
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
|
||||
},
|
||||
stg_typ_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
typ: {headerFilter:"input"},
|
||||
lehreinheit_id: {visible: false, headerFilter:"input"},
|
||||
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false, headerFilter:"input"},
|
||||
projektarbeit_id: {visible: false, headerFilter:"input"},
|
||||
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
|
||||
studiengang_kz: {visible: false, headerFilter:"input"},
|
||||
semester: {headerFilter:"input"},
|
||||
studienplan_bezeichnung: {headerFilter:"input", width: "7%"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
auftrag: {headerFilter:"input", width:"15%"},
|
||||
studienplan_bezeichnung: {visible: false, headerFilter:"input"},
|
||||
orgform_kurzbz: {visible: false, headerFilter:"input", widthGrow: 2},
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 3},
|
||||
lektor: {headerFilter:"input", widthGrow: 2},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
stundensatz: {visible: false},
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
stundensatz: {visible: false, align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money",
|
||||
bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_id: {visible: false, headerFilter:"input"},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
mitarbeiter_uid: {visible: false, headerFilter:"input"},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt_von: {visible: false, headerFilter:"input"},
|
||||
erteilt_von: {visible: false, headerFilter:"input"},
|
||||
akzeptiert_von: {visible: false, headerFilter:"input"}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozess'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></b></td>
|
||||
<td></td>
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?></td>
|
||||
<td></td>
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeBestellen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeBestellenText'); ?>
|
||||
<br>
|
||||
<ol>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenKlickStatusicon'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenLehrauftraegeWaehlen'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenMitKlickBestellen'); ?></li>
|
||||
</ol>
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeBestellenVertragWirdAngelegt'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'geaenderteLehrauftraege'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'geaenderteLehrauftraegeText'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarText'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><?php echo $this->p->t('lehre', 'filterAlle'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterNeu'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterBestellt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterErteilt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterGeaendert'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterDummies'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('global', 'mehrHilfe'); ?></h4>
|
||||
<div class="panel panel-info panel-body">
|
||||
<?php echo $this->p->t('global', 'weitereInformationenUnter'); ?>
|
||||
<a href="https://wiki.fhcomplete.org/doku.php?id=fhc:lehrauftraege" target="_blank">FH Complete WIKI</a>
|
||||
</div><br>
|
||||
@@ -0,0 +1,232 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Pruefungsprotokoll',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'phrases' => array(
|
||||
'abschlusspruefung' => array(
|
||||
'freigegebenAm',
|
||||
'pruefungGespeichert',
|
||||
'pruefungSpeichernFehler',
|
||||
'abschlussbeurteilungLeer',
|
||||
'beginnzeitLeer',
|
||||
'beginnzeitFormatError',
|
||||
'endezeitLeer',
|
||||
'endezeitFormatError',
|
||||
'endezeitBeforeError',
|
||||
'verfNotice'
|
||||
),
|
||||
'ui' => array(
|
||||
'stunde',
|
||||
'minute'
|
||||
)
|
||||
),
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate_contentonly.css',
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.css',
|
||||
'public/css/lehre/pruefungsprotokoll.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.js',
|
||||
'public/js/lehre/pruefungsprotokoll.js'
|
||||
)
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<?php if (isset($abschlusspruefung)):
|
||||
$studiengangstyp_name = $abschlusspruefung->studiengangstyp == 'b' ? 'Bachelor' : 'Master';
|
||||
$pruefung_name = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungBachelor') : $this->p->t('abschlusspruefung', 'pruefungMaster');
|
||||
$arbeit_name = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'arbeitBachelor') : $this->p->t('abschlusspruefung', 'arbeitMaster');
|
||||
$protokolltextvorlage = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungsnotizenBachelor') : $this->p->t('abschlusspruefung', 'pruefungsnotizenMaster');
|
||||
$protokolltext = isset($abschlusspruefung->protokoll) ? $abschlusspruefung->protokoll : $protokolltextvorlage;
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'protokoll') ?> <?php echo $pruefung_name ?>
|
||||
</h3>
|
||||
<p>
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?>
|
||||
<?php echo $language == 'German' ? $abschlusspruefung->studiengangbezeichnung : $abschlusspruefung->studiengangbezeichnung_englisch ?>, <?php echo $this->p->t('abschlusspruefung', 'studiengangskennzahl') ?>
|
||||
<?php echo $abschlusspruefung->studiengang_kz ?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h4>
|
||||
<?php echo $abschlusspruefung->titelpre_student . ' ' . $abschlusspruefung->vorname_student . ' ' . $abschlusspruefung->nachname_student . ' ' . $abschlusspruefung->titelpost_student?>
|
||||
</h4>
|
||||
<p><?php echo $this->p->t('abschlusspruefung', 'personenkennzeichen') ?>: <?php echo $abschlusspruefung->matrikelnr ?></p>
|
||||
<br />
|
||||
<input type="hidden" name="abschlusspruefung_id" value="<?php echo $abschlusspruefung->abschlusspruefung_id;?>" id="abschlusspruefung_id">
|
||||
<form id="protocolform">
|
||||
<table class="table-condensed table-bordered table-responsive" id="protocoltbl">
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungssenat') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'vorsitz') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_vorsitz . ' ' . $abschlusspruefung->vorname_vorsitz . ' ' . $abschlusspruefung->nachname_vorsitz . ' ' . $abschlusspruefung->titelpost_vorsitz ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'erstpruefer') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_erstpruefer . ' ' . $abschlusspruefung->vorname_erstpruefer . ' ' . $abschlusspruefung->nachname_erstpruefer . ' ' . $abschlusspruefung->titelpost_erstpruefer ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'zweitpruefer') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_zweitpruefer . ' ' . $abschlusspruefung->vorname_zweitpruefer . ' ' . $abschlusspruefung->nachname_zweitpruefer . ' ' . $abschlusspruefung->titelpost_zweitpruefer ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsdatum') ?>
|
||||
</td>
|
||||
<td class="datevalcellwidth">
|
||||
<?php echo date_format(date_create($abschlusspruefung->datum), 'd.m.Y'); ?>
|
||||
</td>
|
||||
<td class="cellbg namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsbeginn') ?>
|
||||
</td>
|
||||
<td class="timecellwidth">
|
||||
<input class="timepicker form-control" name="pruefungsbeginn" id="pruefungsbeginn" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsbeginn), 'H:i') ?>">
|
||||
</td>
|
||||
<td class="cellbg namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsende') ?>
|
||||
</td>
|
||||
<td class="timecellwidth">
|
||||
<input class="timepicker form-control" name="pruefungsende" id="pruefungsende" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsende), 'H:i') ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsantritt') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $language == 'German' ? $abschlusspruefung->pruefungsantritt_bezeichnung : $abschlusspruefung->pruefungsantritt_bezeichnung_english; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungName') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<input type="checkbox" id="verfCheck">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungText') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'themaBeurteilung') ?> <?php echo $arbeit_name ?>
|
||||
</td>
|
||||
<td colspan="4">
|
||||
<?php echo isset($abschlusspruefung->abschlussarbeit_titel) ? $abschlusspruefung->abschlussarbeit_titel : '' ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo $this->p->t('lehre', 'note') ?>: <?php echo isset($abschlusspruefung->abschlussarbeit_note) ? $abschlusspruefung->abschlussarbeit_note : '' ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsgegenstand') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo ($abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungsgegenstandBachelor') : $this->p->t('abschlusspruefung', 'pruefungsgegenstandMaster')) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo ucfirst($this->p->t('global', 'notizen')); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
|
||||
<textarea id="protokoll" name="protokoll" class="form-control" rows="15" cols="107"><?php echo $protokolltext ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungKriterienBachelor') : $this->p->t('abschlusspruefung', 'beurteilungKriterienMaster') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungBachelor') : $this->p->t('abschlusspruefung', 'beurteilungMaster') ?>:
|
||||
<select name="abschlussbeurteilung_kurzbz" id="abschlussbeurteilung_kurzbz" class="form-control">
|
||||
<option value="">-- <?php echo $this->p->t('ui', 'bitteWaehlen'); ?> --</option>
|
||||
<?php foreach ($abschlussbeurteilung as $beurteilung):
|
||||
$selected = $beurteilung->abschlussbeurteilung_kurzbz == $abschlusspruefung->abschlussbeurteilung_kurzbz ? " selected" : "" ?>
|
||||
<option value="<?php echo $beurteilung->abschlussbeurteilung_kurzbz; ?>"<?php echo $selected ?>><?php echo $language == 'German' ? $beurteilung->bezeichnung : $beurteilung->bezeichnung_english; ?> </option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<span id="verfNotice"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-right">
|
||||
<p>
|
||||
<?php $freigegeben = isset($abschlusspruefung->freigabedatum); ?>
|
||||
<button id="saveProtocolBtn" class="btn btn-default"<?php echo $freigegeben ? " disabled" : "" ?>><?php echo $this->p->t('ui', 'speichern') ?></button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr id="hrbottom">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<span id="freigegebenText">
|
||||
<?php
|
||||
if ($freigegeben)
|
||||
echo ' ' . $this->p->t('abschlusspruefung', 'freigegebenAm') . ' ' . date_format(date_create($abschlusspruefung->freigabedatum), 'd.m.Y')
|
||||
?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="input-group">
|
||||
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
|
||||
<span class="input-group-btn">
|
||||
<button id="freigebenProtocolBtn" class="btn btn-default"><?php echo $this->p->t('abschlusspruefung', 'ueberpruefenFreigeben') ?></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Prüfungsprotokoll',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'phrases' => array(
|
||||
'ui' => array(
|
||||
'keineDatenVorhanden',
|
||||
)
|
||||
),
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('abschlusspruefung','pruefungsprotokoll'); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo $this->p->t('abschlusspruefung','einfuehrungstext'); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/pruefungsprotokollUebersichtData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
$UID = getAuthUID();
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
tbl_abschlusspruefung.abschlusspruefung_id,
|
||||
tbl_person.nachname || ' ' || tbl_person.vorname as name,
|
||||
tbl_studiengangstyp.bezeichnung || ' ' || tbl_studiengang.bezeichnung,
|
||||
tbl_abschlusspruefung.datum,
|
||||
tbl_abschlusspruefung.freigabedatum
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung
|
||||
JOIN public.tbl_student USING(student_uid)
|
||||
JOIN public.tbl_benutzer ON(student_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_studiengang ON(tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
|
||||
JOIN public.tbl_studiengangstyp USING(typ);
|
||||
WHERE
|
||||
vorsitz='".$UID."'
|
||||
AND datum>='2020-05-27'
|
||||
ORDER BY datum, nachname, vorname
|
||||
";
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'tableUniqueId' => 'pruefungsprotokoll',
|
||||
'requiredPermissions' => 'lehre/pruefungsbeurteilung',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'columnsAliases' => array(
|
||||
ucfirst($this->p->t('global', 'details')),
|
||||
ucfirst($this->p->t('global', 'name')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('global', 'datum')),
|
||||
ucfirst($this->p->t('global', 'status')),
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
/* NOTE: Dont use $this here for PHP Version compatibility */
|
||||
$datasetRaw->{'abschlusspruefung_id'} = sprintf(
|
||||
'<a href="%s?abschlusspruefung_id=%s" target="_blank">Protokoll ausfüllen</a>',
|
||||
site_url('lehre/Pruefungsprotokoll/Protokoll'),
|
||||
$datasetRaw->{'abschlusspruefung_id'}
|
||||
);
|
||||
|
||||
if ($datasetRaw->{'datum'} == null)
|
||||
{
|
||||
$datasetRaw->{'datum'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}),'d.m.Y');
|
||||
}
|
||||
if ($datasetRaw->{'freigabedatum'} == null)
|
||||
{
|
||||
$datasetRaw->{'freigabedatum'} = 'offen';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'freigabedatum'} = 'Freigegeben am: '.date_format(date_create($datasetRaw->{'freigabedatum'}),'d.m.Y');
|
||||
}
|
||||
return $datasetRaw;
|
||||
},
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
|
||||
|
||||
?>
|
||||
@@ -106,7 +106,7 @@
|
||||
public.tbl_reihungstest
|
||||
LEFT JOIN public.tbl_studiengang using(studiengang_kz)
|
||||
WHERE
|
||||
datum>now()-'2 weeks'::interval
|
||||
datum>now()-'5 months'::interval
|
||||
ORDER BY datum desc
|
||||
) data
|
||||
",
|
||||
@@ -142,7 +142,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'anmeldefrist'} = date_format(date_create($datasetRaw->{'anmeldefrist'}), 'd.m.Y');
|
||||
$datasetRaw->{'anmeldefrist'} = date_format(date_create($datasetRaw->{'anmeldefrist'}), 'Y-m-d');
|
||||
}
|
||||
if ($datasetRaw->{'max_plaetze'} == null)
|
||||
{
|
||||
@@ -175,7 +175,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}), 'd.m.Y');
|
||||
$datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}), 'Y-m-d');
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
|
||||
@@ -1,150 +1,111 @@
|
||||
<?php $this->load->view("templates/header", array("title" => "UDF", "widgetsCSS" => true)); ?>
|
||||
|
||||
<body style="background-color: #eff0f1;">
|
||||
|
||||
<?php
|
||||
if ($result != null)
|
||||
{
|
||||
if (isSuccess($result))
|
||||
{
|
||||
?>
|
||||
<div style="color: black;">
|
||||
Saved!
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<div style="color: red;">
|
||||
Error while saving!
|
||||
</div>
|
||||
<br>
|
||||
<div style="color: red;">
|
||||
<?php
|
||||
$errors = $result->retval;
|
||||
if(is_array($errors))
|
||||
{
|
||||
foreach ($errors as $error)
|
||||
{
|
||||
foreach ($error as $fieldError)
|
||||
{
|
||||
echo $fieldError->code . ': ' . $fieldError->retval . '<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
echo $result->retval;
|
||||
?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
<form action="<?php echo site_url('system/FAS_UDF/saveUDF'); ?>" method="POST">
|
||||
|
||||
<div class="div-table">
|
||||
<div class="div-row">
|
||||
<div class="div-cell" style="font-size: 20px; font-weight: bold;">
|
||||
Zusatzfelder
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-row">
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-row">
|
||||
<?php
|
||||
if (isset($personUdfs))
|
||||
{
|
||||
?>
|
||||
<div class="div-cell">
|
||||
<?php
|
||||
echo $this->udflib->UDFWidget(
|
||||
array(
|
||||
UDFLib::SCHEMA_ARG_NAME => 'public',
|
||||
UDFLib::TABLE_ARG_NAME => 'tbl_person',
|
||||
UDFLib::UDFS_ARG_NAME => $personUdfs
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="div-cell" style="width: 40px;">
|
||||
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (isset($prestudentUdfs))
|
||||
{
|
||||
?>
|
||||
<div class="div-cell">
|
||||
<?php
|
||||
echo $this->udflib->UDFWidget(
|
||||
array(
|
||||
UDFLib::SCHEMA_ARG_NAME => 'public',
|
||||
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
|
||||
UDFLib::UDFS_ARG_NAME => $prestudentUdfs
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="div-row">
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-row halign-right">
|
||||
<?php
|
||||
if (isset($personUdfs) && isset($prestudentUdfs))
|
||||
{
|
||||
?>
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div class="div-cell halign-right">
|
||||
<input type="submit" value=" Speichern ">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if (isset($personUdfs))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="person_id" value="<?php echo $personUdfs['person_id']; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (isset($prestudentUdfs))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="prestudent_id" value="<?php echo $prestudentUdfs['prestudent_id']; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</form>
|
||||
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/footer"); ?>
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'InfocenterDetails',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'jqueryui' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'udfs' => true,
|
||||
'widgets' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js'
|
||||
)
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body style="background-color: #eff0f1;">
|
||||
|
||||
<div class="div-table">
|
||||
<div class="div-row">
|
||||
<div class="div-cell" style="font-size: 20px; font-weight: bold;">
|
||||
Zusatzfelder
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-row">
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-row">
|
||||
<?php
|
||||
if (isset($personUdfs))
|
||||
{
|
||||
?>
|
||||
<div class="div-cell">
|
||||
<?php
|
||||
echo $this->udflib->UDFWidget(
|
||||
array(
|
||||
UDFLib::UDF_UNIQUE_ID => 'fasPersonUDFs',
|
||||
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'basis/person',
|
||||
UDFLib::SCHEMA_ARG_NAME => 'public',
|
||||
UDFLib::TABLE_ARG_NAME => 'tbl_person',
|
||||
UDFLib::PRIMARY_KEY_NAME => 'person_id',
|
||||
UDFLib::PRIMARY_KEY_VALUE => $person_id,
|
||||
UDFLib::UDFS_ARG_NAME => $personUdfs
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="div-cell" style="width: 40px;">
|
||||
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (isset($prestudentUdfs))
|
||||
{
|
||||
?>
|
||||
<div class="div-cell">
|
||||
<?php
|
||||
echo $this->udflib->UDFWidget(
|
||||
array(
|
||||
UDFLib::UDF_UNIQUE_ID => 'fasPrestudentUDFs',
|
||||
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'basis/person',
|
||||
UDFLib::SCHEMA_ARG_NAME => 'public',
|
||||
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
|
||||
UDFLib::PRIMARY_KEY_NAME => 'prestudent_id',
|
||||
UDFLib::PRIMARY_KEY_VALUE => $prestudent_id,
|
||||
UDFLib::UDFS_ARG_NAME => $prestudentUdfs
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="div-row">
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-row halign-right">
|
||||
<?php
|
||||
if (isset($personUdfs) && isset($prestudentUdfs))
|
||||
{
|
||||
?>
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
<div class="div-cell">
|
||||
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/footer"); ?>
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
'sbadmintemplate' => true,
|
||||
'addons' => true,
|
||||
'navigationwidget' => true,
|
||||
'udfs' => true,
|
||||
'widgets' => true,
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate.css',
|
||||
'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
|
||||
@@ -185,6 +185,25 @@
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
(
|
||||
SELECT rtp.datum
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
LEFT JOIN (
|
||||
SELECT rtp.person_id,
|
||||
rt.studiensemester_kurzbz,
|
||||
rtp.teilgenommen,
|
||||
rt.datum
|
||||
FROM public.tbl_rt_person rtp
|
||||
JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id)
|
||||
WHERE rt.stufe = 1
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestDate",
|
||||
(
|
||||
SELECT ps.zgvnation
|
||||
FROM public.tbl_prestudent ps
|
||||
@@ -258,6 +277,7 @@
|
||||
'Statusgrund',
|
||||
'Reihungstest angetreten',
|
||||
'Reihungstest angemeldet',
|
||||
'Reihungstest date',
|
||||
'ZGV Nation'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
@@ -337,6 +357,16 @@
|
||||
{
|
||||
$datasetRaw->{'ReihungstestApplied'} = 'Nein';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'ReihungstestDate'} == null)
|
||||
{
|
||||
$datasetRaw->{'ReihungstestDate'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'ZGVNation'} == null)
|
||||
{
|
||||
$datasetRaw->{'ZGVNation'} = '-';
|
||||
|
||||
@@ -34,12 +34,14 @@
|
||||
//set bootstrap columns for zgv form
|
||||
$columns = array(3, 3, 3, 3);
|
||||
|
||||
$headercolumns = array(7, 5);
|
||||
if (!$infoonly && isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) && isset($zgvpruefung->prestudentstatus->bewerbungstermin))
|
||||
{
|
||||
$headercolumns[0] = 4;
|
||||
$headercolumns[1] = 8;
|
||||
$headercolumns = $zgvpruefung->hasBewerber === true ? array(3, 5, 4) : array(4, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
$headercolumns = $zgvpruefung->hasBewerber === true ? array(4, 4, 4) : array(7, 5);
|
||||
}
|
||||
|
||||
if (!$first)
|
||||
echo '<br />';
|
||||
@@ -68,6 +70,11 @@
|
||||
?></a>
|
||||
</h4>
|
||||
</div>
|
||||
<?php if($zgvpruefung->hasBewerber === true): ?>
|
||||
<div class="col-xs-<?php echo $headercolumns[2]; ?> text-center text-danger">
|
||||
<?php echo $this->p->t('infocenter', 'rtErgebnisExistiert') ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
$changeup = isset($zgvpruefung->changeup) && $zgvpruefung->changeup === true;
|
||||
$changedown = isset($zgvpruefung->changedown) && $zgvpruefung->changedown === true;
|
||||
@@ -77,7 +84,7 @@
|
||||
<span<?php echo $changeup || $changedown ? ' class="zgvheaderbeforeprio"' : ''?>>
|
||||
<?php if ($infoonly): ?>
|
||||
<?php if (isset($zgvpruefung->prestudentstatus->bestaetigtam)): ?>
|
||||
<i class="fa fa-check" style="color: green"></i>
|
||||
<i class="fa fa-check text-success"></i>
|
||||
<?php if (isset($zgvpruefung->prestudentstatus->statusgrund_id))
|
||||
echo $this->p->t('global', 'anStudiengangFreigegeben').(isset($zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0]) ? ' ('.$zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0].')' : '');
|
||||
else
|
||||
@@ -85,9 +92,9 @@
|
||||
?>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<?php echo ucfirst($this->p->t('infocenter', 'bewerbung')) . ' ' . $this->p->t('global', 'abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
|
||||
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
|
||||
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
|
||||
<?php echo ucfirst($this->p->t('infocenter', 'bewerbung')) . ' ' . $this->p->t('global', 'abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-times text-danger"></i>'); ?>
|
||||
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
|
||||
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
echo ' | ' . ucfirst($this->p->t('infocenter', 'priorisierung')) . ': ';
|
||||
@@ -118,8 +125,7 @@
|
||||
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
class="panel-collapse collapse<?php echo $infoonly ? '' : ' in' ?>">
|
||||
<div class="panel-body">
|
||||
<form method="post"
|
||||
action="#" class="zgvform">
|
||||
<form action="javascript:void(0);" class="zgvform" id="zgvform_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<input type="hidden" name="prestudentid" value="<?php echo $zgvpruefung->prestudent_id ?>" class="prestudentidinput">
|
||||
<div class="row">
|
||||
<div class="col-lg-<?php echo $columns[0] ?>">
|
||||
@@ -302,21 +308,38 @@
|
||||
</div>
|
||||
<!-- show only master zgv if master studiengang - end -->
|
||||
<?php endif; ?>
|
||||
<?php if (!$infoonly): ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-left">
|
||||
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('ui', 'speichern') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</form>
|
||||
<?php if (!$infoonly): ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-left">
|
||||
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('ui', 'speichern') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<br />
|
||||
<?php
|
||||
if (isset($zgvpruefung->prestudentUdfs))
|
||||
{
|
||||
echo $this->udflib->UDFWidget(
|
||||
array(
|
||||
UDFLib::UDF_UNIQUE_ID => 'infocenterPrestudentUDFs_'.$zgvpruefung->prestudent_id,
|
||||
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'infocenter',
|
||||
UDFLib::SCHEMA_ARG_NAME => 'public',
|
||||
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
|
||||
UDFLib::PRIMARY_KEY_NAME => 'prestudent_id',
|
||||
UDFLib::PRIMARY_KEY_VALUE => $zgvpruefung->prestudent_id,
|
||||
UDFLib::UDFS_ARG_NAME => $zgvpruefung->prestudentUdfs
|
||||
)
|
||||
);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
@@ -472,10 +495,10 @@
|
||||
</div><!-- /.row -->
|
||||
</div><!-- /.panel-footer -->
|
||||
<?php elseif (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
|
||||
<div class="panel-footer" style="border-top: 1px solid #ddd">
|
||||
<div class="panel-footer solidtop">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-left">
|
||||
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? '<i class="fa fa-check" style="color: green"></i>' : '<i class="fa fa-check" style="color: red"></i>' ?>
|
||||
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-check text-danger"></i>' ?>
|
||||
<label>
|
||||
<?php if (isset($zgvpruefung->prestudentstatus->statusgrund_id))
|
||||
echo $this->p->t('global', 'anStudiengangFreigegeben').(isset($zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0]) ? ' ('.$zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0].')' : '');
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<span class="buttonsSpacer"></span>
|
||||
|
||||
<span>
|
||||
<input id="writeMessage" type="button" value="<?php echo $this->p->t('ui', 'nachrichtSenden'); ?>">
|
||||
<?php echo $writeButton; ?>
|
||||
|
||||
<input id="replyMessage" type="button" value="<?php echo $this->p->t('global', 'reply'); ?>">
|
||||
</span>
|
||||
|
||||
@@ -85,6 +85,12 @@
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-right">
|
||||
<button id="backButton" class="btn btn-default" type="button">
|
||||
|
||||
<?php echo $this->p->t('ui', 'backToReadWriteMessage'); ?>
|
||||
|
||||
</button>
|
||||
|
||||
<button id="sendButton" class="btn btn-default" type="button">
|
||||
|
||||
<?php echo $this->p->t('ui', 'senden'); ?>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
array(
|
||||
'name' => 'variables[]',
|
||||
'id' => 'variables',
|
||||
'size' => 27,
|
||||
'size' => count($variables),
|
||||
'multiple' => true
|
||||
)
|
||||
);
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
$tablewidget = isset($tablewidget) ? $tablewidget : false;
|
||||
$tabulator = isset($tabulator) ? $tabulator : false;
|
||||
$tinymce = isset($tinymce) ? $tinymce : false;
|
||||
$udfs = isset($udfs) ? $udfs : false;
|
||||
$widgets = isset($widgets) ? $widgets : false;
|
||||
?>
|
||||
|
||||
@@ -195,6 +196,7 @@
|
||||
// From public folder
|
||||
|
||||
// DialogLib JS
|
||||
// NOTE: must be called before including others JS libraries that use it
|
||||
if ($dialoglib === true) generateJSsInclude('public/js/DialogLib.js');
|
||||
|
||||
// AjaxLib JS
|
||||
@@ -213,8 +215,11 @@
|
||||
// TableWidget JS
|
||||
if ($tablewidget === true) generateJSsInclude('public/js/TableWidget.js');
|
||||
|
||||
// User Defined Fields
|
||||
if ($udfs === true) generateJSsInclude('public/js/UDFWidget.js');
|
||||
|
||||
// Load addon hooks JS
|
||||
// NOTE: keep it as the latest but one
|
||||
// NOTE: keep it as the last but one
|
||||
if ($addons === true) generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
|
||||
|
||||
// Eventually required JS
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
|
||||
<br>
|
||||
<div class="row" id="divTableWidgetDataset" tableUniqueId="<?php echo $tableUniqueId; ?>">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<!-- Table widget header -->
|
||||
<div id="tableWidgetHeader"></div>
|
||||
|
||||
<!-- TableWidget help site ( only rendered if widget is Tabulator )-->
|
||||
<?php $this->load->view('widgets/table/tableHelpsite') ?>
|
||||
|
||||
<!-- Table info top -->
|
||||
<div id="tableDatasetActionsTop"></div>
|
||||
|
||||
<!-- TableWidget table -->
|
||||
<div>
|
||||
<?php TableWidget::loadViewDataset(); ?>
|
||||
</div>
|
||||
<?php TableWidget::loadViewDataset(); ?>
|
||||
|
||||
<!-- Table info bottom -->
|
||||
<div id="tableDatasetActionsBottom"></div>
|
||||
|
||||
<!-- Table widget footer -->
|
||||
<div id="tableWidgetFooter"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<!--CollapseHTML 'Help'-->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="tabulatorHelp-<?php echo $tableUniqueId; ?>">
|
||||
<div class="well">
|
||||
|
||||
<h4><?php echo ucfirst($this->p->t('ui', 'tabelleneinstellungen')); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<b><?php echo $this->p->t('table', 'spaltenEinAusblenden'); ?></b>
|
||||
<p>
|
||||
<ul>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickOeffnen'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenAufEinstellungenKlicken'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickAktivieren'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickSchliessen'); ?></li>
|
||||
</ul>
|
||||
</p>
|
||||
<br>
|
||||
<b><?php echo $this->p->t('table', 'spaltenbreiteVeraendern'); ?></b>
|
||||
<p><?php echo $this->p->t('table', 'spaltenbreiteVeraendernText'); ?></p>
|
||||
<div class="alert alert-info">
|
||||
<strong>INFO: </strong>
|
||||
<?php echo $this->p->t('table', 'spaltenbreiteVeraendernInfotext'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br> <!--end panel-body-->
|
||||
|
||||
<h4><?php echo $this->p->t('table', 'zeilenAuswaehlen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenEinzeln'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenBereich'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenAlle'); ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<br> <!--end panel-body-->
|
||||
|
||||
</div><!--end well-->
|
||||
</div><!--end col collapse-->
|
||||
</div><!--end row-->
|
||||
@@ -11,9 +11,9 @@ class Vorlage_widget extends DropdownWidget
|
||||
$vorlage = null;
|
||||
|
||||
// If the user is an admin
|
||||
if ($idAdmin === true)
|
||||
if ($idAdmin)
|
||||
{
|
||||
// Get all the vorlage with mimetype = text/html
|
||||
// Get all the vorlage with mimetype = text/html
|
||||
$vorlage = $this->_getAllHTMLVorlage();
|
||||
}
|
||||
else
|
||||
@@ -39,7 +39,7 @@ class Vorlage_widget extends DropdownWidget
|
||||
private function _getAllHTMLVorlage()
|
||||
{
|
||||
$this->load->model('system/Vorlage_model', 'VorlageModel');
|
||||
$this->VorlageModel->addOrder('vorlage_kurzbz');
|
||||
$this->VorlageModel->addOrder('bezeichnung');
|
||||
|
||||
$this->addSelectToModel($this->VorlageModel, 'vorlage_kurzbz', 'bezeichnung');
|
||||
|
||||
@@ -59,15 +59,31 @@ class Vorlage_widget extends DropdownWidget
|
||||
$vorlage = success(array()); // Default value
|
||||
|
||||
$table = '(
|
||||
SELECT v.vorlage_kurzbz, v.bezeichnung, vs.version, vs.oe_kurzbz, vs.aktiv, vs.subject, vs.text, v.mimetype
|
||||
FROM tbl_vorlagestudiengang vs INNER JOIN tbl_vorlage v USING(vorlage_kurzbz)
|
||||
SELECT v.vorlage_kurzbz,
|
||||
v.bezeichnung,
|
||||
vs.version,
|
||||
vs.oe_kurzbz,
|
||||
vs.aktiv,
|
||||
vs.subject,
|
||||
vs.text,
|
||||
v.mimetype
|
||||
FROM tbl_vorlagestudiengang vs
|
||||
JOIN tbl_vorlage v USING(vorlage_kurzbz)
|
||||
) templates';
|
||||
|
||||
$alias = 'templates';
|
||||
$fields = array("templates.vorlage_kurzbz AS id", "templates.bezeichnung AS description");
|
||||
|
||||
$fields = array(
|
||||
'templates.vorlage_kurzbz AS id',
|
||||
'templates.bezeichnung || \' (\' || UPPER(templates.oe_kurzbz) || \')\' AS description'
|
||||
);
|
||||
|
||||
$where = 'templates.aktiv = TRUE
|
||||
AND templates.subject IS NOT NULL
|
||||
AND templates.text IS NOT NULL
|
||||
AND templates.mimetype = \'text/html\'';
|
||||
AND templates.subject IS NOT NULL
|
||||
AND templates.text IS NOT NULL
|
||||
AND templates.mimetype = \'text/html\'
|
||||
GROUP BY 1, 2, 3';
|
||||
|
||||
$order_by = 'description ASC';
|
||||
|
||||
if (!is_array($oe_kurzbz))
|
||||
@@ -99,30 +115,41 @@ class Vorlage_widget extends DropdownWidget
|
||||
if (hasData($tmpVorlage))
|
||||
{
|
||||
// If it's the first vorlage copy it
|
||||
if (count($vorlage->retval) == 0)
|
||||
if (!hasData($vorlage))
|
||||
{
|
||||
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
|
||||
for ($j = 0; $j < count(getData($tmpVorlage)); $j++)
|
||||
{
|
||||
if ($tmpVorlage->retval[$j]->id != '')
|
||||
if (getData($tmpVorlage)[$j]->id != '')
|
||||
{
|
||||
array_push($vorlage->retval, $tmpVorlage->retval[$j]);
|
||||
array_push($vorlage->retval, getData($tmpVorlage)[$j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else // checks for duplicates, if it's not already present push it into the array $vorlage->retval
|
||||
else // checks for duplicates, if it's not already present push it into the array getData($vorlage)
|
||||
{
|
||||
for ($i = 0; $i < count($vorlage->retval); $i++)
|
||||
for ($j = 0; $j < count(getData($tmpVorlage)); $j++)
|
||||
{
|
||||
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
|
||||
$found = false;
|
||||
$currentTmpVorlageData = null;
|
||||
|
||||
for ($i = 0; $i < count(getData($vorlage)); $i++)
|
||||
{
|
||||
if ($tmpVorlage->retval[$j]->id != ''
|
||||
&& $vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
|
||||
&& $vorlage->retval[$i]->_ppk != $tmpVorlage->retval[$j]->_ppk
|
||||
&& $vorlage->retval[$i]->_jtpk != $tmpVorlage->retval[$j]->_jtpk)
|
||||
$currentTmpVorlageData = getData($tmpVorlage)[$j];
|
||||
|
||||
if (getData($vorlage)[$i]->id == getData($tmpVorlage)[$j]->id
|
||||
&& getData($vorlage)[$i]->_pk == getData($tmpVorlage)[$j]->_pk
|
||||
&& getData($vorlage)[$i]->_ppk == getData($tmpVorlage)[$j]->_ppk
|
||||
&& getData($vorlage)[$i]->_jtpk == getData($tmpVorlage)[$j]->_jtpk)
|
||||
{
|
||||
array_push($vorlage->retval, $tmpVorlage->retval[$j]);
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$found && $currentTmpVorlageData->id != '')
|
||||
{
|
||||
array_push($vorlage->retval, $currentTmpVorlageData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class DropdownWidgetUDF extends DropdownWidget
|
||||
{
|
||||
// Array that will contains the elements to be displayed in the dropdown
|
||||
$tmpNewElements = array();
|
||||
|
||||
|
||||
// Loops through the given parameters
|
||||
foreach($parameters as $parameter)
|
||||
{
|
||||
@@ -29,27 +29,27 @@ class DropdownWidgetUDF extends DropdownWidget
|
||||
// If the single element is an array of two element
|
||||
if (is_array($parameter) && count($parameter) == 2)
|
||||
{
|
||||
$newElement->{DropdownWidget::ID_FIELD} = $parameter[0]; //
|
||||
$newElement->{DropdownWidget::DESCRIPTION_FIELD} = $parameter[1]; //
|
||||
$newElement->{DropdownWidget::ID_FIELD} = $parameter[0]; //
|
||||
$newElement->{DropdownWidget::DESCRIPTION_FIELD} = $parameter[1]; //
|
||||
}
|
||||
// If the single element is a string or a number
|
||||
else if (is_string($parameter) || is_numeric($parameter))
|
||||
{
|
||||
$newElement->{DropdownWidget::ID_FIELD} = $parameter; //
|
||||
$newElement->{DropdownWidget::DESCRIPTION_FIELD} = $parameter; //
|
||||
$newElement->{DropdownWidget::ID_FIELD} = $parameter; //
|
||||
$newElement->{DropdownWidget::DESCRIPTION_FIELD} = $parameter; //
|
||||
}
|
||||
// If the single element is an object with two properties: id and description
|
||||
else if (is_object($parameter) && isset($parameter->{DropdownWidget::ID_FIELD})
|
||||
&& isset($parameter->{DropdownWidget::DESCRIPTION_FIELD}))
|
||||
{
|
||||
$newElement->{DropdownWidget::ID_FIELD} = $parameter->{DropdownWidget::ID_FIELD}; //
|
||||
$newElement->{DropdownWidget::DESCRIPTION_FIELD} = $parameter->{DropdownWidget::DESCRIPTION_FIELD}; //
|
||||
$newElement->{DropdownWidget::ID_FIELD} = $parameter->{DropdownWidget::ID_FIELD}; //
|
||||
$newElement->{DropdownWidget::DESCRIPTION_FIELD} = $parameter->{DropdownWidget::DESCRIPTION_FIELD}; //
|
||||
}
|
||||
|
||||
|
||||
array_push($tmpNewElements, $newElement); // Add $newElement into $tmpNewElements
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Set the list of elements
|
||||
$this->setElementsArray(
|
||||
success($tmpNewElements),
|
||||
@@ -57,9 +57,9 @@ class DropdownWidgetUDF extends DropdownWidget
|
||||
$this->htmlParameters[HTMLWidget::PLACEHOLDER],
|
||||
'No data found for this UDF'
|
||||
);
|
||||
|
||||
|
||||
$this->loadDropDownView();
|
||||
|
||||
|
||||
echo $this->content();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,14 +6,155 @@
|
||||
*/
|
||||
class UDFWidget extends HTMLWidget
|
||||
{
|
||||
private $_requiredPermissions; // The required permissions to use this UDF widget
|
||||
|
||||
private $_schema; // Schema name
|
||||
private $_table; // Table name
|
||||
private $_primaryKeyName; // Primary key name
|
||||
private $_primaryKeyValue; // Primary key value
|
||||
|
||||
/**
|
||||
* Initialize the UDFWidget and starts the execution of the logic
|
||||
*/
|
||||
public function __construct($name, $args = array())
|
||||
{
|
||||
parent::__construct($name, $args); // calls the parent's constructor
|
||||
|
||||
$this->load->library('UDFLib'); // Loads the UDFLib that contains all the used logic
|
||||
|
||||
$this->udflib->setUDFUniqueIdByParams($args); // sets the unique id for this UDF
|
||||
|
||||
$this->_initUDFWidget($args); // checks parameters and initialize properties
|
||||
|
||||
// Let's start if it's allowed
|
||||
// NOTE: If it is NOT allowed then no data are loaded
|
||||
if ($this->udflib->isAllowed($this->_requiredPermissions))
|
||||
{
|
||||
$this->_startUDFWidget($args[UDFLib::UDF_UNIQUE_ID]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by the WidgetLib, it renders the HTML of the UDF
|
||||
*/
|
||||
public function display($widgetData)
|
||||
{
|
||||
// _ci is the instance of Code Igniter and the library UDFLib was previously loaded,
|
||||
// so now is it possibile to call the method displayUDFWidget of UDFLib
|
||||
// to render the HTML of this UDF
|
||||
$this->_ci->udflib->displayUDFWidget($widgetData);
|
||||
// Let's start if it's allowed
|
||||
// NOTE: If it is NOT allowed then no data are loaded
|
||||
if ($this->_ci->udflib->isAllowed($this->_requiredPermissions))
|
||||
{
|
||||
$this->_ci->udflib->displayUDFWidget($widgetData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Checks parameters and initialize all the properties of this UDFWidget
|
||||
*/
|
||||
private function _initUDFWidget($args)
|
||||
{
|
||||
$this->_checkParameters($args);
|
||||
|
||||
// If here then everything is ok
|
||||
|
||||
// Initialize class properties
|
||||
$this->_requiredPermissions = null;
|
||||
$this->_schema = null;
|
||||
$this->_table = null;
|
||||
$this->_primaryKeyName = null;
|
||||
$this->_primaryKeyValue = null;
|
||||
|
||||
// Retrieved the required permissions parameter if present
|
||||
if (isset($args[UDFLib::REQUIRED_PERMISSIONS_PARAMETER]))
|
||||
{
|
||||
$this->_requiredPermissions = $args[UDFLib::REQUIRED_PERMISSIONS_PARAMETER];
|
||||
}
|
||||
|
||||
// Retrieved the
|
||||
if (isset($args[UDFLib::SCHEMA_ARG_NAME]))
|
||||
{
|
||||
$this->_schema = $args[UDFLib::SCHEMA_ARG_NAME];
|
||||
}
|
||||
|
||||
// Retrieved the
|
||||
if (isset($args[UDFLib::TABLE_ARG_NAME]))
|
||||
{
|
||||
$this->_table = $args[UDFLib::TABLE_ARG_NAME];
|
||||
}
|
||||
|
||||
// Retrieved the
|
||||
if (isset($args[UDFLib::PRIMARY_KEY_NAME]))
|
||||
{
|
||||
$this->_primaryKeyName = $args[UDFLib::PRIMARY_KEY_NAME];
|
||||
}
|
||||
|
||||
// Retrieved the
|
||||
if (isset($args[UDFLib::PRIMARY_KEY_VALUE]))
|
||||
{
|
||||
$this->_primaryKeyValue = $args[UDFLib::PRIMARY_KEY_VALUE];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the required parameters used to call this UDFWidget
|
||||
*/
|
||||
private function _checkParameters($args)
|
||||
{
|
||||
if (!is_array($args) || (is_array($args) && count($args) == 0))
|
||||
{
|
||||
show_error('Second parameter of the widget call must be a NOT empty associative array');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isset($args[UDFLib::UDF_UNIQUE_ID]))
|
||||
{
|
||||
show_error('The parameter "'.UDFLib::UDF_UNIQUE_ID.'" must be specified');
|
||||
}
|
||||
|
||||
if (!isset($args[UDFLib::REQUIRED_PERMISSIONS_PARAMETER]))
|
||||
{
|
||||
show_error('The parameter "'.UDFLib::REQUIRED_PERMISSIONS_PARAMETER.'" must be specified');
|
||||
}
|
||||
|
||||
if (!isset($args[UDFLib::SCHEMA_ARG_NAME]))
|
||||
{
|
||||
show_error('The parameter "'.UDFLib::SCHEMA_ARG_NAME.'" must be specified');
|
||||
}
|
||||
|
||||
if (!isset($args[UDFLib::TABLE_ARG_NAME]))
|
||||
{
|
||||
show_error('The parameter "'.UDFLib::TABLE_ARG_NAME.'" must be specified');
|
||||
}
|
||||
|
||||
if (!isset($args[UDFLib::PRIMARY_KEY_NAME]))
|
||||
{
|
||||
show_error('The parameter "'.UDFLib::PRIMARY_KEY_NAME.'" must be specified');
|
||||
}
|
||||
|
||||
if (!isset($args[UDFLib::PRIMARY_KEY_VALUE]))
|
||||
{
|
||||
show_error('The parameter "'.UDFLib::PRIMARY_KEY_VALUE.'" must be specified');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Contains all the logic used to load all the data needed to the UDFWidget
|
||||
*/
|
||||
private function _startUDFWidget($udfUniqueId)
|
||||
{
|
||||
// Stores an array that contains all the data useful for
|
||||
$this->udflib->setSession(
|
||||
array(
|
||||
UDFLib::UDF_UNIQUE_ID => $udfUniqueId, // table unique id
|
||||
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => $this->_requiredPermissions, //
|
||||
UDFLib::SCHEMA_ARG_NAME => $this->_schema, //
|
||||
UDFLib::TABLE_ARG_NAME => $this->_table, //
|
||||
UDFLib::PRIMARY_KEY_NAME => $this->_primaryKeyName, //
|
||||
UDFLib::PRIMARY_KEY_VALUE => $this->_primaryKeyValue //
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
|
||||
require_once('../../../include/vertrag.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
@@ -134,6 +134,17 @@
|
||||
{
|
||||
while($row_lkt = $db->db_fetch_object($result_lkt))
|
||||
{
|
||||
// Lektor wird erst angezeigt wenn der Auftrag erteilt wurde
|
||||
if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
|
||||
&& CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
|
||||
{
|
||||
$vertrag = new vertrag();
|
||||
if (!$vertrag->isVertragErteiltLV($lvid, $stsem, $row_lkt->mitarbeiter_uid))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if($lektoren!='')
|
||||
$lektoren.=', ';
|
||||
$lektoren .= $row_lkt->kurzbz;
|
||||
|
||||
@@ -33,6 +33,7 @@ require_once('../../../include/lvangebot.class.php');
|
||||
require_once('../../../include/benutzergruppe.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/variable.class.php');
|
||||
require_once('../../../include/vertrag.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
@@ -316,6 +317,17 @@ $( document ).ready(function()
|
||||
$i=0;
|
||||
while($row_lector = $db->db_fetch_object($result))
|
||||
{
|
||||
// Lektor wird erst angezeigt wenn der Auftrag erteilt wurde
|
||||
if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
|
||||
&& CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
|
||||
{
|
||||
$vertrag = new vertrag();
|
||||
if (!$vertrag->isVertragErteiltLV($lvid, $angezeigtes_stsem, $row_lector->uid))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$i++;
|
||||
if($user==$row_lector->uid)
|
||||
{
|
||||
@@ -327,9 +339,11 @@ $( document ).ready(function()
|
||||
$style='style="font-weight: bold"';
|
||||
else
|
||||
$style='';
|
||||
echo '<a href="mailto:'.$row_lector->uid.'@'.DOMAIN.'" '.$style.'>'.$row_lector->vorname.' '.$row_lector->nachname.'</a>';
|
||||
if($i!=$num_rows_result)
|
||||
|
||||
if ($i != 1)
|
||||
echo ', ';
|
||||
echo '<a href="mailto:'.$row_lector->uid.'@'.DOMAIN.'" '.$style.'>'.$row_lector->vorname.' '.$row_lector->nachname.'</a>';
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,10 +417,15 @@ else
|
||||
|
||||
$tblFoot .= "</tfoot>";
|
||||
|
||||
$tbl .= $tblHead.$tblFoot.$tblBody;
|
||||
if (!defined('CIS_NOTENLISTE_DURCHSCHNITT_ANZEIGEN') || (defined('CIS_NOTENLISTE_DURCHSCHNITT_ANZEIGEN') && CIS_NOTENLISTE_DURCHSCHNITT_ANZEIGEN))
|
||||
{
|
||||
$tbl .= $tblHead.$tblFoot.$tblBody;
|
||||
$tbl .= "<table><tbody><tr><td width='20' style='text-align: right;'>*</td><td>" . $p->t('tools/legendeNotendurchschnitt') . "</td></tr>";
|
||||
$tbl .= "<tr><td width='20' style='text-align: right;'>**</td><td>" . $p->t('tools/legendeGewichteterNotendurchschnitt') . "</td></tr>";
|
||||
}
|
||||
else
|
||||
$tbl .= $tblHead.$tblBody;
|
||||
|
||||
$tbl .= "<table><tbody><tr><td width='20' style='text-align: right;'>*</td><td>" . $p->t('tools/legendeNotendurchschnitt') . "</td></tr>";
|
||||
$tbl .= "<tr><td width='20' style='text-align: right;'>**</td><td>" . $p->t('tools/legendeGewichteterNotendurchschnitt') . "</td></tr>";
|
||||
if ($legende)
|
||||
{
|
||||
$tbl .= "<tr><td width='20' style='background-color: #FFD999;'></td><td>" . $p->t('tools/hinweistextMarkierung') . "</td></tr>";
|
||||
|
||||
@@ -178,7 +178,7 @@ function loadPruefungsfenster()
|
||||
success: function(data){
|
||||
if(data.result.length === 0)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinFensterVorhanden'); ?>", "red", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinFensterVorhanden'); ?>", "red", "highlight", 10000);
|
||||
$("#pruefungsfenster").html("<option value='null'></option>");
|
||||
}
|
||||
else
|
||||
@@ -352,8 +352,12 @@ function writePruefungsTable(e, data, anmeldung)
|
||||
var termin = d.von.split(" ");
|
||||
var time = termin[1].substring(0,5);
|
||||
termin = termin[0].split("-");
|
||||
var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]);
|
||||
minimumFrist.setMonth(minimumFrist.getMonth() - 2);
|
||||
|
||||
// Wie viele Monate vor Prüfungen dürfen sich Studierende anmelden?
|
||||
// Sperre "deaktiviert" indem man sich 24 Monate vorher anmelden darf
|
||||
var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]);
|
||||
minimumFrist.setMonth(minimumFrist.getMonth() - 24);
|
||||
|
||||
termin = new Date(termin[0], termin[1]-1,termin[2]);
|
||||
var frist = termin;
|
||||
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
|
||||
@@ -613,7 +617,7 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
else
|
||||
{
|
||||
//Wenn Anmeldung durch Lektor
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id);
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id, false, false);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -759,9 +763,10 @@ function convertDateTime(string, type)
|
||||
* @param {type} pruefungstermin_id ID des Prüfungstermins
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param saveReihungAfterShow speichert Reihung neu wenn true
|
||||
* @param showMessage steuert ob Meldung angzeigt werden soll
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAfterShow = false)
|
||||
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAfterShow = false, showMessage = true)
|
||||
{
|
||||
$("#kommentar").empty();
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
@@ -776,7 +781,7 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAf
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
writeAnmeldungen(data);
|
||||
writeAnmeldungen(data, showMessage);
|
||||
$("#sortable").sortable();
|
||||
$("#sortable").disableSelection();
|
||||
|
||||
@@ -786,7 +791,7 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAf
|
||||
});
|
||||
}
|
||||
|
||||
function writeAnmeldungen(data)
|
||||
function writeAnmeldungen(data, showMessage = true)
|
||||
{
|
||||
if(data.error === 'false')
|
||||
{
|
||||
@@ -858,7 +863,10 @@ function writeAnmeldungen(data)
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
$("#raumLink").empty();
|
||||
$("#listeDrucken").empty();
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
|
||||
if (showMessage)
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
|
||||
if (data.lv_bezeichnung)
|
||||
{
|
||||
$("#lvdaten").html(data.lv_bezeichnung+" ("+data.termin_datum+")");
|
||||
@@ -906,11 +914,11 @@ function saveReihung(terminId, lehrveranstaltung_id)
|
||||
success: function(data){
|
||||
if(data.error === 'false' && data.result === true)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
|
||||
showAnmeldungen(terminId, lehrveranstaltung_id);
|
||||
@@ -947,7 +955,7 @@ function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltun
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -984,7 +992,7 @@ function anmeldungLoeschen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_i
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1018,7 +1026,7 @@ function alleBestaetigen(termin_id, lehrveranstaltung_id)
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1070,7 +1078,7 @@ function loadStudiengaenge()
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1129,7 +1137,7 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester)
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1174,7 +1182,7 @@ function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
messageBox("message", "<?php echo $p->t('pruefung/kommentarErfolgreichGespeichert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/kommentarErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id);
|
||||
}
|
||||
});
|
||||
@@ -1392,7 +1400,7 @@ function savePruefungstermin()
|
||||
|
||||
if(error)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 3000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1418,12 +1426,12 @@ function savePruefungstermin()
|
||||
unmarkMissingFormEntry();
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
|
||||
resetPruefungsverwaltung();
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1526,7 +1534,7 @@ function loadPruefungsDetails(prfId)
|
||||
}).done(function(data){
|
||||
if(data.result.length === 0)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?>", "red", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?>", "red", "highlight", 10000);
|
||||
$("#pruefungsfenster").html("<option value='null'></option>");
|
||||
}
|
||||
else
|
||||
@@ -1819,7 +1827,7 @@ function updatePruefung(prfId)
|
||||
|
||||
if(error)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 3000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1847,12 +1855,12 @@ function updatePruefung(prfId)
|
||||
unmarkMissingFormEntry();
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
|
||||
resetPruefungsverwaltung();
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadAllPruefungen();
|
||||
@@ -1882,11 +1890,11 @@ function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id)
|
||||
}).done(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/lvErfolgreichEntfernt'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/lvErfolgreichEntfernt'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadPruefungsDetails(pruefung_id);
|
||||
@@ -1913,11 +1921,11 @@ function stornoPruefung(pruefung_id)
|
||||
}).done(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungStorniert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungStorniert'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadAllPruefungen();
|
||||
@@ -1946,11 +1954,11 @@ function terminLoeschen(pruefung_id, pruefungstermin_id)
|
||||
}).done(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/terminGeloescht'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/terminGeloescht'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadPruefungsDetails(pruefung_id);
|
||||
@@ -2005,7 +2013,7 @@ function loadAllPruefungen()
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(event, xhr, settings){
|
||||
if($("#prfTable")[0].hasInitialized !== true)
|
||||
|
||||
@@ -612,13 +612,14 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$stdsem = $aktStudiensemester;
|
||||
|
||||
$prestudenten = array();
|
||||
$gueltigerStatus = array("Student", "Unterbrecher", "Absolvent");
|
||||
|
||||
foreach ($prestudent->result as $ps)
|
||||
{
|
||||
// prüfen ob Student zum Zeitpunkt der LV oder zumindest irgendwann Student im Studiengang war/ist
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch) || $ps->studiengang_kz == $studiengang_kz)
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher") || ($ps->status_kurzbz == ""))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus) || ($ps->status_kurzbz == ""))
|
||||
{
|
||||
array_push($prestudenten, $ps);
|
||||
}
|
||||
@@ -634,7 +635,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -642,7 +643,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -653,7 +654,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -667,7 +668,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -675,7 +676,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -686,7 +687,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/student.class.php');
|
||||
require_once('../../include/prestudent.class.php');
|
||||
require_once('../../include/dokument_export.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
@@ -135,6 +136,8 @@ if (isset($_GET['typ']))
|
||||
$params .= '&typ='.$_GET['typ'];
|
||||
if (isset($_GET['all']))
|
||||
$params .= '&all=1';
|
||||
if (isset($_GET['xsl_oe_kurzbz']))
|
||||
$params .= '&xsl_oe_kurzbz='. $_GET['xsl_oe_kurzbz'];
|
||||
|
||||
//OE fuer Output ermitteln
|
||||
|
||||
@@ -166,7 +169,7 @@ else
|
||||
|
||||
|
||||
$konto = new konto();
|
||||
if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
|
||||
if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$buchungstypen = array();
|
||||
if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN"))
|
||||
@@ -232,7 +235,9 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
|
||||
$filename .= '-'.$studienordnung->studiengangkurzbzlang;
|
||||
break;
|
||||
default:
|
||||
$filename = $xsl;
|
||||
$person = new Person();
|
||||
$person->getPersonFromBenutzer($user);
|
||||
$filename = $xsl. '_'. $person->nachname;
|
||||
}
|
||||
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
@@ -76,7 +76,6 @@ if(isset($_GET['action']) && $_GET['action']=='download')
|
||||
$akte = new akte();
|
||||
$akte->load($id);
|
||||
if ($akte->person_id == $student_studiengang->person_id
|
||||
&& $akte->signiert
|
||||
&& $akte->stud_selfservice)
|
||||
{
|
||||
if($akte->inhalt!='')
|
||||
@@ -89,12 +88,12 @@ if(isset($_GET['action']) && $_GET['action']=='download')
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Id ist ungueltig');
|
||||
die('Akte hat keinen Inhalt.');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Id ist ungueltig');
|
||||
die('Nicht zum selbständigen Download bestimmt oder falsche PersonID.');
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -123,7 +122,6 @@ echo '
|
||||
});
|
||||
$(".tablesorter2").tablesorter(
|
||||
{
|
||||
sortList: [[1,1]],
|
||||
headers: { 0: { sorter: false }},
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
|
||||
@@ -341,16 +341,16 @@ if ($type == 'mitarbeiter')
|
||||
echo $p->t('profil/telefonTw').": $vorwahl - $user->telefonklappe<BR>";
|
||||
//echo $p->t('profil/faxTw').": $vorwahl - 99 $user->telefonklappe<BR>";
|
||||
}
|
||||
else {
|
||||
$kontakt = new kontakt();
|
||||
$kontakt->load_pers($user->person_id);
|
||||
foreach($kontakt->result as $k)
|
||||
{
|
||||
if ($k->kontakttyp == 'firmenhandy')
|
||||
echo $p->t('profil/telefonTw').': '.$k->kontakt.'<br>';
|
||||
}
|
||||
|
||||
$kontakt = new kontakt();
|
||||
$kontakt->load_pers($user->person_id);
|
||||
foreach($kontakt->result as $k)
|
||||
{
|
||||
if ($k->kontakttyp == 'firmenhandy')
|
||||
echo 'Firmenhandy: '.$k->kontakt.'<br>';
|
||||
}
|
||||
|
||||
|
||||
if ($user->ort_kurzbz != '')
|
||||
echo $p->t('profil/buero').': '.$user->ort_kurzbz.'<br>';
|
||||
}
|
||||
@@ -427,6 +427,7 @@ if (!$ansicht)
|
||||
usort($kontakt->result, "sortKontakt");
|
||||
echo '<table>';
|
||||
|
||||
$has_notfallkontakt = false;
|
||||
foreach($kontakt->result as $k)
|
||||
{
|
||||
if ($k->kontakttyp != 'firmenhandy' && $k->kontakttyp != 'hidden')
|
||||
@@ -441,6 +442,8 @@ if (!$ansicht)
|
||||
echo '<td>'.$k->anmerkung.'</td>';
|
||||
echo '<td>'.$zustellung.'</td>';
|
||||
echo '</tr>';
|
||||
if ($k->kontakttyp == 'notfallkontakt')
|
||||
$has_notfallkontakt = true;
|
||||
}
|
||||
/*
|
||||
if ($k->zustellung === TRUE)
|
||||
@@ -462,6 +465,9 @@ if (!$ansicht)
|
||||
}
|
||||
*/
|
||||
}
|
||||
if (!$has_notfallkontakt && $type == 'mitarbeiter')
|
||||
echo '<tr><td>'.$p->t('profil/notfallkontakt').'</td><td colspan="3">'.$p->t('profil/notfallkontaktBekanntgeben').'</td></tr>';
|
||||
|
||||
echo '</table>';
|
||||
}
|
||||
|
||||
|
||||
+423
-393
@@ -37,46 +37,51 @@ require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/lvangebot.class.php');
|
||||
require_once('../../../include/addon.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/vertrag.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
$adress=MAIL_ADMIN;
|
||||
$adress = MAIL_ADMIN;
|
||||
|
||||
$user=get_uid();
|
||||
$studiensemester = new studiensemester();
|
||||
$user=get_uid();
|
||||
$studiensemester = new studiensemester();
|
||||
|
||||
if (isset($_GET['uid']))
|
||||
$uid=$_GET['uid'];
|
||||
else
|
||||
$uid = $user;
|
||||
if (isset($_GET['uid']))
|
||||
$uid = $_GET['uid'];
|
||||
else
|
||||
$uid = $user;
|
||||
|
||||
if (isset($_GET['stdsem']))
|
||||
$stdsem=$_GET['stdsem'];
|
||||
else
|
||||
$stdsem=$studiensemester->getaktorNext();
|
||||
if (isset($_GET['stdsem']))
|
||||
$stdsem = $_GET['stdsem'];
|
||||
else
|
||||
$stdsem = $studiensemester->getaktorNext();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('admin') && $uid!=$user)
|
||||
die('Sie haben keine Berechtigung für diesen Vorgang');
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if (!$rechte->isBerechtigt('admin') && $uid != $user)
|
||||
die('Sie haben keine Berechtigung für diesen Vorgang');
|
||||
|
||||
$datum = new datum();
|
||||
$datum = new datum();
|
||||
|
||||
$addon = new addon();
|
||||
if(in_array('lvinfo',$addon->aktive_addons))
|
||||
$lvinfo=true;
|
||||
else
|
||||
$lvinfo=false;
|
||||
$addon = new addon();
|
||||
if (in_array('lvinfo',$addon->aktive_addons))
|
||||
$lvinfo=true;
|
||||
else
|
||||
$lvinfo=false;
|
||||
|
||||
//Studiensemester abfragen. Letzten 5, aktuelles und naechstes.
|
||||
$sql_query='SELECT * FROM public.tbl_studiensemester WHERE (start<=(now()::date+240) AND ende>=(now()::date-900)) ORDER BY start';
|
||||
$result_stdsem=$db->db_query($sql_query);
|
||||
$num_rows_stdsem=$db->db_num_rows($result_stdsem);
|
||||
//if (!isset($stdsem))
|
||||
//$stdsem=$db->db_result($result_stdsem,0,"studiensemester_kurzbz");
|
||||
//Studiensemester abfragen. Letzten 5, aktuelles und naechstes.
|
||||
$sql_query = '
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE (start<=(now()::date+240) AND ende>=(now()::date-900))
|
||||
ORDER BY start';
|
||||
$result_stdsem = $db->db_query($sql_query);
|
||||
$num_rows_stdsem = $db->db_num_rows($result_stdsem);
|
||||
|
||||
$p = new phrasen(getSprache());
|
||||
$p = new phrasen(getSprache());
|
||||
/*
|
||||
0000453: Sortierung von LVs - Meine LV
|
||||
1. Bachelor
|
||||
@@ -89,401 +94,426 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
8. Name der LV
|
||||
|
||||
*/
|
||||
//Lehrveranstaltungen abfragen.
|
||||
$sql_query="
|
||||
SELECT
|
||||
*, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg_kurzbz,
|
||||
tbl_lehrveranstaltung.semester as lv_semester,
|
||||
lehrfach.kurzbz as lehrfach,
|
||||
lehrfach.bezeichnung as lehrfach_bez,
|
||||
tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden,
|
||||
tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung,
|
||||
tbl_lehreinheit.anmerkung as le_anmerkung,
|
||||
tbl_lehreinheit.lehrform_kurzbz as le_lehrform_kurzbz,
|
||||
(SELECT kurzbz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid) as lektor,
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id
|
||||
FROM
|
||||
//Lehrveranstaltungen abfragen.
|
||||
$sql_query = "
|
||||
SELECT
|
||||
*, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg_kurzbz,
|
||||
tbl_lehrveranstaltung.semester as lv_semester,
|
||||
lehrfach.kurzbz as lehrfach,
|
||||
lehrfach.bezeichnung as lehrfach_bez,
|
||||
tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden,
|
||||
tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung,
|
||||
tbl_lehreinheit.anmerkung as le_anmerkung,
|
||||
tbl_lehreinheit.lehrform_kurzbz as le_lehrform_kurzbz,
|
||||
(SELECT kurzbz FROM public.tbl_mitarbeiter
|
||||
WHERE mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid) as lektor,
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||||
WHERE tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND mitarbeiter_uid=".$db->db_add_param($uid);
|
||||
$sql_query.=" ORDER BY stg_kurzbz,lv_semester,lv_bezeichnung";
|
||||
$result=$db->db_query($sql_query);
|
||||
$num_rows=$db->db_num_rows($result);
|
||||
WHERE
|
||||
tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stdsem)."
|
||||
AND mitarbeiter_uid = ".$db->db_add_param($uid)."
|
||||
ORDER BY stg_kurzbz,lv_semester,lv_bezeichnung";
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>'.$p->t('lvaliste/titel').'</title>
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/jquery.css" 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>
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script language="Javascript">
|
||||
<!--
|
||||
function printhelp()
|
||||
$result = $db->db_query($sql_query);
|
||||
$num_rows = $db->db_num_rows($result);
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>'.$p->t('lvaliste/titel').'</title>
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/jquery.css" type="text/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>
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script language="Javascript">
|
||||
<!--
|
||||
function printhelp()
|
||||
{
|
||||
alert("'.$p->t('lvaliste/hilfeText').'");
|
||||
}
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
alert("'.$p->t('lvaliste/hilfeText').'");
|
||||
}
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[5,0],[6,0],[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
sortList: [[5,0],[6,0],[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body id="inhalt">
|
||||
<H1>'.$p->t('lvaliste/titel').' ( '.$stdsem.' )</H1>';
|
||||
echo '<table width="100%"><tr><td>';
|
||||
for ($i=0;$i<$num_rows_stdsem;$i++)
|
||||
{
|
||||
$row=$db->db_fetch_object($result_stdsem);
|
||||
if ($stdsem==$row->studiensemester_kurzbz)
|
||||
echo '<strong><A class="Item" style="text-decoration: underline;" href="lva_liste.php?uid='.$uid.'&stdsem='.$row->studiensemester_kurzbz.'">'.$row->studiensemester_kurzbz.'</A></strong> - ';
|
||||
else
|
||||
echo '<A class="Item" href="lva_liste.php?uid='.$uid.'&stdsem='.$row->studiensemester_kurzbz.'">'.$row->studiensemester_kurzbz.'</A> - ';
|
||||
}
|
||||
echo '</td><td align="right">';
|
||||
echo '<a href="#" onclick="printhelp()" class="Item">'.$p->t('lvaliste/hilfeAnzeigen').'</a>';
|
||||
echo '</td></tr></table><br>';
|
||||
if ($num_rows>0)
|
||||
{
|
||||
|
||||
echo '<h3>'.$p->t('lvaliste/lehrveranstaltungen').'</h3>';
|
||||
echo $p->t('lvaliste/anzahl').': '.$num_rows;
|
||||
echo '
|
||||
<table class="tablesorter" id="t1">
|
||||
<thead>
|
||||
<tr>';
|
||||
if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
echo '<th>'.$p->t('lvaliste/gesamtnote').'</th>';
|
||||
|
||||
|
||||
if($lvinfo)
|
||||
echo '<th>'.$p->t('lvaliste/lvinfo').'</th>';
|
||||
|
||||
echo '
|
||||
<th>'.$p->t('lvaliste/id').'</th>
|
||||
<th>'.$p->t('lvaliste/lehrfach').'</th>
|
||||
<th>'.$p->t('lvaliste/lehrform').'</th>
|
||||
<th>'.$p->t('lvaliste/lvBezeichnung').'</th>
|
||||
<th>'.$p->t('lvaliste/lektor').'</th>
|
||||
<th>'.$p->t('lvaliste/studiengang').'</th>
|
||||
<th>'.$p->t('lvaliste/semester').'</th>
|
||||
<th>'.$p->t('lvaliste/gruppen').'</th>
|
||||
<th>'.$p->t('lvaliste/raumtyp').'</th>
|
||||
<th>'.$p->t('lvaliste/raumtypalternativ').'</th>
|
||||
<th>'.$p->t('lvaliste/blockung').'</th>
|
||||
<th>'.$p->t('lvaliste/wochenrythmus').'</th>
|
||||
<th>'.$p->t('lvaliste/stunden').'</th>
|
||||
<th>'.$p->t('lvaliste/kalenderwoche').'</th>
|
||||
<th>Anm. von</th>
|
||||
<th>Anm. bis</th>';
|
||||
//<th>'.$p->t('lvaliste/anmerkung').'</th> Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht
|
||||
|
||||
echo '</tr>
|
||||
</thead><tbody>';
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->getAll(null,null);
|
||||
$summe_std=0;
|
||||
|
||||
for ($i=0; $i<$num_rows; $i++)
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
$row=$db->db_fetch_object($result);
|
||||
$lvangebot = new lvangebot();
|
||||
echo '<tr>';
|
||||
if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
echo '<td nowrap><a href="../lehre/benotungstool/lvgesamtnoteverwalten.php?lvid='.$row->lehrveranstaltung_id.'&stsem='.$stdsem.'">'.$p->t('lvaliste/gesamtnote').'</a></td>';
|
||||
|
||||
if($lvinfo)
|
||||
echo '<td><a href="../../../addons/lvinfo/cis/lvinfo.php?lv_id='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stdsem.'" target="_blank">'.$p->t('lvaliste/lvinfo').'</a></td>';
|
||||
|
||||
echo '<td>'.$row->lehreinheit_id.'</td>';
|
||||
echo '<td>'.$row->lehrfach.'</td>';
|
||||
echo '<td>'.$row->le_lehrform_kurzbz.'</td>';
|
||||
if ($row->lehrfach_bez!=$row->lv_bezeichnung)
|
||||
echo '<td><a href="../lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stdsem.'">'.$row->lv_bezeichnung.' ('.$p->t('lvaliste/lehrfach').': '.$row->lehrfach_bez.')</a></td>';
|
||||
else
|
||||
echo '<td><a href="../lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stdsem.'">'.$row->lv_bezeichnung.'</a></td>';
|
||||
echo '<td>'.$row->lektor.'</td>';
|
||||
echo '<td><a href="mailto:'.$row->email.'">'.$row->stg_kurzbz.'</a></td>';
|
||||
echo '<td>'.$row->semester.'</td>';
|
||||
|
||||
$qry ="SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
|
||||
$gruppe='';
|
||||
if($result_grp = $db->db_query($qry))
|
||||
{
|
||||
while($row_grp = $db->db_fetch_object($result_grp))
|
||||
{
|
||||
if($row_grp->gruppe_kurzbz!='')
|
||||
$gruppe.= $row_grp->gruppe_kurzbz.'<br>';
|
||||
else
|
||||
$gruppe.= $stg_obj->kuerzel_arr[$row->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe.'<br>';
|
||||
}
|
||||
}
|
||||
echo '<td>'.$gruppe.'</td>';
|
||||
echo '<td>'.$row->raumtyp.'</td>';
|
||||
echo '<td>'.$row->raumtypalternativ.'</td>';
|
||||
echo '<td>'.$row->stundenblockung.'</td>';
|
||||
echo '<td>'.$row->wochenrythmus.'</td>';
|
||||
if(getSprache()=='German')
|
||||
{
|
||||
echo '<td>'.number_format($row->semesterstunden,2,$dec_point=",",$thousands_sep=".").'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>'.number_format($row->semesterstunden,2,$dec_point=".",$thousands_sep=",").'</td>';
|
||||
}
|
||||
echo '<td>'.$row->start_kw.'</td>';
|
||||
|
||||
$lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz);
|
||||
if(!empty($lvangebot->result))
|
||||
{
|
||||
echo '<td>'.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_start, "d.m.Y").'</td>';
|
||||
echo '<td>'.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_ende, "d.m.Y").'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td> </td>
|
||||
<td> </td>';
|
||||
}
|
||||
//echo '<td>'.$row->le_anmerkung.'</td>'; Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht
|
||||
|
||||
echo '</tr>';
|
||||
$summe_std+=$row->semesterstunden;
|
||||
}
|
||||
echo '</tbody>';
|
||||
echo '<tfoot>';
|
||||
echo '<tr>';
|
||||
if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
echo '<td> </td>';
|
||||
if($lvinfo)
|
||||
echo '<td> </td>';
|
||||
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
|
||||
if(getSprache()=='German')
|
||||
sortList: [[0,0],[1,0],[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").'</th>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").'</th>';
|
||||
}
|
||||
echo '<td> </td>';
|
||||
echo '</tr>';
|
||||
echo '</tfoot>';
|
||||
echo '</table>';
|
||||
}
|
||||
sortList: [[0,0],[1,0],[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body id="inhalt">
|
||||
<H1>'.$p->t('lvaliste/titel').' ( '.$stdsem.' )</H1>';
|
||||
echo '<table width="100%"><tr><td>';
|
||||
for ($i = 0;$i < $num_rows_stdsem;$i++)
|
||||
{
|
||||
$row = $db->db_fetch_object($result_stdsem);
|
||||
if ($stdsem == $row->studiensemester_kurzbz)
|
||||
echo '<strong><A class="Item" style="text-decoration: underline;" href="lva_liste.php?uid='.$uid.'&stdsem='.$row->studiensemester_kurzbz.'">'.$row->studiensemester_kurzbz.'</A></strong> - ';
|
||||
else
|
||||
echo $p->t('lvaliste/keineDatensaetze').'<BR>';
|
||||
echo '<A class="Item" href="lva_liste.php?uid='.$uid.'&stdsem='.$row->studiensemester_kurzbz.'">'.$row->studiensemester_kurzbz.'</A> - ';
|
||||
}
|
||||
echo '</td><td align="right">';
|
||||
echo '<a href="#" onclick="printhelp()" class="Item">'.$p->t('lvaliste/hilfeAnzeigen').'</a>';
|
||||
echo '</td></tr></table><br>';
|
||||
if ($num_rows > 0)
|
||||
{
|
||||
$anzahl_lvs = 0;
|
||||
$lvtable = '
|
||||
<table class="tablesorter" id="t1">
|
||||
<thead>
|
||||
<tr>';
|
||||
if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
$lvtable .= '<th>'.$p->t('lvaliste/gesamtnote').'</th>';
|
||||
|
||||
//Betreuungen
|
||||
|
||||
$mitarbeiter = new benutzer();
|
||||
$mitarbeiter->load($uid);
|
||||
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel,
|
||||
(SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id)
|
||||
WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester,
|
||||
tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden
|
||||
FROM
|
||||
lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart
|
||||
WHERE
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
|
||||
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
|
||||
tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND
|
||||
tbl_projektbetreuer.betreuerart_kurzbz=tbl_betreuerart.betreuerart_kurzbz AND
|
||||
tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER);
|
||||
if ($lvinfo)
|
||||
$lvtable .= '<th>'.$p->t('lvaliste/lvinfo').'</th>';
|
||||
|
||||
$lvtable .= '
|
||||
<th>'.$p->t('lvaliste/id').'</th>
|
||||
<th>'.$p->t('lvaliste/lehrfach').'</th>
|
||||
<th>'.$p->t('lvaliste/lehrform').'</th>
|
||||
<th>'.$p->t('lvaliste/lvBezeichnung').'</th>
|
||||
<th>'.$p->t('lvaliste/lektor').'</th>
|
||||
<th>'.$p->t('lvaliste/studiengang').'</th>
|
||||
<th>'.$p->t('lvaliste/semester').'</th>
|
||||
<th>'.$p->t('lvaliste/gruppen').'</th>
|
||||
<th>'.$p->t('lvaliste/raumtyp').'</th>
|
||||
<th>'.$p->t('lvaliste/raumtypalternativ').'</th>
|
||||
<th>'.$p->t('lvaliste/blockung').'</th>
|
||||
<th>'.$p->t('lvaliste/wochenrythmus').'</th>
|
||||
<th>'.$p->t('lvaliste/stunden').'</th>
|
||||
<th>'.$p->t('lvaliste/kalenderwoche').'</th>
|
||||
<th>Anm. von</th>
|
||||
<th>Anm. bis</th>
|
||||
</tr>
|
||||
</thead><tbody>';
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->getAll(null,null);
|
||||
$summe_std = 0;
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
for ($i = 0; $i < $num_rows; $i++)
|
||||
{
|
||||
if($db->db_num_rows($result)>0)
|
||||
$row = $db->db_fetch_object($result);
|
||||
|
||||
// Nur erteilte Vertraege anzeigen wenn dies im Config hinterlegt ist.
|
||||
if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
|
||||
&& CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
|
||||
{
|
||||
echo '<H3>'.$p->t('lvaliste/betreuungen').'</H3>';
|
||||
echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
|
||||
echo '<table class="tablesorter" id="t2">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th>'.$p->t('lvaliste/studiengang').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/semester').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/stunden').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/lvBezeichnung').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/student').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/betreuungsart').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/titelProjektarbeit').'</th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
while($row = $db->db_fetch_object($result))
|
||||
$vertrag = new vertrag();
|
||||
if (!$vertrag->isVertragErteiltLV($row->lehrveranstaltung_id, $stdsem, $user))
|
||||
{
|
||||
echo '<tr>';
|
||||
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
|
||||
echo '<td>'.$row->semester.'</td>';
|
||||
if(getSprache()=='German')
|
||||
{
|
||||
echo '<td>'.number_format($row->stunden,2,$dec_point =",", $thousands_sep ="."). '</td>';
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$anzahl_lvs++;
|
||||
|
||||
$lvangebot = new lvangebot();
|
||||
$lvtable .= '<tr>';
|
||||
if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
$lvtable .= '<td nowrap><a href="../lehre/benotungstool/lvgesamtnoteverwalten.php?lvid='.$row->lehrveranstaltung_id.'&stsem='.$stdsem.'">'.$p->t('lvaliste/gesamtnote').'</a></td>';
|
||||
|
||||
if ($lvinfo)
|
||||
$lvtable .= '<td><a href="../../../addons/lvinfo/cis/lvinfo.php?lv_id='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stdsem.'" target="_blank">'.$p->t('lvaliste/lvinfo').'</a></td>';
|
||||
|
||||
$lvtable .= '<td>'.$row->lehreinheit_id.'</td>';
|
||||
$lvtable .= '<td>'.$row->lehrfach.'</td>';
|
||||
$lvtable .= '<td>'.$row->le_lehrform_kurzbz.'</td>';
|
||||
if ($row->lehrfach_bez != $row->lv_bezeichnung)
|
||||
$lvtable .= '<td><a href="../lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stdsem.'">'.$row->lv_bezeichnung.' ('.$p->t('lvaliste/lehrfach').': '.$row->lehrfach_bez.')</a></td>';
|
||||
else
|
||||
$lvtable .= '<td><a href="../lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stdsem.'">'.$row->lv_bezeichnung.'</a></td>';
|
||||
$lvtable .= '<td>'.$row->lektor.'</td>';
|
||||
$lvtable .= '<td><a href="mailto:'.$row->email.'">'.$row->stg_kurzbz.'</a></td>';
|
||||
$lvtable .= '<td>'.$row->semester.'</td>';
|
||||
|
||||
$qry = "
|
||||
SELECT * FROM lehre.tbl_lehreinheitgruppe
|
||||
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
|
||||
|
||||
$gruppe = '';
|
||||
if ($result_grp = $db->db_query($qry))
|
||||
{
|
||||
while ($row_grp = $db->db_fetch_object($result_grp))
|
||||
{
|
||||
if ($row_grp->gruppe_kurzbz != '')
|
||||
$gruppe .= $row_grp->gruppe_kurzbz.'<br>';
|
||||
else
|
||||
{
|
||||
echo '<td>'.number_format($row->stunden,2,$dec_point =".", $thousands_sep =","). '</td>';
|
||||
}
|
||||
echo '<td>'.$row->bezeichnung.'</td>';
|
||||
echo '<td>'.$row->student.'</td>';
|
||||
echo '<td>'.$row->beutreuerart_beschreibung.'</td>';
|
||||
echo '<td>'.$row->titel.'</td>';
|
||||
|
||||
$summe_std+=$row->stunden;
|
||||
$gruppe .= $stg_obj->kuerzel_arr[$row->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe.'<br>';
|
||||
}
|
||||
echo '</tbody>';
|
||||
echo '<tfoot>';
|
||||
}
|
||||
$lvtable .= '<td>'.$gruppe.'</td>';
|
||||
$lvtable .= '<td>'.$row->raumtyp.'</td>';
|
||||
$lvtable .= '<td>'.$row->raumtypalternativ.'</td>';
|
||||
$lvtable .= '<td>'.$row->stundenblockung.'</td>';
|
||||
$lvtable .= '<td>'.$row->wochenrythmus.'</td>';
|
||||
if (getSprache() == 'German')
|
||||
{
|
||||
$lvtable .= '<td>'.number_format($row->semesterstunden,2,$dec_point=",",$thousands_sep=".").'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lvtable .= '<td>'.number_format($row->semesterstunden,2,$dec_point=".",$thousands_sep=",").'</td>';
|
||||
}
|
||||
$lvtable .= '<td>'.$row->start_kw.'</td>';
|
||||
|
||||
$lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz);
|
||||
if (!empty($lvangebot->result))
|
||||
{
|
||||
$lvtable .= '<td>'.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_start, "d.m.Y").'</td>';
|
||||
$lvtable .= '<td>'.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_ende, "d.m.Y").'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lvtable .= '<td> </td>
|
||||
<td> </td>';
|
||||
}
|
||||
|
||||
$lvtable .= '</tr>';
|
||||
$summe_std += $row->semesterstunden;
|
||||
}
|
||||
$lvtable .= '</tbody>';
|
||||
$lvtable .= '<tfoot>';
|
||||
$lvtable .= '<tr>';
|
||||
if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
$lvtable .= '<td> </td>';
|
||||
if ($lvinfo)
|
||||
$lvtable .= '<td> </td>';
|
||||
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
|
||||
if (getSprache() == 'German')
|
||||
{
|
||||
$lvtable .= '<th>'.number_format($summe_std, 2, $dec_point = ",", $thousands_sep = ".").'</th>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lvtable .= '<th>'.number_format($summe_std, 2, $dec_point = ".", $thousands_sep = ",").'</th>';
|
||||
}
|
||||
$lvtable .= '<td> </td>';
|
||||
$lvtable .= '</tr>';
|
||||
$lvtable .= '</tfoot>';
|
||||
$lvtable .= '</table>';
|
||||
|
||||
if($anzahl_lvs > 0)
|
||||
{
|
||||
echo '<h3>'.$p->t('lvaliste/lehrveranstaltungen').'</h3>';
|
||||
echo $p->t('lvaliste/anzahl').': '.$anzahl_lvs;
|
||||
echo $lvtable;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('lvaliste/keineDatensaetze').'<BR>';
|
||||
}
|
||||
}
|
||||
else
|
||||
echo $p->t('lvaliste/keineDatensaetze').'<BR>';
|
||||
|
||||
//Betreuungen
|
||||
$mitarbeiter = new benutzer();
|
||||
$mitarbeiter->load($uid);
|
||||
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel,
|
||||
(SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id)
|
||||
WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester,
|
||||
tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden
|
||||
FROM
|
||||
lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart
|
||||
WHERE
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
|
||||
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
|
||||
tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND
|
||||
tbl_projektbetreuer.betreuerart_kurzbz=tbl_betreuerart.betreuerart_kurzbz AND
|
||||
tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER);
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->getAll(null,null);
|
||||
$summe_std = 0;
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
if ($db->db_num_rows($result) > 0)
|
||||
{
|
||||
echo '<br>';
|
||||
echo '<H3>'.$p->t('lvaliste/betreuungen').'</H3>';
|
||||
echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
|
||||
echo '<table class="tablesorter" id="t2">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th>'.$p->t('lvaliste/studiengang').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/semester').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/stunden').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/lvBezeichnung').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/student').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/betreuungsart').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/titelProjektarbeit').'</th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo '<tr>';
|
||||
if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
|
||||
echo '<td>'.$row->semester.'</td>';
|
||||
if (getSprache() == 'German')
|
||||
{
|
||||
echo '<td> </td>';
|
||||
}
|
||||
if($lvinfo)
|
||||
|
||||
echo '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
|
||||
|
||||
if(getSprache()=='German')
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").'</th>';
|
||||
echo '<td>'.number_format($row->stunden,2,$dec_point =",", $thousands_sep ="."). '</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").'</th>';
|
||||
echo '<td>'.number_format($row->stunden,2,$dec_point =".", $thousands_sep =","). '</td>';
|
||||
}
|
||||
echo '<td>'.$row->bezeichnung.'</td>';
|
||||
echo '<td>'.$row->student.'</td>';
|
||||
echo '<td>'.$row->beutreuerart_beschreibung.'</td>';
|
||||
echo '<td>'.$row->titel.'</td>';
|
||||
|
||||
|
||||
echo '<td> </td>';
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
echo '</tbody></table>';
|
||||
$summe_std += $row->stunden;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Koordination
|
||||
|
||||
$qry = "SELECT
|
||||
distinct
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung,
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.semester,tbl_lehrveranstaltung.koordinator,
|
||||
tbl_studiengang.email
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung,
|
||||
lehre.tbl_lehreinheit,
|
||||
lehre.tbl_lehrveranstaltung as lehrfach,
|
||||
public.tbl_studiengang,
|
||||
public.tbl_fachbereich
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND
|
||||
tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
|
||||
(tbl_lehrveranstaltung.koordinator=".$db->db_add_param($uid)."
|
||||
OR
|
||||
( tbl_lehrveranstaltung.koordinator is null and (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (SELECT studiengang_kz, fachbereich_kurzbz
|
||||
FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz)
|
||||
WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)."
|
||||
and ( tbl_benutzerfunktion.datum_bis is null or now() between tbl_benutzerfunktion.datum_von and tbl_benutzerfunktion.datum_bis )
|
||||
))
|
||||
) AND
|
||||
tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz
|
||||
order by tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester ,tbl_lehrveranstaltung.bezeichnung
|
||||
";
|
||||
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($db->db_num_rows($result)>0)
|
||||
echo '</tbody>';
|
||||
echo '<tfoot>';
|
||||
echo '<tr>';
|
||||
if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
{
|
||||
echo '<H3>'.$p->t('lvaliste/koordination').'</H3>';
|
||||
echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
|
||||
echo '<table class="tablesorter" id="t3">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th>'.$p->t('lvaliste/studiengang').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/semester').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/institut').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/lvBezeichnung').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/lektor').'</th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
//Fachbereichskoordinatoren holen
|
||||
$qry = "SELECT distinct
|
||||
uid,titelpre, titelpost, vorname, nachname
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter,
|
||||
public.tbl_benutzer,
|
||||
public.tbl_person,
|
||||
lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id, FHC_INTEGER)." AND
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND
|
||||
tbl_benutzer.person_id=tbl_person.person_id AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem);
|
||||
$lektoren='';
|
||||
if($result_lkt = $db->db_query($qry))
|
||||
{
|
||||
while($row_lkt = $db->db_fetch_object($result_lkt))
|
||||
{
|
||||
if($lektoren!='')
|
||||
$lektoren.=',';
|
||||
$lektoren.=trim($row_lkt->titelpre.' '.$row_lkt->vorname.' '.$row_lkt->nachname.' '.$row_lkt->titelpost);
|
||||
}
|
||||
}
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
|
||||
echo '<td>'.$row->semester.'</td>';
|
||||
echo '<td>'.$row->stunden.'</td>';
|
||||
echo '<td>'.$row->fachbereich_kurzbz.'</td>';
|
||||
echo '<td>'.$row->bezeichnung.'</td>';
|
||||
echo '<td>'.$lektoren.'</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
echo '<td> </td>';
|
||||
}
|
||||
if ($lvinfo)
|
||||
|
||||
echo '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
|
||||
|
||||
if (getSprache() == 'German')
|
||||
{
|
||||
echo '<th>'.number_format($summe_std, 2, $dec_point = ",", $thousands_sep = ".").'</th>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<th>'.number_format($summe_std, 2, $dec_point = ".", $thousands_sep = ",").'</th>';
|
||||
}
|
||||
|
||||
echo '<td> </td>';
|
||||
echo '</tr>';
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
}
|
||||
|
||||
//Koordination
|
||||
$qry = "SELECT
|
||||
distinct
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung,
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.semester,tbl_lehrveranstaltung.koordinator,
|
||||
tbl_studiengang.email
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung,
|
||||
lehre.tbl_lehreinheit,
|
||||
lehre.tbl_lehrveranstaltung as lehrfach,
|
||||
public.tbl_studiengang,
|
||||
public.tbl_fachbereich
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND
|
||||
tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
|
||||
(
|
||||
tbl_lehrveranstaltung.koordinator=".$db->db_add_param($uid)."
|
||||
OR
|
||||
( tbl_lehrveranstaltung.koordinator is null
|
||||
AND (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (
|
||||
SELECT studiengang_kz, fachbereich_kurzbz
|
||||
FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz)
|
||||
WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)."
|
||||
AND (
|
||||
tbl_benutzerfunktion.datum_bis is null
|
||||
OR now() between tbl_benutzerfunktion.datum_von and tbl_benutzerfunktion.datum_bis )
|
||||
)
|
||||
)
|
||||
)
|
||||
AND tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz
|
||||
ORDER BY
|
||||
tbl_lehrveranstaltung.studiengang_kz,
|
||||
tbl_lehrveranstaltung.semester,
|
||||
tbl_lehrveranstaltung.bezeichnung
|
||||
";
|
||||
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
if ($db->db_num_rows($result) > 0)
|
||||
{
|
||||
echo '<H3>'.$p->t('lvaliste/koordination').'</H3>';
|
||||
echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
|
||||
echo '<table class="tablesorter" id="t3">';
|
||||
echo '<thead><tr>';
|
||||
echo '<th>'.$p->t('lvaliste/studiengang').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/semester').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/institut').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/lvBezeichnung').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/lektor').'</th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
//Fachbereichskoordinatoren holen
|
||||
$qry = "SELECT distinct
|
||||
uid,titelpre, titelpost, vorname, nachname
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter,
|
||||
public.tbl_benutzer,
|
||||
public.tbl_person,
|
||||
lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id, FHC_INTEGER)." AND
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND
|
||||
tbl_benutzer.person_id=tbl_person.person_id AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem);
|
||||
$lektoren='';
|
||||
if($result_lkt = $db->db_query($qry))
|
||||
{
|
||||
while($row_lkt = $db->db_fetch_object($result_lkt))
|
||||
{
|
||||
if($lektoren!='')
|
||||
$lektoren.=',';
|
||||
$lektoren.=trim($row_lkt->titelpre.' '.$row_lkt->vorname.' '.$row_lkt->nachname.' '.$row_lkt->titelpost);
|
||||
}
|
||||
}
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
|
||||
echo '<td>'.$row->semester.'</td>';
|
||||
echo '<td>'.$row->stunden.'</td>';
|
||||
echo '<td>'.$row->fachbereich_kurzbz.'</td>';
|
||||
echo '<td>'.$row->bezeichnung.'</td>';
|
||||
echo '<td>'.$lektoren.'</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
}
|
||||
echo '<BR>'.$p->t('lvaliste/fehlerAnStudiengang').'<BR><BR><BR>';
|
||||
?>
|
||||
</body>
|
||||
|
||||
@@ -718,7 +718,11 @@ for ($i=0;$i<6;$i++)
|
||||
else
|
||||
{
|
||||
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>';
|
||||
if(isset($freigabeamum[$j+7*$i]))
|
||||
if(!isset($freigabeamum[$j+7*$i]) && !isset($freigabevon[$j+7*$i]))
|
||||
{
|
||||
echo '<img src="../../../skin/images/flag-red.png" alt="nicht freigegeben" title="'.$p->t('urlaubstool/freigabeFehlt').'"></td>';
|
||||
}
|
||||
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>';
|
||||
}
|
||||
|
||||
@@ -587,7 +587,17 @@ function searchContent($searchItems)
|
||||
// URL aus content parsen
|
||||
$dom = new DOMDocument();
|
||||
$dom->loadXML($row->content);
|
||||
$content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
|
||||
if($dom->getElementsByTagName('url')!=null
|
||||
&& $dom->getElementsByTagName('url')->item(0)!=null)
|
||||
{
|
||||
$content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Wenn bei redirects keine URL vorhanden ist, dann handelt es sich um Fehlerhafte Einträge
|
||||
// diese werden übersprungen
|
||||
continue;
|
||||
}
|
||||
|
||||
if (substr($content, 0, 1) == '#')
|
||||
continue;
|
||||
@@ -649,15 +659,33 @@ function searchContent($searchItems)
|
||||
// URL aus content parsen
|
||||
$dom = new DOMDocument();
|
||||
$dom->loadXML($row->content);
|
||||
$content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
|
||||
|
||||
if($dom->getElementsByTagName('url')!=null
|
||||
&& $dom->getElementsByTagName('url')->item(0)!=null)
|
||||
{
|
||||
$content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Wenn bei redirects keine URL vorhanden ist, dann handelt es sich um Fehlerhafte Einträge
|
||||
// diese werden übersprungen
|
||||
continue;
|
||||
}
|
||||
if (substr($content, 0, 1) == '#')
|
||||
continue;
|
||||
else
|
||||
{
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="'.$content.'" target="blank">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
echo '</div></li>';
|
||||
if(mb_strpos($content, 'http') === 0)
|
||||
{
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="'.$content.'" target="blank">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
echo '</div></li>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="../../../cms/content.php?content_id=',$db->convert_html_chars($row->content_id),'&sprache=',$db->convert_html_chars($row->sprache),'">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
echo '</div></li>';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -24,123 +24,146 @@ echo '<?xml version="1.0" encoding="ISO-8859-1" ?>';
|
||||
<head>
|
||||
<title>Testsite MathML</title>
|
||||
<meta http-equiv="content-type" content="text/xhtml; charset=UTF-8"/>
|
||||
<link rel="stylesheet" href="../../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css" type="text/css"/>
|
||||
<!-- <link href="../../skin/style.css.php" rel="stylesheet" type="text/css">-->
|
||||
<!-- <link rel="stylesheet" href="../../vendor/components/jqueryui/themes/base/jquery-ui.min.css" type="text/css"/>-->
|
||||
<script type="text/javascript" src="../../../vendor/components/jquery/jquery.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>
|
||||
<!-- <script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>-->
|
||||
|
||||
<style>
|
||||
body {
|
||||
background-color: #FFFFFF;
|
||||
margin:10px 10px 10px 90px;
|
||||
padding-left:50px;
|
||||
padding-top:50px;
|
||||
}
|
||||
body, td {
|
||||
background-color:transparent;
|
||||
font-family:"Tahoma";
|
||||
font-size:20px;
|
||||
line-height:30px;
|
||||
text-decoration:none;
|
||||
}
|
||||
h1 {
|
||||
color:#459F8C;
|
||||
font-weight:bold;
|
||||
text-align: left;
|
||||
padding: 0px;
|
||||
font-size:25px;
|
||||
}
|
||||
/*body {*/
|
||||
/*background-color: #FFFFFF;*/
|
||||
/*margin:10px 10px 10px 90px;*/
|
||||
/*padding-left:50px;*/
|
||||
/*padding-top:50px;*/
|
||||
/*}*/
|
||||
/*body, td {*/
|
||||
/* background-color:transparent;*/
|
||||
/* font-family:"Tahoma";*/
|
||||
/* font-size:20px;*/
|
||||
/* line-height:30px;*/
|
||||
/* text-decoration:none;*/
|
||||
/* }*/
|
||||
/*h1 {*/
|
||||
/* color:#459F8C;*/
|
||||
/* font-weight:bold;*/
|
||||
/* text-align: left; */
|
||||
/* padding: 0px;*/
|
||||
/* font-size:25px;*/
|
||||
/*}*/
|
||||
|
||||
</style></head>
|
||||
|
||||
<body>
|
||||
|
||||
<table cellpadding="0" cellspacing="0px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><h1>MathML</h1></td>
|
||||
<td width="40px"></td>
|
||||
<td><h1>Picture</h1></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
||||
<mfrac>
|
||||
<mn> 5 </mn>
|
||||
<mn> 3 </mn>
|
||||
</mfrac>
|
||||
|
||||
<mo> + </mo>
|
||||
<mfrac>
|
||||
<mn> 7 </mn>
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
<mo> = </mo>
|
||||
|
||||
<mfrac>
|
||||
<mn> 10 </mn>
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
<mo> + </mo>
|
||||
<mfrac>
|
||||
|
||||
<mn> 7 </mn>
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
<mo> = </mo>
|
||||
<mfrac>
|
||||
<mn> 17 </mn>
|
||||
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
</math><br/><br/>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
||||
<mrow>
|
||||
<munderover>
|
||||
<mo movablelimits="false">∑</mo>
|
||||
<mn><mi>k</mi>=1</mn>
|
||||
<mn>5</mn>
|
||||
</munderover>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mo>(-1)</mo>
|
||||
<mn><mi>k</mi>+1</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2<mi>k</mi> + 1</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mo>(2<mi>k</mi>+1)!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
|
||||
</math>
|
||||
</td>
|
||||
<td width="10"> </td>
|
||||
<td style="width: 233px;" align="left">
|
||||
<img alt="Beispielbild" src="MathML_Beispiel.jpg" border="1" height="154" width="233"></img>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" colspan="3"><br>The formula on the left side should be equal <br/>to the picture on the right side.</td>
|
||||
</tr>
|
||||
<?php
|
||||
//Sound einbinden
|
||||
echo ' <tr>
|
||||
<td align="center" colspan="3"><hr><br/>Audio-Testfile<br/><br/>
|
||||
<!--<audio src="sound.php?src=frage&frage_id='.$frage->frage_id.'&sprache='.$_SESSION['sprache'].'" controls="controls" type="audio/mpeg">-->
|
||||
<audio src="audio_testfile.ogg" controls="controls" type="audio/ogg">
|
||||
<div>
|
||||
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
|
||||
<div class="text-center">
|
||||
<h1>Testseite zur Darstellung des Reihungstests an der FHTW</h1>
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<noscript>
|
||||
<div class="row alert alert-danger">
|
||||
<div class="col-sm-12 ">
|
||||
Javascript ist in diesem Browser nicht aktiviert.<br>
|
||||
Bitte aktivieren Sie Javascript, um den Reihungstest durchführen zu können.<br>
|
||||
<br>
|
||||
Javascript is not activated in this browser.<br>
|
||||
Please activate Javascript before starting the test.
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
<div class="row well">
|
||||
<div class="col-sm-12">
|
||||
<h2>Fomeln</h2>
|
||||
<p>Die Formeln auf der linken Seite sollten möglichst gleich dargestellt werden, wie in dem Bild auf der rechten Seite.<br>
|
||||
Abweichungen in Schriftgröße und -art können vorkommen.</p>
|
||||
<p>The formula on the left side should be equal to the picture on the right side.<br>
|
||||
Differences in font size and font styling are acceptable.</p>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 text-right">
|
||||
<h3>Formel / Formula</h3>
|
||||
<div style="font-size: large; padding-top: 15px">
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
||||
<mfrac>
|
||||
<mn> 5 </mn>
|
||||
<mn> 3 </mn>
|
||||
</mfrac>
|
||||
|
||||
<mo> + </mo>
|
||||
<mfrac>
|
||||
<mn> 7 </mn>
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
<mo> = </mo>
|
||||
|
||||
<mfrac>
|
||||
<mn> 10 </mn>
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
<mo> + </mo>
|
||||
<mfrac>
|
||||
|
||||
<mn> 7 </mn>
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
<mo> = </mo>
|
||||
<mfrac>
|
||||
<mn> 17 </mn>
|
||||
|
||||
<mn> 6 </mn>
|
||||
</mfrac>
|
||||
</math><br/><br/>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
||||
<mrow>
|
||||
<munderover>
|
||||
<mo movablelimits="false">∑</mo>
|
||||
<mn><mi>k</mi>=1</mn>
|
||||
<mn>5</mn>
|
||||
</munderover>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mo>(-1)</mo>
|
||||
<mn><mi>k</mi>+1</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2<mi>k</mi> + 1</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mo>(2<mi>k</mi>+1)!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
|
||||
</math>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<h3>Bild / Picture</h3>
|
||||
<img alt="Beispielbild" src="MathML_Beispiel.jpg" border="1" height="154" width="233"></img>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row well">
|
||||
<div class="col-sm-12">
|
||||
<h2>Audiofiles</h2>
|
||||
<p>Manche Module beinhalten Hörbeispiele</p>
|
||||
<p>Testen Sie hier, ob Sie den Ton hören können.</p>
|
||||
<audio controls>
|
||||
<source src="audio_testfile.ogg" type="audio/ogg">
|
||||
<source src="audio_testfile.mp3" type="audio/mpeg">
|
||||
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
|
||||
</audio>
|
||||
</td>
|
||||
</tr>';
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -265,10 +265,10 @@ if ($gebiet_id != '')
|
||||
{
|
||||
$offsetwarnung = strlen($gebiet->errormsg) > 0 ? ' (HINWEIS: '.$gebiet->errormsg.')' : '';
|
||||
|
||||
$offsethinweis = ' <span class="error">empfohlene Offsetpunkteanzahl: '.round($offsetpunkte).(round($offsetpunkte) != $offsetpunkte ? ' ('.$offsetpunkte.' gerundet)' : '').'</span>';
|
||||
$offsethinweis = ' <span class="error">empfohlene Offsetpunkteanzahl: '.ceil($offsetpunkte).(ceil($offsetpunkte) != $offsetpunkte ? ' ('.$offsetpunkte.' gerundet)' : '').'</span>';
|
||||
$offsethinweis .= '<span class="error">'.$offsetwarnung.'</span>';
|
||||
}
|
||||
echo '<td>Offsetpunkte (minimale Punkteanzahl)</td><td><input type="text" size="5" maxlength="5" name="offsetpunkte" value="'.$gebiet->offsetpunkte.'">'.$offsethinweis.'</td>';
|
||||
echo '<td>Offsetpunkte (maximale Negativpunkte)</td><td><input type="text" size="5" maxlength="7" name="offsetpunkte" value="'.$gebiet->offsetpunkte.'">'.$offsethinweis.'</td>';
|
||||
echo '</tr><tr>';
|
||||
echo '<td>Maximale Fragenanzahl</td><td><input type="text" size="5" maxlength="5" name="maxfragen" value="'.$gebiet->maxfragen.'"></td>';
|
||||
echo '</tr><tr>';
|
||||
|
||||
+34
-10
@@ -22,28 +22,54 @@
|
||||
// Holt den Hexcode eines Bildes aus der DB wandelt es in Zeichen
|
||||
// um und gibt das ein Bild zurueck.
|
||||
// Aufruf mit <img src='bild.php?src=frage&frage_id=1
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
session_start();
|
||||
if(!isset($_SESSION['pruefling_id']))
|
||||
{
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if (!$rechte->isBerechtigt('basis/testtool', null, 's'))
|
||||
die($rechte->errormsg);
|
||||
}
|
||||
|
||||
//base64 Dump aus der DB holen
|
||||
$qry = '';
|
||||
if(isset($_GET['src']) && $_GET['src']=='frage' && isset($_GET['frage_id']))
|
||||
{
|
||||
$qry = "SELECT bild FROM testtool.tbl_frage_sprache WHERE frage_id='".addslashes($_GET['frage_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
$qry = "
|
||||
SELECT
|
||||
bild
|
||||
FROM
|
||||
testtool.tbl_frage_sprache
|
||||
WHERE
|
||||
frage_id=".$db->db_add_param($_GET['frage_id'], FHC_INTEGER)."
|
||||
AND sprache=".$db->db_add_param($_GET['sprache']);
|
||||
}
|
||||
elseif(isset($_GET['src']) && $_GET['src']=='vorschlag' && isset($_GET['vorschlag_id']))
|
||||
{
|
||||
$qry = "SELECT bild FROM testtool.tbl_vorschlag_sprache WHERE vorschlag_id='".addslashes($_GET['vorschlag_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
$qry = "
|
||||
SELECT
|
||||
bild
|
||||
FROM
|
||||
testtool.tbl_vorschlag_sprache
|
||||
WHERE
|
||||
vorschlag_id=".$db->db_add_param($_GET['vorschlag_id'], FHC_INTEGER)."
|
||||
AND sprache=".$db->db_add_param($_GET['sprache']);
|
||||
}
|
||||
elseif(isset($_GET['src']) && $_GET['src']=='flag' && isset($_GET['sprache']))
|
||||
{
|
||||
$qry = "SELECT flagge as bild FROM public.tbl_sprache WHERE sprache='".addslashes($_GET['sprache'])."'";
|
||||
$qry = "SELECT flagge as bild FROM public.tbl_sprache WHERE sprache=".$db->db_add_param($_GET['sprache']);
|
||||
}
|
||||
|
||||
else
|
||||
else
|
||||
echo 'Unkown type';
|
||||
|
||||
if($qry!='')
|
||||
@@ -56,5 +82,3 @@ if($qry!='')
|
||||
echo base64_decode($row->bild);
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ require_once('../../include/antwort.class.php');
|
||||
require_once('../../include/gebiet.class.php');
|
||||
require_once('../../include/sprache.class.php');
|
||||
require_once '../../include/phrasen.class.php';
|
||||
require_once '../../include/reihungstest.class.php';
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
@@ -174,6 +175,17 @@ if(!$gestartet && $gebiet->errormsg!='')
|
||||
//Start des Pruefungsvorganges
|
||||
if(isset($_GET['start']) && !$gestartet)
|
||||
{
|
||||
//Wenn der Reihungstest nicht freigeschaltet ist, kann das Gebiet nicht gestartet werden
|
||||
if (isset($_SESSION['reihungstestID']) && $_SESSION['reihungstestID'] != '')
|
||||
{
|
||||
$rt = new reihungstest($_SESSION['reihungstestID']);
|
||||
if ($rt->freigeschaltet == false)
|
||||
{
|
||||
echo '<div class="alert alert-danger">Die Gesamtbearbeitungszeit des Reihungstests ist vorbei und der Test wurde gesperrt.</div></body>';
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
//Fragenpool generieren
|
||||
$frage = new frage();
|
||||
if(!$frage->generateFragenpool($_SESSION['pruefling_id'], $gebiet_id))
|
||||
|
||||
+5
-14
@@ -1,21 +1,12 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>TestTool - FH Technikum Wien</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="refresh" content="0; url=index.php" />
|
||||
</head>
|
||||
|
||||
<frameset rows="13%,*" cols="*" frameborder="NO" border="0" framespacing="0">
|
||||
<frame src="topbar.php" name="topbar" scrolling="NO" noresize>
|
||||
<frameset rows="*" cols="230,*" framespacing="0" frameborder="NO" border="0">
|
||||
<frame id="menu_testtool" src="menu.php" name="menu" scrolling="AUTO" noresize>
|
||||
<frame id="content_testtool" style="padding-top: 24px; overflow: hidden; padding-left: 10px" src="login.php" name="content">
|
||||
</frameset>
|
||||
<noframes>
|
||||
<body>
|
||||
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
|
||||
</body>
|
||||
</noframes>
|
||||
</frameset>
|
||||
<body>
|
||||
Falls sie nicht automatisch weitergeleitet werden klicken Sie <a href="index.php">hier</a>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
$contentpage = 'login.php';
|
||||
|
||||
if(isset($_GET['prestudent']) && is_numeric($_GET['prestudent']))
|
||||
{
|
||||
$contentpage = 'login.php?prestudent='.$_GET['prestudent'];
|
||||
}
|
||||
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>TestTool - FH Technikum Wien</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<frameset rows="13%,*" cols="*" frameborder="NO" border="0" framespacing="0">
|
||||
<frame src="topbar.php" name="topbar" scrolling="NO" noresize>
|
||||
<frameset rows="*" cols="230,*" framespacing="0" frameborder="NO" border="0">
|
||||
<frame id="menu_testtool" src="menu.php" name="menu" scrolling="AUTO" noresize>
|
||||
<frame id="content_testtool" style="padding-top: 24px; overflow: hidden; padding-left: 10px" src="<?php echo $contentpage;?>" name="content">
|
||||
</frameset>
|
||||
<noframes>
|
||||
<body>
|
||||
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
|
||||
</body>
|
||||
</noframes>
|
||||
</frameset>
|
||||
</html>
|
||||
+376
-301
@@ -44,22 +44,22 @@ session_start();
|
||||
// Logout (triggered by logout button in menu.php)
|
||||
if (isset($_GET['logout']) && $_GET['logout'] == true)
|
||||
{
|
||||
// Unset global vars
|
||||
unset($_GET['logout']);
|
||||
unset($_GET['sprache_user']);
|
||||
$_POST = [];
|
||||
$_SESSION = [];
|
||||
// Unset global vars
|
||||
unset($_GET['logout']);
|
||||
unset($_GET['sprache_user']);
|
||||
$_POST = [];
|
||||
$_SESSION = [];
|
||||
|
||||
// Destroy session
|
||||
session_destroy();
|
||||
// Destroy session
|
||||
session_destroy();
|
||||
|
||||
echo '
|
||||
<script language="Javascript">
|
||||
location = location.pathname; // clean the login.php-url from querystring
|
||||
parent.menu.location = parent.menu.location.pathname; // clean the menu.php-url from querystring
|
||||
parent.topbar.location = parent.topbar.location.pathname; // clean the topbar.php-url from querystring
|
||||
</script>
|
||||
';
|
||||
echo '
|
||||
<script language="Javascript">
|
||||
location = location.pathname; // clean the login.php-url from querystring
|
||||
parent.menu.location = parent.menu.location.pathname; // clean the menu.php-url from querystring
|
||||
parent.topbar.location = parent.topbar.location.pathname; // clean the topbar.php-url from querystring
|
||||
</script>
|
||||
';
|
||||
}
|
||||
|
||||
$gebdatum='';
|
||||
@@ -70,19 +70,45 @@ $alertmsg = '';
|
||||
|
||||
$sg_var = new studiengang();
|
||||
|
||||
if(isset($_POST['gebdatum']) && $_POST['gebdatum']!='')
|
||||
if (isset($_POST['gebdatum']) && $_POST['gebdatum']!='')
|
||||
{
|
||||
$gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d');
|
||||
}
|
||||
else
|
||||
$gebdatum='';
|
||||
|
||||
if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
if (isset($_REQUEST['prestudent']))
|
||||
{
|
||||
$ps=new prestudent($_POST['prestudent']);
|
||||
$ps = new prestudent($_REQUEST['prestudent']);
|
||||
|
||||
//Geburtsdatum Pruefen
|
||||
if ($gebdatum==$ps->gebdatum)
|
||||
$login_ok = false;
|
||||
if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && isset($_GET['confirmation']))
|
||||
{
|
||||
if (isset($_SESSION['bewerbung/personId']) && $ps->person_id == $_SESSION['bewerbung/personId'])
|
||||
{
|
||||
$login_ok = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$alertmsg .= '<div class="alert alert-danger">Login ist nicht korrekt.
|
||||
Bitte schließen Sie ihren Browser und versuchen es erneut
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
elseif(!defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') || TESTTOOL_LOGIN_BEWERBUNGSTOOL == false)
|
||||
{
|
||||
//Geburtsdatum Pruefen
|
||||
if (isset($gebdatum) && $gebdatum == $ps->gebdatum)
|
||||
{
|
||||
$login_ok = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($login_ok)
|
||||
{
|
||||
$reihungstest_id='';
|
||||
//Freischaltung fuer zugeteilten Reihungstest pruefen
|
||||
@@ -91,29 +117,29 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
// Wenns der Dummy ist dann extra laden
|
||||
// An der FHTW gibt es 3 Testuser für den Camus International
|
||||
$prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:'');
|
||||
if($prestudent_id_dummy_student==$ps->prestudent_id ||
|
||||
if ($prestudent_id_dummy_student==$ps->prestudent_id ||
|
||||
(CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30891) ||
|
||||
(CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30890) ||
|
||||
(CAMPUS_NAME == 'FH Technikum Wien' && $ps->prestudent_id == 30889))
|
||||
{
|
||||
$rt->getReihungstestPerson($ps->person_id);
|
||||
if(isset($rt->result[0]))
|
||||
if (isset($rt->result[0]))
|
||||
$reihungstest_id = $rt->result[0]->reihungstest_id;
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</span>';
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d')))
|
||||
if ($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d')))
|
||||
{
|
||||
// TODO Was ist wenn da mehrere Zurueckkommen?!
|
||||
if(isset($rt->result[0]))
|
||||
if (isset($rt->result[0]))
|
||||
$reihungstest_id = $rt->result[0]->reihungstest_id;
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</span>';
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -121,16 +147,15 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
echo 'Failed:'.$rt->errormsg;
|
||||
}
|
||||
}
|
||||
//echo "Reihungstest $reihungstest_id";
|
||||
if($reihungstest_id != '' && $rt->load($reihungstest_id))
|
||||
if ($reihungstest_id != '' && $rt->load($reihungstest_id))
|
||||
{
|
||||
if($rt->freigeschaltet)
|
||||
if ($rt->freigeschaltet)
|
||||
{
|
||||
// regenerate Session ID after Login
|
||||
session_regenerate_id();
|
||||
|
||||
$pruefling = new pruefling();
|
||||
if($pruefling->getPruefling($ps->prestudent_id))
|
||||
if ($pruefling->getPruefling($ps->prestudent_id))
|
||||
{
|
||||
$studiengang = $pruefling->studiengang_kz;
|
||||
$semester = $pruefling->semester;
|
||||
@@ -141,10 +166,10 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
$ps->getLastStatus($ps->prestudent_id);
|
||||
$semester = $ps->ausbildungssemester;
|
||||
}
|
||||
if($semester=='')
|
||||
if ($semester=='')
|
||||
$semester=1;
|
||||
|
||||
$_SESSION['prestudent_id']=$_POST['prestudent'];
|
||||
$_SESSION['prestudent_id']=$_REQUEST['prestudent'];
|
||||
$_SESSION['studiengang_kz']=$studiengang;
|
||||
$_SESSION['nachname']=$ps->nachname;
|
||||
$_SESSION['vorname']=$ps->vorname;
|
||||
@@ -152,27 +177,28 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
$stg_obj = new studiengang($studiengang);
|
||||
|
||||
$_SESSION['semester']=$semester;
|
||||
$stg_obj->getStudiengangTyp($stg_obj->typ);
|
||||
$_SESSION['reihungstestID'] = $reihungstest_id;
|
||||
$stg_obj->getStudiengangTyp($stg_obj->typ);
|
||||
|
||||
// STG und Studienplan mit der höchsten Prio ermitteln
|
||||
$firstPrio_studienplan_id = '';
|
||||
$firstPrio_studiengang_kz = '';
|
||||
|
||||
// * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller
|
||||
// Bachelor-STG ermitteln, an denen die Person noch interessiert ist
|
||||
// Wenn STG vom Typ Master, dann wird als firstPrio der STPL bzw. der STG des MasterSTG gesetzt.
|
||||
if ($stg_obj->typ == 'b')
|
||||
{
|
||||
$ps->getActualInteressenten($_POST['prestudent'], true);
|
||||
}
|
||||
elseif ($stg_obj->typ == 'm')
|
||||
{
|
||||
$ps->getActualInteressenten($_POST['prestudent'], false, 'm', $studiengang);
|
||||
}
|
||||
// * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller
|
||||
// Bachelor-STG ermitteln, an denen die Person noch interessiert ist
|
||||
// Wenn STG vom Typ Master, dann wird als firstPrio der STPL bzw. der STG des MasterSTG gesetzt.
|
||||
if ($stg_obj->typ == 'b')
|
||||
{
|
||||
$ps->getActualInteressenten($_REQUEST['prestudent'], true);
|
||||
}
|
||||
elseif ($stg_obj->typ == 'm')
|
||||
{
|
||||
$ps->getActualInteressenten($_REQUEST['prestudent'], false, 'm', $studiengang);
|
||||
}
|
||||
|
||||
foreach($ps->result as $row)
|
||||
{
|
||||
if(isset($row->studiengang_kz))
|
||||
if (isset($row->studiengang_kz))
|
||||
{
|
||||
$firstPrio_studienplan_id = $row->studienplan_id;
|
||||
break;
|
||||
@@ -180,7 +206,7 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
}
|
||||
foreach($ps->result as $row)
|
||||
{
|
||||
if(isset($row->studiengang_kz))
|
||||
if (isset($row->studiengang_kz))
|
||||
{
|
||||
$firstPrio_studiengang_kz = $row->studiengang_kz;
|
||||
break;
|
||||
@@ -188,23 +214,23 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
}
|
||||
// Sprachvorgaben zu STG mit höchster Prio ermitteln
|
||||
|
||||
// * 1. Sprache über Ablauf Vorgaben ermitteln
|
||||
// * 1. Sprache über Ablauf Vorgaben ermitteln
|
||||
$ablauf = new Ablauf();
|
||||
$ablauf->getAblaufGebiete($firstPrio_studiengang_kz, $firstPrio_studienplan_id);
|
||||
$rt_sprache = '';
|
||||
|
||||
if(!empty($ablauf->result[0]))
|
||||
if (!empty($ablauf->result[0]))
|
||||
{
|
||||
$rt_sprache = $ablauf->result[0]->sprache;
|
||||
}
|
||||
|
||||
// * 2. falls keine Sprache vorhanden -> Sprache über Studienplan ermitteln
|
||||
if (empty($rt_sprache))
|
||||
{
|
||||
$stpl = new Studienplan();
|
||||
$stpl->loadStudienplan($firstPrio_studienplan_id);
|
||||
$rt_sprache = $stpl->sprache;
|
||||
}
|
||||
{
|
||||
$stpl = new Studienplan();
|
||||
$stpl->loadStudienplan($firstPrio_studienplan_id);
|
||||
$rt_sprache = $stpl->sprache;
|
||||
}
|
||||
|
||||
// * 3. falls keine Sprache vorhanden -> Sprache über Studiengang ermitteln
|
||||
if (empty($rt_sprache))
|
||||
@@ -219,13 +245,13 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
$_SESSION['sprache_user'] = DEFAULT_LANGUAGE;
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
$_SESSION['sprache_user'] = $rt_sprache;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</div>';
|
||||
{
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -233,10 +259,6 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/geburtsdatumStimmtNichtUeberein').'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
// Set language of user.
|
||||
@@ -247,21 +269,21 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
$sprache_user = DEFAULT_LANGUAGE;
|
||||
if (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user']))
|
||||
{
|
||||
// If session var already exists, overwrite language var
|
||||
// (session var changes e.g. when user selects other language with language-select-menu)
|
||||
$sprache_user = $_SESSION['sprache_user'];
|
||||
// If session var already exists, overwrite language var
|
||||
// (session var changes e.g. when user selects other language with language-select-menu)
|
||||
$sprache_user = $_SESSION['sprache_user'];
|
||||
}
|
||||
elseif (isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
// If session var does not exist but prestudent is known, set the session var
|
||||
$_SESSION['sprache_user'] = DEFAULT_LANGUAGE;
|
||||
// If session var does not exist but prestudent is known, set the session var
|
||||
$_SESSION['sprache_user'] = DEFAULT_LANGUAGE;
|
||||
}
|
||||
|
||||
// If language is changed by language select menu, reset language variables
|
||||
if(isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
||||
if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = $_GET['sprache_user'];
|
||||
$_SESSION['sprache_user'] = $_GET['sprache_user'];
|
||||
$sprache_user = $_GET['sprache_user'];
|
||||
$_SESSION['sprache_user'] = $_GET['sprache_user'];
|
||||
}
|
||||
|
||||
// NOTE: leave phrasen here, as the final users language is not defined until here
|
||||
@@ -269,7 +291,7 @@ $p = new phrasen($sprache_user);
|
||||
|
||||
if (isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
$prestudent_id=$_SESSION['prestudent_id'];
|
||||
$prestudent_id=$_SESSION['prestudent_id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -288,15 +310,15 @@ else
|
||||
}
|
||||
|
||||
|
||||
if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))
|
||||
if (isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))
|
||||
{
|
||||
$pruefling = new pruefling();
|
||||
|
||||
//wenn kein Prüfling geladen werden kann
|
||||
if(!$pruefling->getPruefling($_SESSION['prestudent_id']))
|
||||
//wenn kein Prüfling geladen werden kann
|
||||
if (!$pruefling->getPruefling($_SESSION['prestudent_id']))
|
||||
$pruefling->new = true;
|
||||
else
|
||||
$pruefling->new = false;
|
||||
else
|
||||
$pruefling->new = false;
|
||||
|
||||
$pruefling->studiengang_kz = $_SESSION['studiengang_kz'];
|
||||
$pruefling->semester = $_SESSION['semester'];
|
||||
@@ -304,18 +326,18 @@ if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))
|
||||
$pruefling->idnachweis = '';
|
||||
$pruefling->registriert = date('Y-m-d H:i:s');
|
||||
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
|
||||
if($pruefling->save())
|
||||
if ($pruefling->save())
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
$reload_menu=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
if (isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
$pruefling = new pruefling();
|
||||
if($_POST['pruefling_id']!='')
|
||||
if(!$pruefling->load($_POST['pruefling_id']))
|
||||
if ($_POST['pruefling_id']!='')
|
||||
if (!$pruefling->load($_POST['pruefling_id']))
|
||||
die('Pruefling wurde nicht gefunden');
|
||||
else
|
||||
$pruefling->new=false;
|
||||
@@ -327,7 +349,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
$pruefling->registriert = date('Y-m-d H:i:s');
|
||||
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
|
||||
$pruefling->semester = $_POST['semester'];
|
||||
if($pruefling->save())
|
||||
if ($pruefling->save())
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
$_SESSION['semester']=$pruefling->semester;
|
||||
@@ -344,8 +366,9 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
<script type="text/javascript" src="../../vendor/components/jquery/jquery.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>
|
||||
<script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$.datepicker.setDefaults( $.datepicker.regional[ "" ] );
|
||||
@@ -372,274 +395,326 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
});';
|
||||
?>
|
||||
|
||||
// If Browser is any other than Mozilla Firefox and the test includes any MathML,
|
||||
// show message to use Mozilla Firefox
|
||||
var ua = navigator.userAgent;
|
||||
if ((ua.indexOf("Firefox") > -1) == false)
|
||||
{
|
||||
$("#alertmsgdiv").html("<div class='alert alert-danger'>BITTE VERWENDEN SIE DEN MOZILLA FIREFOX BROWSER!<br>(Manche Prüfungsfragen werden sonst nicht korrekt dargestellt.<br><br>PLEASE USE MOZILLA FIREFOX BROWSER!<br>(Otherwise some exam items will not be displayed correctly</div>");
|
||||
//alert('BITTE VERWENDEN SIE DEN MOZILLA FIREFOX BROWSER!\n(Manche Prüfungsfragen werden sonst nicht korrekt dargestellt.\n\nPLEASE USE MOZILLA FIREFOX BROWSER!\n(Ohterwise some exam items will not be displayed correctly.)');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
if($reload_menu)
|
||||
if ($reload_menu)
|
||||
echo '<script language="Javascript">parent.menu.location.reload();</script>';
|
||||
?>
|
||||
</head>
|
||||
|
||||
<body scroll="no">
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
|
||||
<?php
|
||||
|
||||
//REIHUNGSTEST STARTSEITE (nach Login)
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$prestudent = new prestudent($prestudent_id);
|
||||
$stg_obj = new studiengang($prestudent->studiengang_kz);
|
||||
$pruefling = new pruefling();
|
||||
$typ = new studiengang($prestudent->studiengang_kz);
|
||||
$typ->getStudiengangTyp($stg_obj->typ);
|
||||
$prestudent = new prestudent($prestudent_id);
|
||||
$stg_obj = new studiengang($prestudent->studiengang_kz);
|
||||
$pruefling = new pruefling();
|
||||
$typ = new studiengang($prestudent->studiengang_kz);
|
||||
$typ->getStudiengangTyp($stg_obj->typ);
|
||||
|
||||
// STG mit der höchsten Prio ermitteln
|
||||
$ps = new Prestudent();
|
||||
// STG mit der höchsten Prio ermitteln
|
||||
$ps = new Prestudent();
|
||||
|
||||
// * prinzipiell STG der session übernehmem
|
||||
$firstPrio_studiengang_kz = $prestudent->studiengang_kz;
|
||||
// * prinzipiell STG der session übernehmem
|
||||
$firstPrio_studiengang_kz = $prestudent->studiengang_kz;
|
||||
|
||||
// * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller
|
||||
// Bachelor-STG ermitteln, an denen die Person noch interessiert ist
|
||||
if ($typ->typ == 'b')
|
||||
{
|
||||
$ps->getActualInteressenten($prestudent_id, true, 'b');
|
||||
foreach($ps->result as $row_prio)
|
||||
{
|
||||
if(isset($row_prio->studiengang_kz))
|
||||
{
|
||||
$firstPrio_studiengang_kz = $row_prio->studiengang_kz;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller
|
||||
// Bachelor-STG ermitteln, an denen die Person noch interessiert ist
|
||||
if ($typ->typ == 'b')
|
||||
{
|
||||
$ps->getActualInteressenten($prestudent_id, true, 'b');
|
||||
foreach($ps->result as $row_prio)
|
||||
{
|
||||
if (isset($row_prio->studiengang_kz))
|
||||
{
|
||||
$firstPrio_studiengang_kz = $row_prio->studiengang_kz;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sprachwahl zu STG mit höchster Prio ermitteln
|
||||
$ablauf = new Ablauf();
|
||||
$sprachwahl = false;
|
||||
if (isset($ablauf->result[0])
|
||||
// Sprachwahl zu STG mit höchster Prio ermitteln
|
||||
$ablauf = new Ablauf();
|
||||
$sprachwahl = false;
|
||||
if (isset($ablauf->result[0])
|
||||
&& $ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz)
|
||||
&& is_bool($ablauf->result[0]->sprachwahl))
|
||||
{
|
||||
$sprachwahl = $ablauf->result[0]->sprachwahl;
|
||||
}
|
||||
{
|
||||
$sprachwahl = $ablauf->result[0]->sprachwahl;
|
||||
}
|
||||
|
||||
// If language can be switched, display language select menu on the top
|
||||
if ($sprachwahl)
|
||||
{
|
||||
$_SESSION['sprache_auswahl'] = true;
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
parent.topbar.location.reload();
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
//Prestudent Informationen
|
||||
echo '<div class="col-xs-10 col-sm-9 col-lg-6">';
|
||||
echo '
|
||||
<h1 style="margin-top: -20px;">'. $p->t('testtool/begruessungstext'). '</h1><br/>
|
||||
<p>'. $p->t('testtool/anmeldedaten'). '</p><br/>
|
||||
';
|
||||
// If language can be switched, display language select menu on the top
|
||||
if ($sprachwahl)
|
||||
{
|
||||
$_SESSION['sprache_auswahl'] = true;
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
parent.topbar.location.reload();
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
//Prestudent Informationen
|
||||
echo '<div class="col-xs-10 col-sm-9 col-lg-6">';
|
||||
echo '
|
||||
<h1 style="margin-top: -20px;">'. $p->t('testtool/begruessungstext'). '</h1><br/>
|
||||
<p>'. $p->t('testtool/anmeldedaten'). '</p><br/>
|
||||
';
|
||||
|
||||
echo '
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<td style="width: 50%;"><strong>'.$p->t('zeitaufzeichnung/id').'</strong></td>
|
||||
<td>'.$_SESSION['prestudent_id'].'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>'.$p->t('global/name').'</strong></td>
|
||||
<td>'.$_SESSION['vorname'].' '.$_SESSION['nachname'].'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>'.$p->t('global/geburtsdatum').'</strong></td>
|
||||
<td>'.$date->formatDatum($_SESSION["gebdatum"],"d.m.Y").'</td>
|
||||
</tr>
|
||||
</table>
|
||||
';
|
||||
echo '
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<td style="width: 50%;"><strong>'.$p->t('zeitaufzeichnung/id').'</strong></td>
|
||||
<td>'.$_SESSION['prestudent_id'].'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>'.$p->t('global/name').'</strong></td>
|
||||
<td>'.$_SESSION['vorname'].' '.$_SESSION['nachname'].'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>'.$p->t('global/geburtsdatum').'</strong></td>
|
||||
<td>'.$date->formatDatum($_SESSION["gebdatum"],"d.m.Y").'</td>
|
||||
</tr>
|
||||
</table>
|
||||
';
|
||||
echo '<br>';
|
||||
echo '
|
||||
<p>'. $p->t('testtool/fuerFolgendeStgAngemeldet'). '</p><br>
|
||||
echo '
|
||||
<p>'. $p->t('testtool/fuerFolgendeStgAngemeldet'). '</p><br>
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 50%;">'. $p->t('global/studiengang'). '</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 50%;">'. $p->t('global/studiengang'). '</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
|
||||
// * wenn Prestudent an 1 - n Bachelor-Studiengängen interessiert ist, dann STG anführen
|
||||
if ($typ->typ == 'b')
|
||||
{
|
||||
// * wenn Prestudent an 1 - n Bachelor-Studiengängen interessiert ist, dann STG anführen
|
||||
if ($typ->typ == 'b')
|
||||
{
|
||||
$ps_arr = new Prestudent();
|
||||
$ps_arr->getActualInteressenten($prestudent_id, false, 'b');
|
||||
|
||||
if (count($ps_arr->result) > 0)
|
||||
{
|
||||
// Jeweils letzten Status ermitteln (ob Interessent oder Abgewiesener)
|
||||
foreach ($ps_arr->result as $ps_obj)
|
||||
{
|
||||
$ps_tmp = new Prestudent();
|
||||
$ps_tmp->getLastStatus($ps_obj->prestudent_id);
|
||||
if (count($ps_arr->result) > 0)
|
||||
{
|
||||
// Jeweils letzten Status ermitteln (ob Interessent oder Abgewiesener)
|
||||
foreach ($ps_arr->result as $ps_obj)
|
||||
{
|
||||
$ps_tmp = new Prestudent();
|
||||
$ps_tmp->getLastStatus($ps_obj->prestudent_id);
|
||||
|
||||
$ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen
|
||||
$ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig;
|
||||
}
|
||||
$ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen
|
||||
$ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig;
|
||||
}
|
||||
|
||||
// Falls Status 'Abgewiesene' vorhanden, nach hinten reihen
|
||||
usort($ps_arr->result, function($a, $b){
|
||||
return strcmp($b->lastStatus, $a->lastStatus); // Order by DESC
|
||||
});
|
||||
foreach ($ps_arr->result as $ps_obj)
|
||||
{
|
||||
echo '<tr>';
|
||||
$stg = new Studiengang($ps_obj->studiengang_kz);
|
||||
// Falls Status 'Abgewiesene' vorhanden, nach hinten reihen
|
||||
usort($ps_arr->result, function($a, $b){
|
||||
return strcmp($b->lastStatus, $a->lastStatus); // Order by DESC
|
||||
});
|
||||
foreach ($ps_arr->result as $ps_obj)
|
||||
{
|
||||
echo '<tr>';
|
||||
$stg = new Studiengang($ps_obj->studiengang_kz);
|
||||
|
||||
if($ps_obj->lastStatus == "Interessent"
|
||||
|| $ps_obj->lastStatus == "Bewerber"
|
||||
|| $ps_obj->lastStatus == "Wartender"
|
||||
|| $ps_obj->lastStatus == "Aufgenommener")
|
||||
{
|
||||
echo '<td style="width: 50%;">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ' ('.$ps_obj->orgform_bezeichnung[$sprache_user].')</td>';
|
||||
if($ps_obj->ausbildungssemester == '1')
|
||||
{
|
||||
echo '<td>'. $p->t('testtool/regulaererEinstieg'). ' (1. Semester)</td>';
|
||||
}
|
||||
elseif($ps_obj->ausbildungssemester == '3')
|
||||
{
|
||||
echo '<td>'. $p->t('testtool/quereinstieg'). ' (3. Semester)</td>';
|
||||
}
|
||||
}
|
||||
// wenn letzter Status \'Abgewiesener\' ist, dann als solchen kennzeichnen
|
||||
elseif($ps_obj->lastStatus == "Abgewiesener")
|
||||
{
|
||||
echo '
|
||||
<td class="text-muted">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). '</td>
|
||||
<td class="text-muted">'. $ps_obj->status_mehrsprachig[$sprache_user]. '</td>
|
||||
';
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
// * wenn Prestudent an einem Master-Studiengang interessiert ist, dann nur den einen STG anführen
|
||||
else
|
||||
{
|
||||
// Letzten Status für des Prestudenten einholen
|
||||
$ps_master = new Prestudent();
|
||||
if ($ps_obj->lastStatus == "Interessent"
|
||||
|| $ps_obj->lastStatus == "Bewerber"
|
||||
|| $ps_obj->lastStatus == "Wartender"
|
||||
|| $ps_obj->lastStatus == "Aufgenommener")
|
||||
{
|
||||
echo '<td style="width: 50%;">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ' ('.$ps_obj->orgform_bezeichnung[$sprache_user].')</td>';
|
||||
if ($ps_obj->ausbildungssemester == '1')
|
||||
{
|
||||
echo '<td>'. $p->t('testtool/regulaererEinstieg'). ' (1. Semester)</td>';
|
||||
}
|
||||
elseif ($ps_obj->ausbildungssemester == '3')
|
||||
{
|
||||
echo '<td>'. $p->t('testtool/quereinstieg'). ' (3. Semester)</td>';
|
||||
}
|
||||
}
|
||||
// wenn letzter Status \'Abgewiesener\' ist, dann als solchen kennzeichnen
|
||||
elseif ($ps_obj->lastStatus == "Abgewiesener")
|
||||
{
|
||||
echo '
|
||||
<td class="text-muted">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). '</td>
|
||||
<td class="text-muted">'. $ps_obj->status_mehrsprachig[$sprache_user]. '</td>
|
||||
';
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
// * wenn Prestudent an einem Master-Studiengang interessiert ist, dann nur den einen STG anführen
|
||||
else
|
||||
{
|
||||
// Letzten Status für des Prestudenten einholen
|
||||
$ps_master = new Prestudent();
|
||||
$ps_master->getLastStatus($prestudent_id);
|
||||
echo '<td>'. $typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'</td>';
|
||||
echo '<td>'. $typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'</td>';
|
||||
echo '<td>'. $ps_master->status_mehrsprachig[$sprache_user]. '</td>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</tbody>
|
||||
</table>
|
||||
';
|
||||
echo '
|
||||
</tbody>
|
||||
</table>
|
||||
';
|
||||
|
||||
echo '<br>';
|
||||
echo '<br>';
|
||||
|
||||
if($pruefling->getPruefling($prestudent_id))
|
||||
{
|
||||
echo '<FORM accept-charset="UTF-8" action="'. $_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">';
|
||||
echo '<input type="hidden" name="pruefling_id" value="'.$pruefling->pruefling_id.'">';
|
||||
echo '<table>';
|
||||
//echo '<tr><td>'.$p->t('global/semester').':</td><td><input type="text" name="semester" size="1" maxlength="1" value="'.$pruefling->semester.'"> <input type="submit" name="save" value="Semester ändern"></td></tr>';
|
||||
//echo '<tr><td>ID Nachweis:</td><td><INPUT type="text" maxsize="50" name="idnachweis" value="'.$pruefling->idnachweis.'"></td></tr>';
|
||||
//echo '<tr><td></td><td><input type="submit" name="save" value="Semester ändern"></td>';
|
||||
echo '</table>';
|
||||
echo '</FORM>';
|
||||
echo '<br><br>';
|
||||
echo '
|
||||
<div class="well well-lg text-center">
|
||||
<strong>'.$p->t('testtool/klickenSieAufEinTeilgebiet').'</strong>
|
||||
</div>
|
||||
';
|
||||
if($pruefling->pruefling_id!='')
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/keinPrueflingseintragVorhanden').'</span>';
|
||||
}
|
||||
echo ' </div><!--/.col-->';
|
||||
if ($pruefling->getPruefling($prestudent_id))
|
||||
{
|
||||
echo '<FORM accept-charset="UTF-8" action="'. $_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">';
|
||||
echo '<input type="hidden" name="pruefling_id" value="'.$pruefling->pruefling_id.'">';
|
||||
echo '<table>';
|
||||
//echo '<tr><td>'.$p->t('global/semester').':</td><td><input type="text" name="semester" size="1" maxlength="1" value="'.$pruefling->semester.'"> <input type="submit" name="save" value="Semester ändern"></td></tr>';
|
||||
//echo '<tr><td>ID Nachweis:</td><td><INPUT type="text" maxsize="50" name="idnachweis" value="'.$pruefling->idnachweis.'"></td></tr>';
|
||||
//echo '<tr><td></td><td><input type="submit" name="save" value="Semester ändern"></td>';
|
||||
echo '</table>';
|
||||
echo '</FORM>';
|
||||
echo '<br><br>';
|
||||
echo '
|
||||
<div class="well well-lg text-center">
|
||||
<strong>'.$p->t('testtool/klickenSieAufEinTeilgebiet').'</strong>
|
||||
</div>
|
||||
';
|
||||
if ($pruefling->pruefling_id!='')
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/keinPrueflingseintragVorhanden').'</span>';
|
||||
}
|
||||
echo ' </div><!--/.col-->';
|
||||
}
|
||||
else // LOGIN Site (vor Login)
|
||||
{
|
||||
$prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:'');
|
||||
echo '<div class="col-xs-11">';
|
||||
if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL)
|
||||
{
|
||||
echo '<div class="col-xs-11">';
|
||||
echo '<div id="alertmsgdiv">'.$alertmsg.'</div>';
|
||||
echo $p->t('testtool/einfuehrungsText');
|
||||
|
||||
// Welcome text
|
||||
echo $alertmsg;
|
||||
echo '
|
||||
<div class="row" style="margin-bottom: 10%; margin-top: 3%;">
|
||||
<div class="col-xs-6 text-center" style="border-right: 1px solid lightgrey;">
|
||||
<h1 style="white-space: normal">Herzlich Willkommen zum Reihungstest</h1><br><br>
|
||||
Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.<br><br>
|
||||
Wir wünschen Ihnen einen erfolgreichen Start ins Studium.
|
||||
</div>
|
||||
<div class="col-xs-6 text-center">
|
||||
<h1 style="white-space: normal">Welcome to the placement test</h1> <br><br>
|
||||
Please wait for the tutor\'s instructions before you log in.<br><br>
|
||||
We wish you a good start to your studies.
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
if (isset($_SESSION['bewerbung/personId']))
|
||||
{
|
||||
echo '<script>
|
||||
function changeconfirmation()
|
||||
{
|
||||
document.getElementById("confirmationSubmit").disabled = !document.getElementById("confirmationCheckbox").checked;
|
||||
}
|
||||
</script>';
|
||||
echo '<div class="row text-center">
|
||||
'.$p->t('testtool/loginNoetig').'<br /><br />
|
||||
<form action="login.php">
|
||||
<input type="hidden" name="prestudent" value="'.$_REQUEST['prestudent'].'" />
|
||||
<input id="confirmationCheckbox" type="checkbox" name="confirmation" onclick="changeconfirmation()" />
|
||||
'.$p->t('testtool/confirmationText').'
|
||||
<br><br>
|
||||
<button id="confirmationSubmit" type="submit" class="btn btn-primary" disabled/>
|
||||
'.$p->t('testtool/start').'
|
||||
</button>
|
||||
</form>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<div class="row text-center">
|
||||
'.$p->t('testtool/loginNoetig').'<br /><br />
|
||||
<form action="'.APP_ROOT.'/addons/bewerbung/cis/." target="_top">
|
||||
<button type="submit" class="btn btn-primary" />
|
||||
'.$p->t('testtool/login').'
|
||||
</button>
|
||||
</form>';
|
||||
}
|
||||
echo '
|
||||
</div>';
|
||||
echo '</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:'');
|
||||
echo '<div class="col-xs-11">';
|
||||
|
||||
// Begin form
|
||||
echo '<div class="row text-center">';
|
||||
echo '<form method="post" class="form-inline">';
|
||||
// Welcome text
|
||||
echo '<div id="alertmsgdiv">'.$alertmsg.'</div>';
|
||||
echo '
|
||||
<div class="row" style="margin-bottom: 10%; margin-top: 3%;">
|
||||
<div class="col-xs-6 text-center" style="border-right: 1px solid lightgrey;">
|
||||
<h1 style="white-space: normal">Herzlich Willkommen zum Reihungstest</h1><br><br>
|
||||
Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.<br><br>
|
||||
Wir wünschen Ihnen einen erfolgreichen Start ins Studium.
|
||||
</div>
|
||||
<div class="col-xs-6 text-center">
|
||||
<h1 style="white-space: normal">Welcome to the placement test</h1> <br><br>
|
||||
Please wait for the tutor\'s instructions before you log in.<br><br>
|
||||
We wish you a good start to your studies.
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
// Name select menu
|
||||
echo '<div class="form-group">';
|
||||
echo '<label for="select-prestudent" class="col-sm-2 control-label">Name</label>';
|
||||
echo '<div class="col-sm-10">';
|
||||
echo '<SELECT name="prestudent" id="select-prestudent" class="form-control">';
|
||||
echo '<OPTION value="'.$prestudent_id_dummy_student.'">Bitte wählen / Please select...</OPTION>\n';
|
||||
foreach($ps->result as $prestd)
|
||||
{
|
||||
$stg = new studiengang();
|
||||
$stg->load($prestd->studiengang_kz);
|
||||
if(isset($_POST['prestudent']) && $prestd->prestudent_id==$_POST['prestudent'])
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected='';
|
||||
echo '
|
||||
<OPTION value="'.$prestd->prestudent_id.'" '.$selected.'>'.$prestd->nachname.' '.$prestd->vorname.' ('.(strtoupper($stg->typ.$stg->kurzbz)).')</OPTION>\n';
|
||||
}
|
||||
// An der FHTW gibt es 3 Testuser für den Camus International
|
||||
if (CAMPUS_NAME == 'FH Technikum Wien')
|
||||
{
|
||||
echo '<OPTION value="30891">Testuser Campus International 01</OPTION>\n';
|
||||
echo '<OPTION value="30890">Testuser Campus International 02</OPTION>\n';
|
||||
echo '<OPTION value="30889">Testuser Campus International 03</OPTION>\n';
|
||||
}
|
||||
echo '</SELECT>';
|
||||
echo '</div>'; // end col-xs
|
||||
echo '</div>'; // end form-group
|
||||
// Begin form
|
||||
echo '<div class="row text-center">';
|
||||
echo '<form method="post" class="form-inline">';
|
||||
|
||||
// Datepicker input
|
||||
echo '<div class="form-group"> ';
|
||||
echo '<label for="datepicker" class="col-sm-offset-1 col-sm-4 control-label">Geburtsdatum | Date of Birth</label>';
|
||||
echo '<div class="col-sm-3">';
|
||||
echo '<input type="text" id="datepicker" class="form-control" name="gebdatum" value="'.$date->formatDatum($gebdatum,'d.m.Y').'" placeholder="DD.MM.YYYY">';
|
||||
echo '</div>'; // end col-xs
|
||||
echo '</div>'; // end form-group
|
||||
// Name select menu
|
||||
echo '<div class="form-group">';
|
||||
echo '<label for="select-prestudent" class="col-sm-2 control-label">Name</label>';
|
||||
echo '<div class="col-sm-10">';
|
||||
echo '<SELECT name="prestudent" id="select-prestudent" class="form-control">';
|
||||
echo '<OPTION value="'.$prestudent_id_dummy_student.'">Bitte wählen / Please select...</OPTION>\n';
|
||||
foreach($ps->result as $prestd)
|
||||
{
|
||||
$stg = new studiengang();
|
||||
$stg->load($prestd->studiengang_kz);
|
||||
if (isset($_REQUEST['prestudent']) && $prestd->prestudent_id==$_REQUEST['prestudent'])
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected='';
|
||||
echo '
|
||||
<OPTION value="'.$prestd->prestudent_id.'" '.$selected.'>'.$prestd->nachname.' '.$prestd->vorname.' ('.(strtoupper($stg->typ.$stg->kurzbz)).')</OPTION>\n';
|
||||
}
|
||||
// An der FHTW gibt es 3 Testuser für den Camus International
|
||||
if (CAMPUS_NAME == 'FH Technikum Wien')
|
||||
{
|
||||
echo '<OPTION value="30891">Testuser Campus International 01</OPTION>\n';
|
||||
echo '<OPTION value="30890">Testuser Campus International 02</OPTION>\n';
|
||||
echo '<OPTION value="30889">Testuser Campus International 03</OPTION>\n';
|
||||
}
|
||||
echo '</SELECT>';
|
||||
echo '</div>'; // end col-xs
|
||||
echo '</div>'; // end form-group
|
||||
|
||||
// Login button
|
||||
echo '<button type="submit" class="btn btn-default" value="'.$p->t('testtool/login').'" />'.$p->t('testtool/login').'</button>';
|
||||
// Datepicker input
|
||||
echo '<div class="form-group"> ';
|
||||
echo '<label for="datepicker" class="col-sm-offset-1 col-sm-4 control-label">Geburtsdatum | Date of Birth</label>';
|
||||
echo '<div class="col-sm-3">';
|
||||
echo '<input type="text" id="datepicker" class="form-control" name="gebdatum" value="'.$date->formatDatum($gebdatum,'d.m.Y').'" placeholder="DD.MM.YYYY">';
|
||||
echo '</div>'; // end col-xs
|
||||
echo '</div>'; // end form-group
|
||||
|
||||
echo '</form>'; // end form
|
||||
// Login button
|
||||
echo '<button type="submit" class="btn btn-default" value="'.$p->t('testtool/login').'" />'.$p->t('testtool/login').'</button>';
|
||||
|
||||
echo '</div>'; // end row
|
||||
echo '</div>'; // end col-xs-11
|
||||
echo '</form>'; // end form
|
||||
|
||||
echo '</div>'; // end row
|
||||
echo '</div>'; // end col-xs-11
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
</div><!--/.row-->
|
||||
</body>
|
||||
|
||||
+37
-12
@@ -23,22 +23,49 @@
|
||||
// Holt den Hexcode eines Bildes aus der DB wandelt es in Zeichen
|
||||
// um und gibt das ein Bild zurueck.
|
||||
// Aufruf mit <img src='bild.php?src=frage&frage_id=1
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
session_start();
|
||||
if(!isset($_SESSION['pruefling_id']))
|
||||
{
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if (!$rechte->isBerechtigt('basis/testtool', null, 's'))
|
||||
die($rechte->errormsg);
|
||||
}
|
||||
|
||||
//base64 Dump aus der DB holen
|
||||
$qry = '';
|
||||
if(isset($_GET['src']) && $_GET['src']=='frage' && isset($_GET['frage_id']))
|
||||
{
|
||||
$qry = "SELECT audio FROM testtool.tbl_frage_sprache WHERE frage_id='".addslashes($_GET['frage_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
$qry = "
|
||||
SELECT
|
||||
audio
|
||||
FROM
|
||||
testtool.tbl_frage_sprache
|
||||
WHERE
|
||||
frage_id=".$db->db_add_param($_GET['frage_id'], FHC_INTEGER)."
|
||||
AND sprache=".$db->db_add_param($_GET['sprache']);
|
||||
}
|
||||
elseif(isset($_GET['src']) && $_GET['src']=='vorschlag' && isset($_GET['vorschlag_id']))
|
||||
{
|
||||
$qry = "SELECT audio FROM testtool.tbl_vorschlag_sprache WHERE vorschlag_id='".addslashes($_GET['vorschlag_id'])."' AND sprache='".addslashes($_GET['sprache'])."'";
|
||||
$qry = "
|
||||
SELECT
|
||||
audio
|
||||
FROM
|
||||
testtool.tbl_vorschlag_sprache
|
||||
WHERE
|
||||
vorschlag_id=".$db->db_add_param($_GET['vorschlag_id'], FHC_INTEGER)."
|
||||
AND sprache=".$db->db_add_param($_GET['sprache']);
|
||||
}
|
||||
else
|
||||
else
|
||||
echo 'Unkown type';
|
||||
|
||||
if($qry!='')
|
||||
@@ -52,16 +79,14 @@ if($qry!='')
|
||||
//base64 Werte in Zeichen
|
||||
$result = $db->db_query($qry);
|
||||
$row = $db->db_fetch_object($result);
|
||||
|
||||
|
||||
$content = base64_decode($row->audio);
|
||||
|
||||
|
||||
$len = strlen($content);
|
||||
header("Content-Length: $len\n");
|
||||
//header("Content-type: audio/wav");
|
||||
|
||||
|
||||
//ausgeben
|
||||
echo $content;
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@@ -24,11 +24,13 @@
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/menu_addon.class.php');
|
||||
require_once(dirname(__FILE__).'/../../config/cis.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../config/global.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../include/functions.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../include/phrasen.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/lehrveranstaltung.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/vertrag.class.php');
|
||||
|
||||
class menu_addon_meinelv extends menu_addon
|
||||
{
|
||||
@@ -187,6 +189,17 @@ class menu_addon_meinelv extends menu_addon
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
$lv_obj->load($row->lehrveranstaltung_id);
|
||||
|
||||
// Nur erteilte Vertraege anzeigen wenn dies im Config hinterlegt ist.
|
||||
if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
|
||||
&& CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
|
||||
{
|
||||
$vertrag = new vertrag();
|
||||
if (!$vertrag->isVertragErteiltLV($lv_obj->lehrveranstaltung_id, $stsem, $user))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if($row->studiengang_kz==0 AND $row->semester==0)
|
||||
{
|
||||
$this->items[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache],
|
||||
|
||||
@@ -101,6 +101,9 @@ define('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE', false);
|
||||
// Gibt an ob in der Notenliste der Studierenden nur offizielle Noten oder alle angezeigt werden
|
||||
define('CIS_NOTENLISTE_OFFIZIELL_ANZEIGEN', false);
|
||||
|
||||
// Gibt an ob in der Notenliste der Durchschnitt und der gewichtete Durchschnitt angezeigt werden
|
||||
define('CIS_NOTENLISTE_DURCHSCHNITT_ANZEIGEN', true);
|
||||
|
||||
// Grenzwerte für Anwesenheit
|
||||
define('FAS_ANWESENHEIT_ROT', 70);
|
||||
define('FAS_ANWESENHEIT_GELB', 90);
|
||||
@@ -129,9 +132,19 @@ define('FAS_UDF', true);
|
||||
// Legt fest ob Aufnahmegruppen bei Reihungstests verwaltet werden true|false
|
||||
define('FAS_REIHUNGSTEST_AUFNAHMEGRUPPEN',false);
|
||||
|
||||
// Legt fest welche OEs nicht zur Stundenobergrenze für Lektoren hinzugerechnet werden
|
||||
define('FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE', array('eci'));
|
||||
|
||||
// Legt fest, ob Vertragsdetails zum Lehrauftrag im Reiter LektorInnenzuteilung angezeigt werden
|
||||
define('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN', false);
|
||||
|
||||
// Legt fest ob bei Fixangestellten Lektoren der Stundensatz vorgeschlagen wird
|
||||
define('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ', true);
|
||||
|
||||
// Gibt an, ob/ab welchen Studiensemester eine zusätzliche Vertragspruefung der Lektoren erfolgt.
|
||||
// Ab diesem Semester wird die Lektorenzuordnung nur angezeigt wenn ein erteilter Vertrag vorhanden ist
|
||||
define('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON', '');
|
||||
|
||||
// Legt fest, ob Vertragsdetails zum Projektauftrag im Reiter Projektarbeit angezeigt werden
|
||||
define('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN', false);
|
||||
|
||||
@@ -252,6 +265,10 @@ define('FAS_KONTO_SHOW_CREDIT_POINTS','false');
|
||||
// Bei "default" wird der Standard-Stundensatz des Lektors (aus tbl_mitarbeiter) ermittelt, und dieser eingetragen.
|
||||
// Wenn numerisch, wird dieser Wert bei allen LektorInnen eingetragen.
|
||||
// Wenn nicht definiert, wird der Stundensatz des Vorjahres übernommen.
|
||||
// Bei "nachbeschaeftigungsart" wird
|
||||
// bei echten Dienstvertraegen mit voller inkludierter Lehre (-1) der Stundensatz auf null gesetzt
|
||||
// bei echten Dienstvertraegen mit teilweise oder nicht inkludierter Lehre der Default Stundensatz gesetzt
|
||||
// bei sonstigen Dienstvertraegen der Default Stundensatz gesetzt
|
||||
define('VILESCI_STUNDENSATZ_VORRUECKUNG', '');
|
||||
|
||||
// Wenn true, werden die Content-Aufrufe des CIS in der tbl_webservicelog mitgeloggt. Zuvor manuell einen neuen Webservicetyp "content" anlegen!
|
||||
@@ -274,4 +291,7 @@ define('STATUSGRUND_ID_EINSTIEG_SOMMERSEMESTER', null);
|
||||
|
||||
// Studiengangs_kz des Studiengangs "Qualifikationskurse". Der Studiengang hat eine Sonderstellung zB für das Bewerbungstool.
|
||||
define('STUDIENGANG_KZ_QUALIFIKATIONKURSE', null);
|
||||
|
||||
// Gibt an ob der Login ins Testtool ueber das Bewerbungstool stattfindet oder nicht
|
||||
define('TESTTOOL_LOGIN_BEWERBUNGSTOOL', false);
|
||||
?>
|
||||
|
||||
@@ -208,4 +208,45 @@ define('DVB_PASSWORD','passwort');
|
||||
|
||||
define('CI_ENVIRONMENT', 'development'); // Code igniter environment variable
|
||||
|
||||
// BIS Personalmeldung
|
||||
|
||||
// Studiengaenge, die nicht gemeldet werden
|
||||
define('BIS_EXCLUDE_STG', array());
|
||||
|
||||
// Basis Vollzeit Arbeitsstunden für Berechnung von Jahresvollzeitaequivalenz JVZAE (echte Dienstverträge)
|
||||
define('BIS_VOLLZEIT_ARBEITSSTUNDEN', '40');
|
||||
|
||||
// Basis Vollzeit Semesterwochenstunden für Berechnung von Jahresvollzeitaequivalenz JVZAE auf Stundenbasis (freie Dienstverträge)
|
||||
define('BIS_VOLLZEIT_SWS_EINZELSTUNDENBASIS', '15');
|
||||
|
||||
// Basis Vollzeit Semesterwochenstunden für Berechnung von Jahresvollzeitaequivalenz JVZAE für inkludierte Lehre bei echten Dienstverträgen
|
||||
define('BIS_VOLLZEIT_SWS_INKLUDIERTE_LEHRE', '25');
|
||||
|
||||
// Semester Gewichtung für Berechnung von Jahresvollzeitaequivalenz JVZAE
|
||||
define('BIS_HALBJAHRES_GEWICHTUNG_SWS', 0.5);
|
||||
|
||||
// Jahrespauschale fuer studentische Hilfskraefte (in Stunden)
|
||||
define('BIS_PAUSCHALE_STUDENTISCHE_HILFSKRAFT', 0);
|
||||
|
||||
// Jahrespauschale fuer sonstige Dienstverhaeltnisse, zb Werkvertrag (in Stunden)
|
||||
define('BIS_PAUSCHALE_SONSTIGES_DIENSTVERHAELTNIS', 0);
|
||||
|
||||
define('BIS_FUNKTIONSCODE_1234_ARR', array(
|
||||
'vertrBefugter' => 1, // Vertretungsbefugte/r des Erhalters (GF, Prokura)
|
||||
'kollegium_Ltg' => 2, // Leiter/in des Kollegiums
|
||||
'kollegium_Ltg' => 2, // Leiter/in des Kollegiums
|
||||
'kollegium_stvLtg' => 3, // stellv. Leiter/In des Kollegiums
|
||||
'kollegium' => 4 // Mitglied des Kollegiums
|
||||
));
|
||||
|
||||
// Liste der Leitungsfunktionen
|
||||
define('BIS_FUNKTIONSCODE_5_ARR', array(
|
||||
'Leitung'
|
||||
));
|
||||
|
||||
// Organisationseinheitstypen bei denen KEINE Leiter gemeldet werden
|
||||
define('BIS_FUNKTIONSCODE_6_ARR', array(
|
||||
'Team'
|
||||
));
|
||||
|
||||
?>
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
// ****************************************
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../config/global.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/lehreinheit.class.php');
|
||||
require_once('../../include/lehreinheitmitarbeiter.class.php');
|
||||
@@ -52,6 +53,7 @@ require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/vertrag.class.php');
|
||||
require_once('../../include/benutzergruppe.class.php');
|
||||
require_once('../../include/bisverwendung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -158,9 +160,16 @@ function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz, $oe_ar
|
||||
mitarbeiter_uid=".$db->db_add_param($mitarbeiter_uid)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
|
||||
bismelden AND
|
||||
tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")
|
||||
GROUP BY tbl_studiengang.bezeichnung";
|
||||
tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
|
||||
|
||||
if(defined('FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE')
|
||||
&& is_array(FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE)
|
||||
&& count(FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE)>0)
|
||||
{
|
||||
$qry.=" AND tbl_studiengang.oe_kurzbz not in(".$db->db_implode4SQL(FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE).")";
|
||||
}
|
||||
|
||||
$qry .= " GROUP BY tbl_studiengang.bezeichnung";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
@@ -340,6 +349,13 @@ if(!$error)
|
||||
if(count($oe_arr)>0)
|
||||
$qry.=" AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
|
||||
|
||||
if(defined('FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE')
|
||||
&& is_array(FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE)
|
||||
&& count(FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE)>0)
|
||||
{
|
||||
$qry.=" AND tbl_studiengang.oe_kurzbz not in(".$db->db_implode4SQL(FAS_LV_LEKTORINNENZUTEILUNG_STUNDEN_IGNORE_OE).")";
|
||||
}
|
||||
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object())
|
||||
@@ -440,11 +456,18 @@ if(!$error)
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add')
|
||||
{
|
||||
//neue Lehreinheitmitarbeiterzuteilung anlegen
|
||||
$qry = "SELECT tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.lehrveranstaltung_id,
|
||||
(SELECT fachbereich_kurzbz FROM public.tbl_fachbereich WHERE oe_kurzbz=lehrfach.oe_kurzbz) as fachbereich_kurzbz
|
||||
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach
|
||||
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.lehrveranstaltung_id,
|
||||
lehrfach.oe_kurzbz as lehrfach_oe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung,
|
||||
lehre.tbl_lehreinheit,
|
||||
lehre.tbl_lehrveranstaltung as lehrfach
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id
|
||||
AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
|
||||
AND lehreinheit_id = ".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
|
||||
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object())
|
||||
@@ -454,8 +477,8 @@ if(!$error)
|
||||
if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('lv-plan', $lva->getAllOe(), 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz) &&
|
||||
!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz))
|
||||
!$rechte->isBerechtigtMultipleOe('assistenz', $row->lehrfach_oe_kurzbz, 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('admin', $row->lehrfach_oe_kurzbz, 'suid'))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
@@ -496,29 +519,47 @@ if(!$error)
|
||||
|
||||
$fixangestellt=false;
|
||||
//Stundensatz aus tbl_mitarbeiter holen
|
||||
$qry = "SELECT stundensatz, fixangestellt FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid']);
|
||||
if($result = $db->db_query($qry))
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
if ($mitarbeiter->load($_POST['mitarbeiter_uid']))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$fixangestellt = $mitarbeiter->fixangestellt;
|
||||
$lem->stundensatz = $mitarbeiter->stundensatz;
|
||||
|
||||
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ')
|
||||
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ)
|
||||
{
|
||||
if($row->stundensatz!='')
|
||||
$lem->stundensatz = $row->stundensatz;
|
||||
else
|
||||
$lem->stundensatz = '0';
|
||||
$fixangestellt = ($row->fixangestellt=='t'?true:false);
|
||||
$stsem = new studiensemester();
|
||||
$stsem->load($semester_aktuell);
|
||||
$bisverwendung = new bisverwendung();
|
||||
$data = $mitarbeiter->stundensatz;
|
||||
if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende))
|
||||
{
|
||||
$bisverwendung->getLastAktVerwendung($mitarbeiter->uid);
|
||||
$bisverwendung->result[] = $bisverwendung;
|
||||
}
|
||||
|
||||
foreach($bisverwendung->result as $row_verwendung)
|
||||
{
|
||||
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
|
||||
// geliefert da dies im Vertrag inkludiert ist.
|
||||
if ($row_verwendung->ba1code == 103 && $row_verwendung->inkludierte_lehre == -1)
|
||||
{
|
||||
$fixangestellt = true;
|
||||
$lem->stundensatz = '';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error=true;
|
||||
$return=false;
|
||||
$errormsg='Mitarbeiter '.$db->convert_html_chars($_POST['mitarbeiter_uid']).' wurde nicht gefunden';
|
||||
$lem->stundensatz = $mitarbeiter->stundensatz;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error=true;
|
||||
$return=false;
|
||||
$errormsg='Fehler bei einer Datenbankabfrage:'.$db->db_last_error();
|
||||
$errormsg='Mitarbeiter '.$db->convert_html_chars($_POST['mitarbeiter_uid']).' wurde nicht gefunden';
|
||||
}
|
||||
|
||||
$maxstunden=9999;
|
||||
@@ -1381,7 +1422,32 @@ if(!$error)
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
if($mitarbeiter->load($_POST['mitarbeiter_uid']))
|
||||
{
|
||||
$data = $mitarbeiter->stundensatz;
|
||||
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ')
|
||||
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ)
|
||||
{
|
||||
$stsem = new studiensemester();
|
||||
$stsem->load($semester_aktuell);
|
||||
$bisverwendung = new bisverwendung();
|
||||
$data = $mitarbeiter->stundensatz;
|
||||
if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende))
|
||||
{
|
||||
$bisverwendung->getLastAktVerwendung($mitarbeiter->uid);
|
||||
$bisverwendung->result[] = $bisverwendung;
|
||||
}
|
||||
|
||||
foreach($bisverwendung->result as $row_verwendung)
|
||||
{
|
||||
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
|
||||
// geliefert da dies im Vertrag inkludiert ist.
|
||||
if ($row_verwendung->ba1code == 103 && $row_verwendung->inkludierte_lehre == -1)
|
||||
{
|
||||
$data = '';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
$data = $mitarbeiter->stundensatz;
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
@@ -1814,7 +1880,7 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = 'VertragsID und MitarbeiterUID müssen uebergeben werden';
|
||||
$errormsg = 'Sie haben keine Berechtigung für diese Aktion.';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</hbox>
|
||||
|
||||
|
||||
<groupbox id="mitarbeiter-detail-groupbox-funktion">
|
||||
<groupbox id="mitarbeiter-detail-groupbox-funktion" hidden="true">
|
||||
<caption label="Funktion" />
|
||||
<hbox>
|
||||
<tree id="mitarbeiter-tree-funktion" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
@@ -392,4 +392,4 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
</overlay>
|
||||
|
||||
@@ -1211,7 +1211,7 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui
|
||||
inkludierte_lehre = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-inkludierte_lehre').value;
|
||||
zeitaufzeichnungspflichtig = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked;
|
||||
|
||||
if(verwendung_code=='1' || verwendung_code=='5' || verwendung_code=='6')
|
||||
if(verwendung_code=='1')
|
||||
{
|
||||
if(hauptberuflich==true)
|
||||
{
|
||||
|
||||
@@ -87,12 +87,12 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
|
||||
var predicateNS = "http://www.technikum-wien.at/mitarbeiter/rdf";
|
||||
|
||||
fixangestellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fixangestellt" ));
|
||||
|
||||
|
||||
//neuer Datensatz wird angelegt
|
||||
MitarbeiterVerwendungDetailNeu='true';
|
||||
|
||||
//Defaultwerte
|
||||
ba1code=3; //fixer Dienstvertrag
|
||||
ba1code=103; //fixer Dienstvertrag
|
||||
ba2code=1; //unbefristet
|
||||
beschausmasscode=1; //Vollzeit
|
||||
verwendung_code=1; //Lehr- und Forschungspersonal
|
||||
|
||||
+71
-33
@@ -305,8 +305,14 @@ else
|
||||
else
|
||||
$output = 'pdf';
|
||||
|
||||
// An der FHTW darf fas Studienblatt auch iin anderen Formaten exportiert werden
|
||||
if (CAMPUS_NAME == 'FH Technikum Wien' && ($xsl == 'Studienblatt' || $xsl == 'StudienblattEng'))
|
||||
// An der FHTW darf das Studienblatt und das Prüfungsprotokoll auch in anderen Formaten exportiert werden
|
||||
if (CAMPUS_NAME == 'FH Technikum Wien' &&
|
||||
($xsl == 'Studienblatt' ||
|
||||
$xsl == 'StudienblattEng' ||
|
||||
$xsl == 'PrProtBA' ||
|
||||
$xsl == 'PrProtBAEng' ||
|
||||
$xsl == 'PrProtMA' ||
|
||||
$xsl == 'PrProtMAEng'))
|
||||
{
|
||||
$output = $_GET['output'];
|
||||
}
|
||||
@@ -452,7 +458,7 @@ else
|
||||
}
|
||||
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
|
||||
if ($sign === true)
|
||||
{
|
||||
$dokument->sign($user);
|
||||
@@ -471,22 +477,29 @@ else
|
||||
if(!$vorlage->archivierbar)
|
||||
die('Dieses Dokument ist nicht archivierbar');
|
||||
|
||||
$studiengang_kz = null;
|
||||
// Archivieren von Dokumenten
|
||||
$uid = $_REQUEST["uid"];
|
||||
$heute = date('Y-m-d');
|
||||
|
||||
$student = new student();
|
||||
$student->load($uid);
|
||||
|
||||
if (isset($_REQUEST['ss']))
|
||||
// Wenn UID übergeben wurde ist es ein Student, sonst ein PreStudent (zB Ausbildungsvertrag)
|
||||
if (isset($_REQUEST['uid']) && $_REQUEST['uid'] != '')
|
||||
{
|
||||
$ss = $_REQUEST["ss"];
|
||||
$uid = $_REQUEST["uid"];
|
||||
$heute = date('Y-m-d');
|
||||
|
||||
$prestudent = new prestudent();
|
||||
$prestudent->getLastStatus($student->prestudent_id,$ss);
|
||||
$semester = $prestudent->ausbildungssemester;
|
||||
$student = new student();
|
||||
$student->load($uid);
|
||||
|
||||
$query = "SELECT
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($student->studiengang_kz);
|
||||
|
||||
if (isset($_REQUEST['ss']))
|
||||
{
|
||||
$ss = $_REQUEST["ss"];
|
||||
|
||||
$prestudent = new prestudent();
|
||||
$prestudent->getLastStatus($student->prestudent_id,$ss);
|
||||
$semester = $prestudent->ausbildungssemester;
|
||||
|
||||
$query = "SELECT
|
||||
tbl_studiengang.studiengang_kz, tbl_studentlehrverband.semester, tbl_studiengang.typ,
|
||||
tbl_studiengang.kurzbz, tbl_person.person_id FROM tbl_person, tbl_benutzer,
|
||||
tbl_studentlehrverband, tbl_studiengang
|
||||
@@ -497,29 +510,51 @@ else
|
||||
AND tbl_studentlehrverband.student_uid = ".$db->db_add_param($uid)."
|
||||
AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($ss);
|
||||
|
||||
if ($result = $db->db_query($query))
|
||||
{
|
||||
if ($row = $db->db_fetch_object($result))
|
||||
if ($result = $db->db_query($query))
|
||||
{
|
||||
$person_id = $row->person_id;
|
||||
$titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss, 0, 64);
|
||||
$bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss, 0, 64);
|
||||
$studiengang_kz = $row->studiengang_kz;
|
||||
}
|
||||
else
|
||||
{
|
||||
die('StudentIn hat keinen Status in diesem Semester');
|
||||
if ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$person_id = $row->person_id;
|
||||
$titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss, 0, 64);
|
||||
if ($xsl == 'Ausbildungsver' || $xsl == 'AusbVerEng')
|
||||
{
|
||||
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss, 0, 64);
|
||||
}
|
||||
$studiengang_kz = $row->studiengang_kz;
|
||||
}
|
||||
else
|
||||
{
|
||||
die('StudentIn hat keinen Status in diesem Semester');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$studiengang_kz = $student->studiengang_kz;
|
||||
$person_id = $student->person_id;
|
||||
$titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
|
||||
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
|
||||
}
|
||||
}
|
||||
else
|
||||
elseif (isset($_REQUEST['prestudent_id']) && $_REQUEST['prestudent_id'] != '')
|
||||
{
|
||||
$prestudent_id = $_REQUEST["prestudent_id"];
|
||||
$heute = date('Y-m-d');
|
||||
$uid = '';
|
||||
|
||||
$prestudent = new prestudent($prestudent_id);
|
||||
$prestudent->getLastStatus($prestudent_id);
|
||||
$studiengang_kz = $prestudent->studiengang_kz;
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($student->studiengang_kz);
|
||||
$studiengang_kz=$student->studiengang_kz;
|
||||
$person_id = $student->person_id;
|
||||
$titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
|
||||
$bezeichnung = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
|
||||
$studiengang->load($studiengang_kz);
|
||||
|
||||
$person_id = $prestudent->person_id;
|
||||
$titel = mb_substr($xsl."_".$studiengang->kuerzel, 0, 64);
|
||||
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
|
||||
}
|
||||
|
||||
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid')
|
||||
@@ -531,6 +566,9 @@ else
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
$error = false;
|
||||
|
||||
// XML-tag archivierbar ergaenzen
|
||||
$dokument->setXMLTag_archivierbar();
|
||||
|
||||
// Beim Archivieren wird das Dokument immer signiert wenn moeglich
|
||||
if($vorlage->signierbar)
|
||||
@@ -540,7 +578,7 @@ else
|
||||
{
|
||||
$dokument->sign($user);
|
||||
}
|
||||
|
||||
|
||||
if ($dokument->create($output))
|
||||
$doc = $dokument->output(false);
|
||||
else
|
||||
|
||||
@@ -103,7 +103,7 @@ if ($semester != '')
|
||||
$zeile=1;
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_array($result))
|
||||
while ($row = $db->db_fetch_array($result, null, PGSQL_BOTH))
|
||||
{
|
||||
$zeile++;
|
||||
$i = 0;
|
||||
@@ -150,7 +150,7 @@ if ($result = $db->db_query($qry))
|
||||
}
|
||||
|
||||
$zeile++;
|
||||
while ($row_betreuer = $db->db_fetch_array($result_betreuer))
|
||||
while ($row_betreuer = $db->db_fetch_array($result_betreuer, null, PGSQL_BOTH))
|
||||
{
|
||||
$i = 1;
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
|
||||
* @param $note
|
||||
* @return null, error wird direkt in globale Variable geschrieben
|
||||
*/
|
||||
function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note)
|
||||
function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note, $punkte)
|
||||
{
|
||||
global $return, $error, $errormsg;
|
||||
|
||||
@@ -227,6 +227,8 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
|
||||
if(count($benutzerfunktion->result)>0)
|
||||
$anwesenheitsbefreit=true;
|
||||
|
||||
$gesamtnote_punkte = defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE;
|
||||
|
||||
// Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein
|
||||
// Pruefungsantritt abgezogen
|
||||
if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit)
|
||||
@@ -239,6 +241,8 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
|
||||
// 2. Termin mit Note erstellen
|
||||
$pruefung->pruefungstyp_kurzbz = "Termin2";
|
||||
$pruefung->note = $note;
|
||||
if($gesamtnote_punkte)
|
||||
$pruefung->punkte = $punkte;
|
||||
if($pruefung->save())
|
||||
{
|
||||
$return = true;
|
||||
@@ -260,6 +264,8 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
|
||||
// 1. Termin mit Note erstellen
|
||||
$pruefung->pruefungstyp_kurzbz = "Termin1";
|
||||
$pruefung->note = $note;
|
||||
if($gesamtnote_punkte)
|
||||
$pruefung->punkte = $punkte;
|
||||
|
||||
if($pruefung->save())
|
||||
{
|
||||
@@ -1897,16 +1903,28 @@ if(!$error)
|
||||
}
|
||||
if(!$error)
|
||||
{
|
||||
$akte = new akte();
|
||||
|
||||
if($akte->delete($_POST['akte_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
$akte = new akte($_POST['akte_id']);
|
||||
//Akzeptierte Ausbildungsverträge dürfen nur von Admins gelöscht werden
|
||||
if ($akte->dokument_kurzbz == 'Ausbvert' &&
|
||||
$akte->akzeptiertamum != '' &&
|
||||
!$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid'))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = $akte->errormsg;
|
||||
$errormsg = 'Akzeptierte Ausbildungsverträge dürfen nur von Administratoren gelöscht werden';
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if ($akte->delete($_POST['akte_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = $akte->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3065,7 +3083,7 @@ if(!$error)
|
||||
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note);
|
||||
NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note, $noten->punkte);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3193,7 +3211,7 @@ if(!$error)
|
||||
{
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note);
|
||||
NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note, $zeugnisnote->punkte);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3362,7 +3380,7 @@ if(!$error)
|
||||
{
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note);
|
||||
NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note, $zeugnisnote->punkte);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3764,6 +3782,9 @@ if(!$error)
|
||||
$pruefung->pruefer2 = $_POST['pruefer2'];
|
||||
$pruefung->pruefer3 = $_POST['pruefer3'];
|
||||
$pruefung->abschlussbeurteilung_kurzbz = $_POST['abschlussbeurteilung_kurzbz'];
|
||||
if(isset($_POST['pruefungsantritt_kurzbz']))
|
||||
$pruefung->pruefungsantritt_kurzbz = $_POST['pruefungsantritt_kurzbz'];
|
||||
|
||||
$pruefung->note = $_POST['notekommpruef'];
|
||||
$pruefung->akadgrad_id = $_POST['akadgrad_id'];
|
||||
$pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz'];
|
||||
@@ -3803,10 +3824,25 @@ if(!$error)
|
||||
if(isset($_POST['abschlusspruefung_id']) && is_numeric($_POST['abschlusspruefung_id']))
|
||||
{
|
||||
$pruefung = new abschlusspruefung();
|
||||
|
||||
if($pruefung->delete($_POST['abschlusspruefung_id']))
|
||||
if($pruefung->load($_POST['abschlusspruefung_id']))
|
||||
{
|
||||
$return = true;
|
||||
if ($pruefung->freigabedatum == '')
|
||||
{
|
||||
if($pruefung->delete($_POST['abschlusspruefung_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $pruefung->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = 'Löschen ist nicht möglich da bereits ein freigegebenes Protokoll vorhanden ist';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -163,6 +163,7 @@ function StudentAbschlusspruefungDetailDisableFields(val)
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer2').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer3').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-notekommpruef').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-akadgrad').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-typ').disabled=val;
|
||||
@@ -186,6 +187,7 @@ function StudentAbschlusspruefungResetFields()
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer2').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer3').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value='';
|
||||
//document.getElementById('student-abschlusspruefung-menulist-akadgrad').value='';
|
||||
//document.getElementById('student-abschlusspruefung-menulist-typ').value='Bachelor';
|
||||
@@ -342,6 +344,7 @@ function StudentAbschlusspruefungAuswahl()
|
||||
pruefer3 = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefer3" ));
|
||||
pruefer3_nachname = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefer3_nachname" ));
|
||||
abschlussbeurteilung_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#abschlussbeurteilung_kurzbz" ));
|
||||
pruefungsantritt_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefungsantritt_kurzbz" ));
|
||||
notekommpruef = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#notekommpruef" ));
|
||||
akadgrad_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#akadgrad_id" ));
|
||||
datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" ));
|
||||
@@ -395,6 +398,7 @@ function StudentAbschlusspruefungAuswahl()
|
||||
MenulistSelectItemOnValue('student-abschlusspruefung-menulist-pruefer2', pruefer2);
|
||||
MenulistSelectItemOnValue('student-abschlusspruefung-menulist-pruefer3', pruefer3);
|
||||
document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value=abschlussbeurteilung_kurzbz;
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value=pruefungsantritt_kurzbz;
|
||||
document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value=notekommpruef;
|
||||
document.getElementById('student-abschlusspruefung-menulist-akadgrad').value=akadgrad_id;
|
||||
document.getElementById('student-abschlusspruefung-datum-datum').value=datum;
|
||||
@@ -424,6 +428,7 @@ function StudentAbschlusspruefungSpeichern()
|
||||
var pruefer2 = MenulistGetSelectedValue('student-abschlusspruefung-menulist-pruefer2');
|
||||
var pruefer3 = MenulistGetSelectedValue('student-abschlusspruefung-menulist-pruefer3');
|
||||
var abschlussbeurteilung_kurzbz = document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value;
|
||||
var pruefungsantritt_kurzbz = document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value;
|
||||
var notekommpruef = document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value;
|
||||
var akadgrad_id = document.getElementById('student-abschlusspruefung-menulist-akadgrad').value;
|
||||
var datum = document.getElementById('student-abschlusspruefung-datum-datum').value;
|
||||
@@ -482,6 +487,7 @@ function StudentAbschlusspruefungSpeichern()
|
||||
req.add('pruefer2', pruefer2);
|
||||
req.add('pruefer3', pruefer3);
|
||||
req.add('abschlussbeurteilung_kurzbz', abschlussbeurteilung_kurzbz);
|
||||
req.add('pruefungsantritt_kurzbz', pruefungsantritt_kurzbz);
|
||||
req.add('notekommpruef', notekommpruef);
|
||||
req.add('akadgrad_id', akadgrad_id);
|
||||
req.add('datum', ConvertDateToISO(datum));
|
||||
|
||||
@@ -97,6 +97,14 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#uhrzeit" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-freigabedatum" label="Freigabe" flex="1" persist="hidden, width" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#freigabedatum_iso" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefungsantritt" label="Prüfungsantritt" flex="1" persist="hidden, width" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefungsantritt_bezeichnung" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-sponsion" label="Sponsion" flex="1" persist="hidden, width" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#sponsion_iso" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
@@ -132,6 +140,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#abschlussbeurteilung_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#datum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#uhrzeit" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#freigabedatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefungsantritt_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#sponsion" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#anmerkung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#abschlusspruefung_id" />
|
||||
@@ -165,12 +175,13 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<rows>
|
||||
<row>
|
||||
<label value="Typ" control="student-abschlusspruefung-menulist-typ" />
|
||||
<menulist id="student-abschlusspruefung-menulist-typ"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/pruefungstyp.rdf.php?abschluss=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/pruefungstyp/liste"
|
||||
oncommand="StudentAbschlusspruefungTypChange()"
|
||||
>
|
||||
<menulist
|
||||
id="student-abschlusspruefung-menulist-typ"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/pruefungstyp.rdf.php?abschluss=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/pruefungstyp/liste"
|
||||
oncommand="StudentAbschlusspruefungTypChange()"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/pruefungstyp/rdf#pruefungstyp_kurzbz"
|
||||
@@ -178,8 +189,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Note komm. Pruefung" control="student-abschlusspruefung-menulist-notekommpruef" />
|
||||
</menulist>
|
||||
|
||||
<label value="Note komm. Pruefung" control="student-abschlusspruefung-menulist-notekommpruef" />
|
||||
<menulist id="student-abschlusspruefung-menulist-notekommpruef"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT;?>rdf/note.rdf.php?optional=true" flex="1"
|
||||
@@ -194,6 +206,23 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Prüfungsantritt" control="student-abschlusspruefung-menulist-pruefungsantritt" />
|
||||
<menulist
|
||||
id="student-abschlusspruefung-menulist-pruefungsantritt"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/abschlusspruefung_antritt.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/abschlusspruefung_antritt/liste"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/abschlusspruefung_antritt/rdf#pruefungsantritt_kurzbz"
|
||||
label="rdf:http://www.technikum-wien.at/abschlusspruefung_antritt/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Vorsitz" control="student-abschlusspruefung-menulist-vorsitz" />
|
||||
<menulist id="student-abschlusspruefung-menulist-vorsitz"
|
||||
|
||||
@@ -1214,7 +1214,7 @@ function StudentAuswahl()
|
||||
//Wenn keine UID gesetzt ist, dann ist er noch kein Student.
|
||||
//Hierbei werden einige der Tabs nicht angezeigt und auch nicht geladen!
|
||||
|
||||
document.getElementById('student-tab-zeugnis').collapsed=true;
|
||||
document.getElementById('student-tab-zeugnis').collapsed=false;
|
||||
document.getElementById('student-tab-betriebsmittel').collapsed=true;
|
||||
document.getElementById('student-tab-io').collapsed=true;
|
||||
document.getElementById('student-tab-mobilitaet').hidden=true;
|
||||
@@ -1363,7 +1363,7 @@ function StudentAuswahl()
|
||||
StudentKontoTreeDatasource.addXMLSinkObserver(StudentKontoTreeSinkObserver);
|
||||
kontotree.builder.addListener(StudentKontoTreeListener);
|
||||
|
||||
if(uid!='')
|
||||
/*if(uid!='')*/
|
||||
{
|
||||
// *** Zeugnis ***
|
||||
zeugnistree = document.getElementById('student-zeugnis-tree');
|
||||
@@ -3058,6 +3058,11 @@ function StudentAkteDel()
|
||||
}
|
||||
|
||||
studiengang_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
||||
//Wenn es kein Student ist, Studiengangs_kz vom PreStudenten ermitteln
|
||||
if (studiengang_kz == '')
|
||||
{
|
||||
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
||||
}
|
||||
//Abfrage ob wirklich geloescht werden soll
|
||||
if (confirm('Dokument wirklich entfernen?'))
|
||||
{
|
||||
@@ -3170,8 +3175,14 @@ function StudentZeugnisDokumentArchivieren()
|
||||
case 'StudienblattEng':
|
||||
xml = 'studienblatt.xml.php';
|
||||
break;
|
||||
|
||||
case 'Ausbildungsver':
|
||||
case 'AusbVerEng':
|
||||
xml = 'ausbildungsvertrag.xml.php';
|
||||
break;
|
||||
|
||||
default:
|
||||
alert('Das archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt');
|
||||
alert('Das Archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt');
|
||||
return
|
||||
break;
|
||||
}
|
||||
@@ -3179,13 +3190,21 @@ function StudentZeugnisDokumentArchivieren()
|
||||
var labelalt = document.getElementById('student-zeugnis-button-archive').label;
|
||||
document.getElementById('student-zeugnis-button-archive').label='Loading...';
|
||||
|
||||
//Zeugnis fuer alle markierten Studenten archivieren
|
||||
//Dokument fuer alle markierten Studenten archivieren
|
||||
for (var t=0; t<numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (v=start.value; v<=end.value; v++)
|
||||
{
|
||||
uid = getTreeCellText(tree, 'student-treecol-uid', v);
|
||||
prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v);
|
||||
|
||||
//Wenn keine UID vorhanden, kann nur der Ausbildungsvertrag generiert werden
|
||||
if(vorlage != 'Ausbildungsver' && vorlage != 'AusbVerEng' && uid == '')
|
||||
{
|
||||
alert('Dieses Dokument kann nur für Studierende erstellt werden. Mindestens eine ausgewählte Person hat keine UID');
|
||||
continue;
|
||||
}
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
req.add('xsl', vorlage);
|
||||
@@ -3193,6 +3212,7 @@ function StudentZeugnisDokumentArchivieren()
|
||||
req.add('ss', stsem);
|
||||
req.add('archive', '1');
|
||||
req.add('uid', uid);
|
||||
req.add('prestudent_id', prestudent_id);
|
||||
|
||||
var response = req.execute();
|
||||
if(response!='')
|
||||
|
||||
@@ -93,6 +93,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/akte/rdf#stud_selfservice" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-zeugnis-tree-akte_akzeptiertamum" label="AkzeptiertAmUm" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/akte/rdf#stud_akzeptiertamum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -106,6 +110,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#akte_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#signiert"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#stud_selfservice"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#stud_akzeptiertamum"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
||||
@@ -50,6 +50,11 @@ class abschlusspruefung extends basis_db
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
public $ext_id;
|
||||
public $protokoll;
|
||||
public $endezeit;
|
||||
public $pruefungsantritt_kurzbz;
|
||||
public $freigabedatum;
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -108,6 +113,10 @@ class abschlusspruefung extends basis_db
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->protokoll = $row->protokoll;
|
||||
$this->endezeit = $row->endezeit;
|
||||
$this->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$this->freigabedatum = $row->freigabedatum;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -195,7 +204,7 @@ class abschlusspruefung extends basis_db
|
||||
$qry = "BEGIN;INSERT INTO lehre.tbl_abschlusspruefung (student_uid, vorsitz, pruefer1,
|
||||
pruefer2, pruefer3, abschlussbeurteilung_kurzbz, akadgrad_id, datum, uhrzeit, sponsion,
|
||||
pruefungstyp_kurzbz, anmerkung, updateamum, updatevon, insertamum, insertvon,
|
||||
note) VALUES (".
|
||||
note, protokoll, endezeit, pruefungsantritt_kurzbz, freigabedatum) VALUES (".
|
||||
$this->db_add_param($this->student_uid).', '.
|
||||
$this->db_add_param($this->vorsitz).', '.
|
||||
$this->db_add_param($this->pruefer1).', '.
|
||||
@@ -212,7 +221,11 @@ class abschlusspruefung extends basis_db
|
||||
$this->db_add_param($this->updatevon).', '.
|
||||
$this->db_add_param($this->insertamum).', '.
|
||||
$this->db_add_param($this->insertvon).', '.
|
||||
$this->db_add_param($this->note, FHC_INTEGER).');';
|
||||
$this->db_add_param($this->note, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->protokoll).','.
|
||||
$this->db_add_param($this->endezeit).','.
|
||||
$this->db_add_param($this->pruefungsantritt_kurzbz).','.
|
||||
$this->db_add_param($this->freigabedatum).');';
|
||||
|
||||
}
|
||||
else
|
||||
@@ -233,7 +246,11 @@ class abschlusspruefung extends basis_db
|
||||
" pruefungstyp_kurzbz=".$this->db_add_param($this->pruefungstyp_kurzbz).",".
|
||||
" anmerkung=".$this->db_add_param($this->anmerkung).",".
|
||||
" updateamum=".$this->db_add_param($this->updateamum).",".
|
||||
" updatevon=".$this->db_add_param($this->updatevon).
|
||||
" updatevon=".$this->db_add_param($this->updatevon).",".
|
||||
" protokoll=".$this->db_add_param($this->protokoll).",".
|
||||
" endezeit=".$this->db_add_param($this->endezeit).",".
|
||||
" pruefungsantritt_kurzbz=".$this->db_add_param($this->pruefungsantritt_kurzbz).",".
|
||||
" freigabedatum=".$this->db_add_param($this->freigabedatum)." ".
|
||||
" WHERE abschlusspruefung_id=".$this->db_add_param($this->abschlusspruefung_id, FHC_INTEGER, false);
|
||||
}
|
||||
|
||||
@@ -315,6 +332,10 @@ class abschlusspruefung extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->protokoll = $row->protokoll;
|
||||
$obj->endezeit = $row->endezeit;
|
||||
$obj->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$obj->freigabedatum = $row->freigabedatum;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -366,6 +387,11 @@ class abschlusspruefung extends basis_db
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->protokoll = $row->protokoll;
|
||||
$this->endezeit = $row->endezeit;
|
||||
$this->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$this->freigabedatum = $row->freigabedatum;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/* Copyright (C) 2020 FH 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>,
|
||||
*/
|
||||
/**
|
||||
* Klasse zur Verwaltung der Abschlusspruefungsantritte
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class abschlusspruefung_antritt extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $pruefungsantritt_kurzbz;
|
||||
public $bezeichnung;
|
||||
public $bezeichnung_english;
|
||||
public $sort;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $pruefungsantritt_kurzbz kurzbz des zu ladenden Datensatzes
|
||||
*/
|
||||
public function __construct($pruefungsantritt_kurzbz=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($pruefungsantritt_kurzbz))
|
||||
$this->load($pruefungsantritt_kurzbz);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param $pruefungsantritt_kurzbz Kurzbz des zu ladenden Datensatzes
|
||||
*/
|
||||
public function load($pruefungsantritt_kurzbz)
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung_antritt
|
||||
WHERE pruefungsantritt_kurzbz=".$this->db_add_param($pruefungsantritt_kurzbz).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->bezeichnung_english = $row->bezeichnung_english;
|
||||
$this->sort = $row->sort;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Abschlussprüfungsantritt
|
||||
* @return boolean true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung_antritt
|
||||
ORDER BY sort";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new abschlusspruefung_antritt();
|
||||
$obj->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->bezeichnung_english = $row->bezeichnung_english;
|
||||
$obj->sort = $row->sort;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
+15
-7
@@ -54,6 +54,7 @@ class akte extends basis_db
|
||||
public $archiv = false;
|
||||
public $signiert = false;
|
||||
public $stud_selfservice = false;
|
||||
public $akzeptiertamum;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -112,6 +113,7 @@ class akte extends basis_db
|
||||
$this->archiv = $this->db_parse_bool($row->archiv);
|
||||
$this->signiert = $this->db_parse_bool($row->signiert);
|
||||
$this->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
|
||||
$this->akzeptiertamum = $row->akzeptiertamum;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -197,7 +199,7 @@ class akte extends basis_db
|
||||
$qry = "BEGIN;INSERT INTO public.tbl_akte (person_id, dokument_kurzbz, inhalt, mimetype, erstelltam, gedruckt, titel,
|
||||
bezeichnung, updateamum, updatevon, insertamum, insertvon, uid, dms_id, nachgereicht, anmerkung,
|
||||
titel_intern, anmerkung_intern, nachgereicht_am, ausstellungsnation, formal_geprueft_amum,
|
||||
archiv, signiert, stud_selfservice) VALUES (".
|
||||
archiv, signiert, stud_selfservice, akzeptiertamum) VALUES (".
|
||||
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->dokument_kurzbz).', '.
|
||||
$this->db_add_param($this->inhalt).', '.
|
||||
@@ -221,7 +223,8 @@ class akte extends basis_db
|
||||
$this->db_add_param($this->formal_geprueft_amum).','.
|
||||
$this->db_add_param($this->archiv, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->signiert, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).');';
|
||||
$this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->akzeptiertamum).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -248,7 +251,8 @@ class akte extends basis_db
|
||||
" formal_geprueft_amum=".$this->db_add_param($this->formal_geprueft_amum).",".
|
||||
" archiv=".$this->db_add_param($this->archiv, FHC_BOOLEAN).",".
|
||||
" signiert=".$this->db_add_param($this->signiert, FHC_BOOLEAN).",".
|
||||
" stud_selfservice=".$this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).
|
||||
" stud_selfservice=".$this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).",".
|
||||
" akzeptiertamum=".$this->db_add_param($this->akzeptiertamum).
|
||||
" WHERE akte_id=".$this->db_add_param($this->akte_id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
@@ -307,7 +311,7 @@ class akte extends basis_db
|
||||
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
|
||||
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
|
||||
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
|
||||
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice";
|
||||
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum";
|
||||
if($returnInhalt === true)
|
||||
{
|
||||
$qry .= ",inhalt ";
|
||||
@@ -367,6 +371,7 @@ class akte extends basis_db
|
||||
$akten->archiv = $this->db_parse_bool($row->archiv);
|
||||
$akten->signiert = $this->db_parse_bool($row->signiert);
|
||||
$akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
|
||||
$akten->akzeptiertamum = $row->akzeptiertamum;
|
||||
|
||||
$this->result[] = $akten;
|
||||
}
|
||||
@@ -429,6 +434,7 @@ class akte extends basis_db
|
||||
$akten->archiv = $this->db_parse_bool($row->archiv);
|
||||
$akten->signiert = $this->db_parse_bool($row->signiert);
|
||||
$akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
|
||||
$akten->akzeptiertamum = $row->akzeptiertamum;
|
||||
|
||||
$this->result[] = $akten;
|
||||
}
|
||||
@@ -453,7 +459,7 @@ class akte extends basis_db
|
||||
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
|
||||
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
|
||||
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern, nachgereicht_am,
|
||||
ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice
|
||||
ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum
|
||||
FROM public.tbl_akte WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."
|
||||
ORDER BY erstelltam";
|
||||
|
||||
@@ -488,6 +494,7 @@ class akte extends basis_db
|
||||
$akten->archiv = $this->db_parse_bool($row->archiv);
|
||||
$akten->signiert = $this->db_parse_bool($row->signiert);
|
||||
$akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
|
||||
$akten->akzeptiertamum = $row->akzeptiertamum;
|
||||
|
||||
$this->result[] = $akten;
|
||||
}
|
||||
@@ -515,7 +522,7 @@ class akte extends basis_db
|
||||
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
|
||||
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
|
||||
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
|
||||
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice
|
||||
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum
|
||||
FROM
|
||||
public.tbl_akte
|
||||
WHERE
|
||||
@@ -527,7 +534,7 @@ class akte extends basis_db
|
||||
if(!is_null($stud_selfservice))
|
||||
$qry.=" AND stud_selfservice=".($stud_selfservice?'true':'false');
|
||||
|
||||
$qry.=" ORDER BY erstelltam";
|
||||
$qry.=" ORDER BY erstelltam DESC";
|
||||
|
||||
$this->errormsg = $qry;
|
||||
|
||||
@@ -563,6 +570,7 @@ class akte extends basis_db
|
||||
$akten->archiv = $this->db_parse_bool($row->archiv);
|
||||
$akten->signiert = $this->db_parse_bool($row->signiert);
|
||||
$akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
|
||||
$akten->akzeptiertamum = $row->akzeptiertamum;
|
||||
|
||||
$this->result[] = $akten;
|
||||
}
|
||||
|
||||
@@ -404,8 +404,8 @@ class bisverwendung extends basis_db
|
||||
$obj->verwendung_code = $row->verwendung_code;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->hauptberufcode = $row->hauptberufcode;
|
||||
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$obj->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$obj->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
@@ -513,8 +513,8 @@ class bisverwendung extends basis_db
|
||||
$this->verwendung_code = $row->verwendung_code;
|
||||
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$this->hauptberufcode = $row->hauptberufcode;
|
||||
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$this->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$this->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$this->beginn = $row->beginn;
|
||||
$this->ende = $row->ende;
|
||||
$this->updatevon = $row->updatevon;
|
||||
@@ -566,8 +566,8 @@ class bisverwendung extends basis_db
|
||||
$this->verwendung_code = $row->verwendung_code;
|
||||
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$this->hauptberufcode = $row->hauptberufcode;
|
||||
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$this->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$this->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$this->beginn = $row->beginn;
|
||||
$this->ende = $row->ende;
|
||||
$this->updatevon = $row->updatevon;
|
||||
@@ -587,5 +587,186 @@ class bisverwendung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Verwendungen eines Mitarbeiters die in einen Datumsbereich fallen
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @param $von
|
||||
* @param $bis
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getVerwendungRange($uid, $von, $bis)
|
||||
{
|
||||
$datum_obj = new datum();
|
||||
//laden des Datensatzes
|
||||
$qry = "
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
WHERE
|
||||
mitarbeiter_uid=".$this->db_add_param($uid)."
|
||||
AND
|
||||
(
|
||||
".$this->db_add_param($datum_obj->formatDatum($von,'Y-m-d'))." BETWEEN COALESCE(beginn,'1970-01-01') AND COALESCE(ende,'2999-12-31')
|
||||
OR
|
||||
".$this->db_add_param($datum_obj->formatDatum($bis,'Y-m-d'))." BETWEEN COALESCE(beginn,'1970-01-01') AND COALESCE(ende,'2999-12-31')
|
||||
)
|
||||
ORDER BY ende desc;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
|
||||
$obj = new bisverwendung();
|
||||
|
||||
$obj->bisverwendung_id = $row->bisverwendung_id;
|
||||
$obj->ba1code = $row->ba1code;
|
||||
$obj->ba2code = $row->ba2code;
|
||||
$obj->beschausmasscode = $row->beschausmasscode;
|
||||
$obj->verwendung_code = $row->verwendung_code;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->hauptberufcode = $row->hauptberufcode;
|
||||
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$obj->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->vertragsstunden = $row->vertragsstunden;
|
||||
$obj->dv_art = $row->dv_art;
|
||||
$obj->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Prueft, ob Mitarbeiter habilitiert ist
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @return bool
|
||||
*/
|
||||
public function isHabilitiert($uid)
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
WHERE
|
||||
mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||
AND
|
||||
habilitation = true;
|
||||
';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return $this->db_num_rows() > 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle Verwendungen eines Mitarbeiters innerhalb des BIS Meldungszeitraums
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @param $stichtag
|
||||
* @return bool
|
||||
*/
|
||||
public function getVerwendungenBISMeldung($uid, $stichtag)
|
||||
{
|
||||
$datetime = new DateTime($stichtag);
|
||||
$stichtag = $datetime->format('Y-m-d');
|
||||
$bismeldung_jahr = $datetime->format('Y');
|
||||
|
||||
$qry = '
|
||||
SELECT
|
||||
*,
|
||||
CASE
|
||||
WHEN (beginn is null OR beginn < make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1))
|
||||
THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1)
|
||||
ELSE beginn
|
||||
END as beginn_imBISMeldungsJahr,
|
||||
CASE
|
||||
WHEN (ende is null OR ende > make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31))
|
||||
THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31)
|
||||
ELSE ende
|
||||
END as ende_imBISMeldungsJahr
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
JOIN bis.tbl_beschaeftigungsart1 USING (ba1code)
|
||||
WHERE
|
||||
mitarbeiter_uid = '. $this->db_add_param($uid).'
|
||||
AND (beginn <= '. $this->db_add_param($stichtag).' OR beginn is null)
|
||||
AND (ende >= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1) OR ende is null)
|
||||
ORDER BY ende
|
||||
';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new StdClass();
|
||||
|
||||
$obj->bisverwendung_id = $row->bisverwendung_id;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->vertragsstunden = $row->vertragsstunden;
|
||||
$obj->ba1code = $row->ba1code_bis;
|
||||
$obj->ba2code = $row->ba2code;
|
||||
$obj->verwendung_code = $row->verwendung_code;
|
||||
$obj->beschausmasscode = $row->beschausmasscode;
|
||||
$obj->hauptberufcode = $row->hauptberufcode;
|
||||
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->beginn_imBISMeldungsJahr = $row->beginn_imbismeldungsjahr;
|
||||
$obj->ende_imBISMeldungsJahr = $row->ende_imbismeldungsjahr;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die vorhandenen Verwendungen
|
||||
*/
|
||||
public function getVerwendungCodex()
|
||||
{
|
||||
$qry = "SELECT * FROM bis.tbl_verwendung ORDER BY verwendung_code";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new StdClass();
|
||||
|
||||
$obj->verwendung_code = $row->verwendung_code;
|
||||
$obj->verwendungbez = $row->verwendungbez;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -575,5 +575,11 @@ class dokument_export
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function setXMLTag_archivierbar()
|
||||
{
|
||||
$archivierbar = $this->xml_data->createElement("archivierbar", "true");
|
||||
$this->xml_data->documentElement->appendChild($archivierbar);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -394,10 +394,12 @@ class dvb extends basis_db
|
||||
|
||||
$this->debug('getMatrikelnrBySVNR');
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
$curl = curl_init();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_SVNR;
|
||||
$url .= '?sozialVersicherungsNummer='.curl_escape($curl, $svnr);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -507,9 +509,10 @@ class dvb extends basis_db
|
||||
|
||||
$this->debug('getMatrikelnrByErsatzkennzeichen');
|
||||
$curl = curl_init();
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
$url = self::DVB_URL_WEBSERVICE_ERSATZKZ;
|
||||
$url .= '?ersatzKennzeichen='.curl_escape($curl, $ersatzkennzeichen);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -1349,9 +1352,12 @@ class dvb extends basis_db
|
||||
|
||||
$geburtsdatum = str_replace("-", "", $geburtsdatum);
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_NACHNAME;
|
||||
$url .= '?nachName='.curl_escape($curl, $nachname);
|
||||
$url .= '&geburtsDatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -1472,11 +1478,13 @@ class dvb extends basis_db
|
||||
$curl = curl_init();
|
||||
|
||||
$geburtsdatum = str_replace("-", "", $geburtsdatum);
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_NAME;
|
||||
$url .= '?nachName='.curl_escape($curl, $nachname);
|
||||
$url .= '&vorName='.curl_escape($curl, $vorname);
|
||||
$url .= '&geburtsDatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
+82
-56
@@ -677,13 +677,13 @@ class gebiet extends basis_db
|
||||
|
||||
$qry = "
|
||||
WITH fragen AS (
|
||||
SELECT tbl_frage.frage_id, tbl_frage.gebiet_id, tbl_frage.level, punkte
|
||||
FROM testtool.tbl_frage
|
||||
JOIN testtool.tbl_vorschlag USING (frage_id)
|
||||
WHERE tbl_vorschlag.aktiv
|
||||
AND tbl_vorschlag.punkte < 0
|
||||
AND tbl_frage.demo = false
|
||||
AND tbl_frage.aktiv
|
||||
SELECT tbl_frage.frage_id, tbl_frage.gebiet_id, tbl_frage.level, tbl_frage.nummer, punkte
|
||||
FROM testtool.tbl_frage
|
||||
JOIN testtool.tbl_vorschlag USING (frage_id)
|
||||
WHERE tbl_vorschlag.aktiv
|
||||
AND tbl_vorschlag.punkte < 0
|
||||
AND tbl_frage.demo = false
|
||||
AND tbl_frage.aktiv
|
||||
),
|
||||
fragenanzahl AS (
|
||||
SELECT gebiet_id, level, levelgleichverteilung,
|
||||
@@ -712,57 +712,83 @@ class gebiet extends basis_db
|
||||
tbl_gebiet.level_start,
|
||||
(
|
||||
CASE WHEN tbl_gebiet.levelgleichverteilung THEN
|
||||
(CASE WHEN tbl_gebiet.multipleresponse=false THEN
|
||||
(SELECT sum(frprolevel) FROM
|
||||
(
|
||||
SELECT fragen.level, (min(punkte)
|
||||
* (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = fragen.gebiet_id and fragenanzahl.level = fragen.level LIMIT 1)) AS frprolevel
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
GROUP BY fragen.gebiet_id, level
|
||||
) pkteprolevel)
|
||||
ELSE
|
||||
(SELECT sum(frprolevel) FROM
|
||||
(
|
||||
SELECT fragen.level, (sum(punkte)
|
||||
* (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = fragen.gebiet_id and fragenanzahl.level = fragen.level LIMIT 1)) AS frprolevel
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
AND frage_id = (SELECT min(frage_id) FROM fragen fr WHERE fr.gebiet_id = fragen.gebiet_id AND fr.level = fragen.level)
|
||||
GROUP BY fragen.gebiet_id, level
|
||||
) pkteprolevel)
|
||||
END)
|
||||
(CASE WHEN tbl_gebiet.multipleresponse=false THEN
|
||||
(SELECT sum(frprolevel) FROM
|
||||
(
|
||||
SELECT fragen.level, (SELECT sum(punkte) FROM (SELECT min(punkte) AS punkte FROM fragen lvlfr WHERE lvlfr.gebiet_id = fragen.gebiet_id and lvlfr.level = fragen.level
|
||||
GROUP BY lvlfr.frage_id, lvlfr.nummer
|
||||
ORDER BY lvlfr.nummer
|
||||
LIMIT (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = fragen.gebiet_id and fragenanzahl.level = fragen.level LIMIT 1)) fr)
|
||||
AS frprolevel
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
GROUP BY fragen.gebiet_id, level
|
||||
) pkteprolevel)
|
||||
ELSE
|
||||
(SELECT sum(frprolevel) FROM
|
||||
(
|
||||
SELECT fragen.level,
|
||||
(SELECT sum(punkte) FROM (SELECT sum(punkte) AS punkte FROM fragen lvlfr WHERE lvlfr.gebiet_id = fragen.gebiet_id and lvlfr.level = fragen.level
|
||||
GROUP by lvlfr.frage_id, lvlfr.nummer
|
||||
ORDER BY lvlfr.nummer
|
||||
LIMIT (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = fragen.gebiet_id and fragenanzahl.level = fragen.level LIMIT 1)) fr)
|
||||
AS frprolevel
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
GROUP BY fragen.gebiet_id, level
|
||||
) pkteprolevel)
|
||||
END)
|
||||
WHEN tbl_gebiet.level_start IS NOT NULL THEN
|
||||
(CASE WHEN tbl_gebiet.multipleresponse=false THEN
|
||||
(
|
||||
SELECT min(punkte)
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
(CASE WHEN tbl_gebiet.multipleresponse=false THEN
|
||||
(SELECT sum(pkte)
|
||||
FROM (
|
||||
SELECT min(punkte) AS pkte
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
AND fragen.level = tbl_gebiet.level_start
|
||||
) * (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id AND fragenanzahl.level = tbl_gebiet.level_start LIMIT 1)
|
||||
ELSE
|
||||
(SELECT sum(punkte)
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
AND frage_id = (SELECT min(frage_id) FROM fragen WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id)
|
||||
AND fragen.level = tbl_gebiet.level_start
|
||||
)* (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id AND fragenanzahl.level = tbl_gebiet.level_start LIMIT 1)
|
||||
END)
|
||||
GROUP BY frage_id, nummer
|
||||
ORDER BY nummer
|
||||
LIMIT (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id AND fragenanzahl.level = tbl_gebiet.level_start LIMIT 1)
|
||||
) minpkte
|
||||
)
|
||||
ELSE
|
||||
(
|
||||
SELECT sum(pkte)
|
||||
FROM (SELECT sum(punkte) AS pkte
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
AND fragen.level = tbl_gebiet.level_start
|
||||
GROUP BY frage_id, nummer
|
||||
ORDER BY nummer
|
||||
LIMIT (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id AND fragenanzahl.level = tbl_gebiet.level_start LIMIT 1)
|
||||
) sumpkte
|
||||
)
|
||||
END)
|
||||
ELSE
|
||||
(CASE WHEN tbl_gebiet.multipleresponse=false THEN
|
||||
(
|
||||
SELECT min(punkte)
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
) * (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id LIMIT 1)
|
||||
ELSE
|
||||
(SELECT sum(punkte)
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
AND frage_id = (SELECT min(frage_id) FROM fragen WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id)
|
||||
)* (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id LIMIT 1)
|
||||
END)
|
||||
|
||||
(CASE WHEN tbl_gebiet.multipleresponse=false THEN
|
||||
(
|
||||
SELECT sum(pkte)
|
||||
FROM (SELECT min(punkte) AS pkte
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
GROUP BY frage_id, nummer
|
||||
ORDER BY nummer
|
||||
LIMIT (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id LIMIT 1)
|
||||
) minpkte
|
||||
)
|
||||
ELSE
|
||||
(
|
||||
SELECT sum(pkte)
|
||||
FROM (SELECT sum(punkte) AS pkte
|
||||
FROM fragen
|
||||
WHERE fragen.gebiet_id = tbl_gebiet.gebiet_id
|
||||
GROUP BY frage_id, nummer
|
||||
ORDER BY nummer
|
||||
LIMIT (SELECT anzahl FROM fragenanzahl WHERE fragenanzahl.gebiet_id = tbl_gebiet.gebiet_id LIMIT 1)
|
||||
) sumpkte
|
||||
)
|
||||
END)
|
||||
|
||||
END) * (-1) AS offsetpunkte
|
||||
FROM
|
||||
testtool.tbl_gebiet
|
||||
@@ -770,7 +796,7 @@ class gebiet extends basis_db
|
||||
EXISTS(
|
||||
SELECT 1 FROM fragen WHERE fragen.gebiet_id=tbl_gebiet.gebiet_id
|
||||
)
|
||||
AND gebiet_id = ".$this->db_add_param($gebiet_id, FHC_INTEGER)."
|
||||
AND gebiet_id = ".$this->db_add_param($gebiet_id, FHC_INTEGER)."
|
||||
";
|
||||
|
||||
if($this->db_query($qry))
|
||||
|
||||
@@ -257,6 +257,60 @@ class lehreinheit extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle vorhandenen Lehreinheiten zu einer Lehrveranstaltung
|
||||
*
|
||||
* @param $lehrveranstaltung_id
|
||||
* @return bool
|
||||
*/
|
||||
public function load_all_lehreinheiten($lehrveranstaltung_id)
|
||||
{
|
||||
$this->lehreinheiten = array();
|
||||
$this->errormsg ='';
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
ORDER BY lehreinheit_id;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$le_obj = new lehreinheit();
|
||||
|
||||
$le_obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$le_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$le_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$le_obj->lehrfach_id = $row->lehrfach_id;
|
||||
$le_obj->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$le_obj->stundenblockung = $row->stundenblockung;
|
||||
$le_obj->wochenrythmus = $row->wochenrythmus;
|
||||
$le_obj->start_kw = $row->start_kw;
|
||||
$le_obj->raumtyp = $row->raumtyp;
|
||||
$le_obj->raumtypalternativ = $row->raumtypalternativ;
|
||||
$le_obj->lehre = $this->db_parse_bool($row->lehre);
|
||||
$le_obj->anmerkung = $row->anmerkung;
|
||||
$le_obj->unr = $row->unr;
|
||||
$le_obj->lvnr = $row->lvnr;
|
||||
$le_obj->sprache = $row->sprache;
|
||||
$le_obj->insertamum = $row->insertamum;
|
||||
$le_obj->insertvon = $row->insertvon;
|
||||
$le_obj->updateamum = $row->updateamum;
|
||||
$le_obj->updatevon = $row->updatevon;
|
||||
$le_obj->ext_id = $row->ext_id;
|
||||
$le_obj->gewicht = $row->gewicht;
|
||||
|
||||
$this->lehreinheiten[] = $le_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Lehreinheiten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
|
||||
@@ -44,6 +44,8 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
public $ext_id; // bigint
|
||||
public $vertrag_id;
|
||||
|
||||
public $result = array();
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional einee LEMitarbeiterzuordnung
|
||||
* @param $lehreinheit_id
|
||||
@@ -495,6 +497,116 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet Semesterwochenstunden-Summe eines Mitarbeiters eines Semesters.
|
||||
* Nur bisrelevante SWS.
|
||||
* @param String $uid
|
||||
* @param String $studiensemester
|
||||
* @return bool
|
||||
*/
|
||||
public function getLehreinheiten_SWS_BISMeldung($uid, $studiensemester)
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
round(sum(semesterstunden) / 15, 2) AS sws
|
||||
FROM (
|
||||
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, mitarbeiter_uid, semesterstunden
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN public.tbl_mitarbeiter ma USING (mitarbeiter_uid)
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid = uid)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
JOIN bis.tbl_bisverwendung USING (mitarbeiter_uid)
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||
WHERE mitarbeiter_uid = '. $this->db_add_param($uid).'
|
||||
AND lema.bismelden
|
||||
AND studiensemester_kurzbz = '. $this->db_add_param($studiensemester).'
|
||||
) tbl_semesterstunden
|
||||
';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->result[] = $row->sws;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet Semesterwochenstunden-Summe gruppiert nach Studiengang und Studiensemester.
|
||||
* Es werden die Studiensemester herangezogen, die im Zeitraum zwischen beginn und ende beginnen.
|
||||
* @param String $uid
|
||||
* @param String $beginn
|
||||
* @param String $ende
|
||||
* @return bool
|
||||
*/
|
||||
public function get_SWS_groupByStg($uid, $beginn, $ende)
|
||||
{
|
||||
$beginn = new DateTime($beginn);
|
||||
$ende = new DateTime($ende);
|
||||
|
||||
$qry = '
|
||||
WITH semester_sws_tbl AS (
|
||||
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, stg.studiengang_kz
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_studienplan USING (studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung sto USING (studienordnung_id)
|
||||
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
|
||||
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||
WHERE mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||
AND (
|
||||
ss.start BETWEEN
|
||||
'. $this->db_add_param($beginn->format('Y-m-d')). ' AND
|
||||
'. $this->db_add_param($ende->format('Y-m-d')). ')
|
||||
-- nur lehre, die bisgemeldet wird
|
||||
AND lema.bismelden
|
||||
-- keine lehreinheiten ohne semesterstunden
|
||||
AND lema.semesterstunden != 0
|
||||
)
|
||||
|
||||
SELECT
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz,
|
||||
sum(semesterstunden) AS summe,
|
||||
round(sum(semesterstunden) / 15, 2) AS sws
|
||||
FROM
|
||||
semester_sws_tbl
|
||||
GROUP BY
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz
|
||||
ORDER BY
|
||||
studiengang_kz;
|
||||
';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new StdClass();
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->sws = $row->sws;
|
||||
$this->result []= $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Lektoren einer Lehrveranstaltung in einem Studiensemester
|
||||
* @param lehrveranstaltung_id
|
||||
|
||||
@@ -1539,5 +1539,56 @@ class mitarbeiter extends benutzer
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt alle Mitarbeiter zurück, die im BIS Meldungszeitraum bisgemeldet sind
|
||||
* @param String $stichtag BIS Meldung Stichtag
|
||||
* @return boolean
|
||||
*/
|
||||
public function getMitarbeiterBISMeldung($stichtag)
|
||||
{
|
||||
$datetime = new DateTime($stichtag);
|
||||
$bismeldung_jahr = $datetime->format('Y');
|
||||
|
||||
$qry = '
|
||||
SELECT DISTINCT ON (UID) *,
|
||||
transform_geschlecht(tbl_person.geschlecht, tbl_person.gebdatum) as geschlecht_imputiert
|
||||
FROM
|
||||
public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN bis.tbl_bisverwendung USING(mitarbeiter_uid)
|
||||
JOIN bis.tbl_beschaeftigungsausmass USING(beschausmasscode)
|
||||
WHERE
|
||||
bismelden
|
||||
AND personalnummer > 0
|
||||
AND (beginn <= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31) OR beginn is null)
|
||||
AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende >= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1))
|
||||
ORDER BY uid, nachname, vorname
|
||||
';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new StdClass();
|
||||
|
||||
$obj->uid = $row->uid;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->gebdatum = $row->gebdatum;
|
||||
$obj->geschlecht = $row->geschlecht;
|
||||
$obj->geschlechtX = $row->geschlecht_imputiert;
|
||||
$obj->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$obj->personalnummer = $row->personalnummer;
|
||||
$obj->ausbildungcode = $row->ausbildungcode;
|
||||
|
||||
$this->result []= $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -172,12 +172,12 @@ class basis_db extends db
|
||||
return pg_result_seek($result, $offset);
|
||||
}
|
||||
|
||||
public function db_fetch_array($result=null)
|
||||
public function db_fetch_array($result=null, $row=null, $result_type=PGSQL_NUM)
|
||||
{
|
||||
if(is_null($result))
|
||||
return pg_fetch_array($this->db_result);
|
||||
return pg_fetch_array($this->db_result, $row, $result_type);
|
||||
else
|
||||
return pg_fetch_array($result);
|
||||
return pg_fetch_array($result, $row, $result_type);
|
||||
}
|
||||
|
||||
public function db_num_fields($result=null)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user