mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
fix merge conflicts after merging master
This commit is contained in:
@@ -188,7 +188,7 @@ class AnrechnungJob extends JOB_Controller
|
||||
$studiengang_bezeichnung = $this->StudiengangModel->load($studiengang_kz)->retval[0]->stg_bezeichnung;
|
||||
|
||||
// Get STGL mail address
|
||||
list ($to, $vorname) = self::_getSTGLMailAddress($studiengang_kz);
|
||||
$stglMailReceiver_arr = self::_getSTGLMailAddress($studiengang_kz);
|
||||
|
||||
// Get HTML table with new Anrechnungen of that STG plus amount of them
|
||||
list ($anrechnungen_amount, $anrechnungen_table) = self::_getSTGLMailDataTable($studiengang_kz, $anrechnungen);
|
||||
@@ -199,22 +199,25 @@ class AnrechnungJob extends JOB_Controller
|
||||
CIS_ROOT. 'cis/menu.php?content_id=&content='.
|
||||
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
|
||||
|
||||
foreach ($stglMailReceiver_arr as $stgl)
|
||||
{
|
||||
// Prepare mail content
|
||||
$body_fields = array(
|
||||
'vorname' => $vorname,
|
||||
'studiengang' => $studiengang_bezeichnung,
|
||||
'anzahl' => $anrechnungen_amount,
|
||||
'datentabelle' => $anrechnungen_table,
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
|
||||
// Send mail
|
||||
sendSanchoMail(
|
||||
'AnrechnungAntragStellen',
|
||||
$body_fields,
|
||||
$to,
|
||||
'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt'
|
||||
);
|
||||
$body_fields = array(
|
||||
'vorname' => $stgl['vorname'],
|
||||
'studiengang' => $studiengang_bezeichnung,
|
||||
'anzahl' => $anrechnungen_amount,
|
||||
'datentabelle' => $anrechnungen_table,
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
|
||||
// Send mail
|
||||
sendSanchoMail(
|
||||
'AnrechnungAntragStellen',
|
||||
$body_fields,
|
||||
$stgl['to'],
|
||||
'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.');
|
||||
@@ -342,15 +345,21 @@ html;
|
||||
// Get STGL mail address
|
||||
private function _getSTGLMailAddress($studiengang_kz)
|
||||
{
|
||||
$stglMailAdress_arr = array();
|
||||
$result = $this->StudiengangModel->getLeitung($studiengang_kz);
|
||||
|
||||
// Get STGL mail address
|
||||
if (hasData($result))
|
||||
{
|
||||
return array(
|
||||
$result->retval[0]->uid. '@'. DOMAIN,
|
||||
$result->retval[0]->vorname
|
||||
);
|
||||
foreach (getData($result) as $stgl)
|
||||
{
|
||||
$stglMailAdress_arr[]= array(
|
||||
'to' => $stgl->uid. '@'. DOMAIN,
|
||||
'vorname' => $stgl->vorname
|
||||
);
|
||||
}
|
||||
|
||||
return $stglMailAdress_arr;
|
||||
}
|
||||
// If not available, get assistance mail address
|
||||
else
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Job for resolving core issues
|
||||
*/
|
||||
class IssueResolver extends IssueResolver_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// set fehler codes which can be resolved by the job
|
||||
// structure: fehlercode => class (library) name for resolving
|
||||
$this->_codeLibMappings = array(
|
||||
'CORE_ZGV_0001' => 'CORE_ZGV_0001',
|
||||
'CORE_ZGV_0002' => 'CORE_ZGV_0002',
|
||||
'CORE_ZGV_0003' => 'CORE_ZGV_0003',
|
||||
'CORE_ZGV_0004' => 'CORE_ZGV_0004',
|
||||
'CORE_ZGV_0005' => 'CORE_ZGV_0005',
|
||||
'CORE_INOUT_0001' => 'CORE_INOUT_0001',
|
||||
'CORE_INOUT_0002' => 'CORE_INOUT_0002',
|
||||
'CORE_INOUT_0003' => 'CORE_INOUT_0003',
|
||||
'CORE_INOUT_0004' => 'CORE_INOUT_0004',
|
||||
'CORE_INOUT_0005' => 'CORE_INOUT_0005',
|
||||
'CORE_INOUT_0006' => 'CORE_INOUT_0006'
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -22,8 +22,8 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'download' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'index' => 'lehre/anrechnung_genehmigen:r',
|
||||
'download' => 'lehre/anrechnung_genehmigen:r',
|
||||
'approve' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'reject' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'requestRecommendation' => 'lehre/anrechnung_genehmigen:rw',
|
||||
@@ -81,7 +81,7 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
}
|
||||
|
||||
// Check if user is entitled to read the Anrechnung
|
||||
self::_checkIfEntitledToReadAnrechnung($anrechnung_id);
|
||||
$this->_checkIfEntitledToReadAnrechnung($anrechnung_id);
|
||||
|
||||
// Get Anrechung data
|
||||
$anrechnungData = $this->anrechnunglib->getAnrechnungData($anrechnung_id);
|
||||
@@ -99,11 +99,16 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
// Get Genehmigung data
|
||||
$genehmigungData = $this->anrechnunglib->getGenehmigungData($anrechnung_id);
|
||||
|
||||
$hasReadOnlyAccess =
|
||||
$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $antragData->studiengang_kz)
|
||||
&& !$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 'suid', $antragData->studiengang_kz);
|
||||
|
||||
$viewData = array(
|
||||
'antragData' => $antragData,
|
||||
'anrechnungData' => $anrechnungData,
|
||||
'empfehlungData' => $empfehlungData,
|
||||
'genehmigungData' => $genehmigungData
|
||||
'genehmigungData' => $genehmigungData,
|
||||
'hasReadOnlyAccess' => $hasReadOnlyAccess
|
||||
);
|
||||
|
||||
$this->load->view('lehre/anrechnung/approveAnrechnungDetail.php', $viewData);
|
||||
@@ -385,7 +390,7 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
}
|
||||
|
||||
// Check if user is entitled to read dms doc
|
||||
self::_checkIfEntitledToReadDMSDoc($dms_id);
|
||||
$this->_checkIfEntitledToReadDMSDoc($dms_id);
|
||||
|
||||
// Set filename to be used on downlaod
|
||||
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
|
||||
@@ -412,32 +417,22 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
{
|
||||
$result = $this->AnrechnungModel->load($anrechnung_id);
|
||||
|
||||
if(!$result = getData($result)[0])
|
||||
if(!hasData($result))
|
||||
{
|
||||
show_error('Failed loading Anrechnung');
|
||||
}
|
||||
|
||||
|
||||
$result = $this->LehrveranstaltungModel->loadWhere(array(
|
||||
'lehrveranstaltung_id' => $result->lehrveranstaltung_id
|
||||
'lehrveranstaltung_id' => getData($result)[0]->lehrveranstaltung_id
|
||||
));
|
||||
|
||||
if(!$result = getData($result)[0])
|
||||
{
|
||||
show_error('Failed loading Lehrveranstaltung');
|
||||
}
|
||||
$studiengang_kz = getData($result)[0]->studiengang_kz;
|
||||
|
||||
// Get STGL
|
||||
$result = $this->StudiengangModel->getLeitung($result->studiengang_kz);
|
||||
|
||||
if($result = getData($result)[0])
|
||||
{
|
||||
if ($result->uid == $this->_uid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
show_error('You are not entitled to read this Anrechnung');
|
||||
// Check if user is entitled
|
||||
if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $studiengang_kz))
|
||||
{
|
||||
show_error('You are not entitled to read this page');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -457,23 +452,13 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
'lehrveranstaltung_id' => $result->lehrveranstaltung_id
|
||||
));
|
||||
|
||||
if(!$result = getData($result)[0])
|
||||
{
|
||||
show_error('Failed loading Lehrveranstaltung');
|
||||
}
|
||||
$studiengang_kz = getData($result)[0]->studiengang_kz;
|
||||
|
||||
// Get STGL
|
||||
$result = $this->StudiengangModel->getLeitung($result->studiengang_kz);
|
||||
|
||||
if($result = getData($result)[0])
|
||||
{
|
||||
if ($result->uid == $this->_uid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
show_error('You are not entitled to read this document');
|
||||
// Check if user is entitled
|
||||
if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $studiengang_kz))
|
||||
{
|
||||
show_error('You are not entitled to read this document');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
class approveAnrechnungUebersicht extends Auth_Controller
|
||||
{
|
||||
const BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN = 'lehre/anrechnung_genehmigen';
|
||||
|
||||
const BERECHTIGUNG_ANRECHNUNG_ANLEGEN = 'lehre/anrechnung_anlegen';
|
||||
|
||||
const REVIEW_ANRECHNUNG_URI = '/lehre/anrechnung/ReviewAnrechnungUebersicht';
|
||||
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
|
||||
@@ -19,8 +20,8 @@ class approveAnrechnungUebersicht extends Auth_Controller
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'download' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'index' => 'lehre/anrechnung_genehmigen:r',
|
||||
'download' => 'lehre/anrechnung_genehmigen:r',
|
||||
'approve' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'reject' => 'lehre/anrechnung_genehmigen:rw',
|
||||
'requestRecommendation' => 'lehre/anrechnung_genehmigen:rw'
|
||||
@@ -76,10 +77,19 @@ class approveAnrechnungUebersicht extends Auth_Controller
|
||||
{
|
||||
show_error(getError($studiengang_kz_arr));
|
||||
}
|
||||
|
||||
|
||||
$hasReadOnlyAccess =
|
||||
$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's')
|
||||
&& !$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 'suid');
|
||||
|
||||
// This permission is checked here to disable create Anrechnung button, if permission is not given
|
||||
$hasCreateAnrechnungAccess = $this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_ANLEGEN, 's');
|
||||
|
||||
$viewData = array(
|
||||
'studiensemester_selected' => $studiensemester_kurzbz,
|
||||
'studiengaenge_entitled' => $studiengang_kz_arr
|
||||
'studiengaenge_entitled' => $studiengang_kz_arr,
|
||||
'hasReadOnlyAccess' => $hasReadOnlyAccess,
|
||||
'hasCreateAnrechnungAccess' => $hasCreateAnrechnungAccess
|
||||
);
|
||||
|
||||
$this->load->view('lehre/anrechnung/approveAnrechnungUebersicht.php', $viewData);
|
||||
@@ -239,7 +249,7 @@ class approveAnrechnungUebersicht extends Auth_Controller
|
||||
}
|
||||
|
||||
// Check if user is entitled to read dms doc
|
||||
self::_checkIfEntitledToReadDMSDoc($dms_id);
|
||||
$this->_checkIfEntitledToReadDMSDoc($dms_id);
|
||||
|
||||
// Set filename to be used on downlaod
|
||||
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
|
||||
@@ -281,19 +291,14 @@ class approveAnrechnungUebersicht extends Auth_Controller
|
||||
{
|
||||
show_error('Failed loading Lehrveranstaltung');
|
||||
}
|
||||
|
||||
$studiengang_kz = $result->studiengang_kz;
|
||||
|
||||
// Get STGL
|
||||
$result = $this->StudiengangModel->getLeitung($result->studiengang_kz);
|
||||
|
||||
if($result = getData($result)[0])
|
||||
{
|
||||
if ($result->uid == $this->_uid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
show_error('You are not entitled to read this document');
|
||||
// Check if user is entitled
|
||||
if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $studiengang_kz))
|
||||
{
|
||||
show_error('You are not entitled to read this document');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -376,23 +381,24 @@ class approveAnrechnungUebersicht extends Auth_Controller
|
||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
$result = $this->LehrveranstaltungModel->getLecturersByLv($anrechnung['studiensemester_kurzbz'], $anrechnung['lehrveranstaltung_id']);
|
||||
|
||||
if (!$result = getData($result))
|
||||
if (!hasData($result))
|
||||
{
|
||||
show_error('Failed retrieving lectors of Lehrveranstaltung');
|
||||
}
|
||||
|
||||
$lecturersByLv = getData($result);
|
||||
|
||||
// Check if lv has LV-Leitung
|
||||
$key = array_search(true, array_column($result, 'lvleiter'));
|
||||
|
||||
$key = array_search(true, array_column($lecturersByLv, 'lvleiter'));
|
||||
// If lv has LV-Leitung, keep only the one
|
||||
if ($key !== false)
|
||||
{
|
||||
$lector_arr[]= $result[$key];
|
||||
$lector_arr[]= $lecturersByLv[$key];
|
||||
}
|
||||
// ...otherwise keep all lectors
|
||||
else
|
||||
{
|
||||
$lector_arr = array_merge($lector_arr, $result);
|
||||
$lector_arr = array_merge($lector_arr, $lecturersByLv);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ class requestAnrechnung extends Auth_Controller
|
||||
$prestudent_id = getData($result)[0]->prestudent_id;
|
||||
|
||||
// Check if application deadline is expired
|
||||
$is_expired = self::_checkAntragDeadline(
|
||||
$is_expired = self::_isExpired(
|
||||
$this->config->item('submit_application_start'),
|
||||
$this->config->item('submit_application_end'),
|
||||
$studiensemester_kurzbz
|
||||
@@ -226,10 +226,10 @@ class requestAnrechnung extends Auth_Controller
|
||||
* @param $start Start date for application submission.
|
||||
* @param $ende End date for application submission.
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return bool True if today is not during the start- and ending deadlines (= if is expired)
|
||||
* @return bool True if deadline is expired
|
||||
* @throws Exception
|
||||
*/
|
||||
private function _checkAntragDeadline($start, $ende, $studiensemester_kurzbz)
|
||||
private function _isExpired($start, $ende, $studiensemester_kurzbz)
|
||||
{
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
@@ -253,8 +253,8 @@ class requestAnrechnung extends Auth_Controller
|
||||
$start = new DateTime($start);
|
||||
$ende = new DateTime($ende);
|
||||
|
||||
// True if today is not during the start- and ending deadlines (= if is expired)
|
||||
return ($today <= $start || $today >= $ende);
|
||||
// True if expired
|
||||
return ($today < $start || $today > $ende);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -324,8 +324,8 @@ class requestAnrechnung extends Auth_Controller
|
||||
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id)
|
||||
{
|
||||
// Get Note of Lehrveranstaltung
|
||||
$this->load->model('education/Lvgesamtnote_model', 'LvgesamtnoteModel');
|
||||
$result = $this->LvgesamtnoteModel->load(array(
|
||||
$this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel');
|
||||
$result = $this->ZeugnisnoteModel->load(array(
|
||||
'student_uid' => $this->_uid,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'lehrveranstaltung_id' => $lehrveranstaltung_id
|
||||
|
||||
@@ -79,7 +79,7 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
|
||||
// Get Anrechung data
|
||||
$anrechnungData = $this->anrechnunglib->getAnrechnungData($anrechnung_id);
|
||||
|
||||
|
||||
// Get Antrag data
|
||||
$antragData = $this->anrechnunglib->getAntragData(
|
||||
$anrechnungData->prestudent_id,
|
||||
@@ -110,7 +110,7 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Übertragen der Daten.');
|
||||
}
|
||||
|
||||
|
||||
// Get lectors person data
|
||||
if (!$person = getData($this->PersonModel->getByUID($this->_uid))[0])
|
||||
{
|
||||
@@ -218,10 +218,10 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
|
||||
// Check if user is entitled to read dms doc
|
||||
self::_checkIfEntitledToReadDMSDoc($dms_id);
|
||||
|
||||
|
||||
// Set filename to be used on downlaod
|
||||
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
|
||||
|
||||
|
||||
// Download file
|
||||
$this->dmslib->download($dms_id, $filename);
|
||||
}
|
||||
@@ -320,7 +320,12 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
foreach ($studiengang_kz_arr as $studiengang_kz)
|
||||
{
|
||||
// Get STGL mail address, if available, otherwise get assistance mail address
|
||||
list ($to, $vorname) = $this->_getSTGLMailAddress($studiengang_kz);
|
||||
$stgmail = $this->_getSTGLMailAddress($studiengang_kz);
|
||||
|
||||
if(isSuccess($stgmail) && hasData($stgmail))
|
||||
list ($to, $vorname) = getData($stgmail)[0];
|
||||
else
|
||||
show_error ('Failed retrieving DegreeProgram Mail');
|
||||
|
||||
// Get full name of lector
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
@@ -361,24 +366,28 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
$result = $this->StudiengangModel->getLeitung($stg_kz);
|
||||
|
||||
// Get STGL mail address, if available
|
||||
if (hasData($result))
|
||||
if (isSuccess($result) && hasData($result))
|
||||
{
|
||||
return array(
|
||||
return success(array(
|
||||
$result->retval[0]->uid. '@'. DOMAIN,
|
||||
$result->retval[0]->vorname
|
||||
);
|
||||
));
|
||||
}
|
||||
// ...otherwise get assistance mail address
|
||||
else
|
||||
{
|
||||
$result = $this->StudiengangModel->load($stg_kz);
|
||||
|
||||
if (hasData($result))
|
||||
if (isSuccess($result) && hasData($result))
|
||||
{
|
||||
return array(
|
||||
return success(array(
|
||||
$result->retval[0]->email,
|
||||
''
|
||||
);
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
return error('Keine E-Mail für diesen Stg gefunden');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,15 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
{
|
||||
const BERECHTIGUNG_ANRECHNUNG_EMPFEHLEN = 'lehre/anrechnung_empfehlen';
|
||||
|
||||
|
||||
const APPROVE_ANRECHNUNG_URI = '/lehre/anrechnung/ApproveAnrechnungUebersicht';
|
||||
|
||||
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF';
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
|
||||
const ANRECHNUNGSTATUS_APPROVED = 'approved';
|
||||
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
@@ -25,24 +25,24 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
'dontRecommend' => 'lehre/anrechnung_empfehlen:rw'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// Load models
|
||||
$this->load->model('education/Anrechnung_model', 'AnrechnungModel');
|
||||
$this->load->model('education/Anrechnungstatus_model', 'AnrechnungstatusModel');
|
||||
$this->load->model('content/DmsVersion_model', 'DmsVersionModel');
|
||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
|
||||
|
||||
// Load libraries
|
||||
$this->load->library('WidgetLib');
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AnrechnungLib');
|
||||
$this->load->library('DmsLib');
|
||||
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('form');
|
||||
$this->load->helper('url');
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
@@ -54,12 +54,12 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
'table'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
$this->_setAuthUID();
|
||||
|
||||
|
||||
$this->setControllerId();
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
// Get study semester
|
||||
@@ -70,14 +70,14 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
$result = $this->StudiensemesterModel->getNearest();
|
||||
$studiensemester_kurzbz = getData($result)[0]->studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
|
||||
$viewData = array(
|
||||
'studiensemester_selected' => $studiensemester_kurzbz
|
||||
);
|
||||
|
||||
|
||||
$this->load->view('lehre/anrechnung/reviewAnrechnungUebersicht.php', $viewData);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Recommend Anrechnungen.
|
||||
*/
|
||||
@@ -103,7 +103,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Output json to ajax
|
||||
if (isset($json) && !isEmptyArray($json))
|
||||
{
|
||||
@@ -123,19 +123,19 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
return $this->outputJsonError($this->p->t('ui', 'errorNichtAusgefuehrt'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Dont recommend Anrechnungen.
|
||||
*/
|
||||
public function dontRecommend()
|
||||
{
|
||||
$data = $this->input->post('data');
|
||||
|
||||
|
||||
if(isEmptyArray($data))
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Übertragen der Daten.');
|
||||
}
|
||||
|
||||
|
||||
foreach ($data as $item)
|
||||
{
|
||||
// Approve Anrechnung
|
||||
@@ -149,7 +149,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Output json to ajax
|
||||
if (isset($json) && !isEmptyArray($json))
|
||||
{
|
||||
@@ -158,7 +158,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
{
|
||||
show_error('Failed sending emails');
|
||||
}
|
||||
|
||||
|
||||
return $this->outputJsonSuccess($json);
|
||||
}
|
||||
else
|
||||
@@ -166,7 +166,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
return $this->outputJsonError($this->p->t('ui', 'errorNichtAusgefuehrt'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Download and open uploaded document (Nachweisdokument).
|
||||
*/
|
||||
@@ -178,28 +178,28 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
{
|
||||
show_error('Wrong parameter');
|
||||
}
|
||||
|
||||
|
||||
// Check if user is entitled to read dms doc
|
||||
self::_checkIfEntitledToReadDMSDoc($dms_id);
|
||||
|
||||
|
||||
// Set filename to be used on downlaod
|
||||
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
|
||||
|
||||
|
||||
// Download file
|
||||
$this->dmslib->download($dms_id, $filename);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 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');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if user is entitled to read dms doc
|
||||
* @param $dms_id
|
||||
@@ -207,15 +207,15 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
private function _checkIfEntitledToReadDMSDoc($dms_id)
|
||||
{
|
||||
$result = $this->AnrechnungModel->loadWhere(array('dms_id' => $dms_id));
|
||||
|
||||
|
||||
if(!$result = getData($result)[0])
|
||||
{
|
||||
show_error('Failed retrieving Anrechnung');
|
||||
}
|
||||
|
||||
|
||||
$result = $this->LehrveranstaltungModel
|
||||
->getLecturersByLv($result->studiensemester_kurzbz, $result->lehrveranstaltung_id);
|
||||
|
||||
|
||||
if($result = getData($result))
|
||||
{
|
||||
$entitled_lector_arr = array_column($result, 'uid');
|
||||
@@ -225,10 +225,10 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
show_error('You are not entitled to read this document');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send mails to STGL (if not present then to STGL assistance)
|
||||
* @param $mail_params
|
||||
@@ -239,36 +239,41 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
{
|
||||
// Get studiengaenge
|
||||
$studiengang_kz_arr = array();
|
||||
|
||||
|
||||
foreach ($mail_params as $item)
|
||||
{
|
||||
$this->AnrechnungModel->addSelect('studiengang_kz');
|
||||
$this->AnrechnungModel->addJoin('public.tbl_prestudent', 'prestudent_id');
|
||||
|
||||
|
||||
$studiengang_kz_arr[]= $this->AnrechnungModel->load($item['anrechnung_id'])->retval[0]->studiengang_kz;
|
||||
}
|
||||
|
||||
|
||||
$studiengang_kz_arr = array_unique($studiengang_kz_arr);
|
||||
|
||||
|
||||
// Send mail to STGL of each studiengang
|
||||
foreach ($studiengang_kz_arr as $studiengang_kz)
|
||||
{
|
||||
// Get STGL mail address, if available, otherwise get assistance mail address
|
||||
list ($to, $vorname) = $this->_getSTGLMailAddress($studiengang_kz);
|
||||
|
||||
$stgmail = $this->_getSTGLMailAddress($studiengang_kz);
|
||||
|
||||
if(isSuccess($stgmail) && hasData($stgmail))
|
||||
list ($to, $vorname) = getData($stgmail)[0];
|
||||
else
|
||||
show_error ('Failed retrieving DegreeProgram Mail');
|
||||
|
||||
// Get full name of lector
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
if (!$lector_name = getData($this->PersonModel->getFullName($this->_uid)))
|
||||
{
|
||||
show_error ('Failed retrieving person');
|
||||
}
|
||||
|
||||
|
||||
// Link to Antrag genehmigen
|
||||
$url =
|
||||
CIS_ROOT. 'cis/index.php?menu='.
|
||||
CIS_ROOT. 'cis/menu.php?content_id=&content='.
|
||||
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
|
||||
|
||||
|
||||
// Prepare mail content
|
||||
$body_fields = array(
|
||||
'vorname' => $vorname,
|
||||
@@ -276,7 +281,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
'empfehlung' => $empfehlung ? 'positive' : 'negative',
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
|
||||
|
||||
sendSanchoMail(
|
||||
'AnrechnungEmpfehlungAbgeben',
|
||||
$body_fields,
|
||||
@@ -284,37 +289,41 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Get STGL mail address, if available, otherwise get assistance mail address
|
||||
private function _getSTGLMailAddress($stg_kz)
|
||||
{
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
$result = $this->StudiengangModel->getLeitung($stg_kz);
|
||||
|
||||
|
||||
// Get STGL mail address, if available
|
||||
if (hasData($result))
|
||||
if (isSuccess($result) && hasData($result))
|
||||
{
|
||||
return array(
|
||||
return success(array(
|
||||
$result->retval[0]->uid. '@'. DOMAIN,
|
||||
$result->retval[0]->vorname
|
||||
);
|
||||
));
|
||||
}
|
||||
// ...otherwise get assistance mail address
|
||||
else
|
||||
{
|
||||
$result = $this->StudiengangModel->load($stg_kz);
|
||||
|
||||
if (hasData($result))
|
||||
|
||||
if (isSuccess($result) && hasData($result))
|
||||
{
|
||||
return array(
|
||||
return success(array(
|
||||
$result->retval[0]->email,
|
||||
''
|
||||
);
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
return error('Keine E-Mail für diesen Stg gefunden');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ class InfoCenter extends Auth_Controller
|
||||
const INDEX_PAGE = 'index';
|
||||
const FREIGEGEBEN_PAGE = 'freigegeben';
|
||||
const REIHUNGSTESTABSOLVIERT_PAGE = 'reihungstestAbsolviert';
|
||||
const ABGEWIESEN_PAGE = 'abgewiesen';
|
||||
const SHOW_DETAILS_PAGE = 'showDetails';
|
||||
const SHOW_ZGV_DETAILS_PAGE = 'showZGVDetails';
|
||||
const ZGV_UBERPRUEFUNG_PAGE = 'ZGVUeberpruefung';
|
||||
@@ -107,6 +108,7 @@ class InfoCenter extends Auth_Controller
|
||||
array(
|
||||
'index' => 'infocenter:r',
|
||||
'freigegeben' => 'infocenter:r',
|
||||
'abgewiesen' => 'infocenter:r',
|
||||
'reihungstestAbsolviert' => 'infocenter:r',
|
||||
'showDetails' => 'infocenter:r',
|
||||
'showZGVDetails' => 'lehre/zgvpruefung:r',
|
||||
@@ -203,6 +205,16 @@ class InfoCenter extends Auth_Controller
|
||||
$this->load->view('system/infocenter/infocenterFreigegeben.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Abgewiesen page of the InfoCenter tool
|
||||
*/
|
||||
public function abgewiesen()
|
||||
{
|
||||
$this->_setNavigationMenu(self::ABGEWIESEN_PAGE); // define the navigation menu for this page
|
||||
|
||||
$this->load->view('system/infocenter/infocenterAbgewiesen.php');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -548,8 +560,10 @@ class InfoCenter extends Auth_Controller
|
||||
/**
|
||||
* Sendet bei einer neuen ZGV Prüfung die Mail raus an den Studiengang
|
||||
*/
|
||||
private function sendZgvMail($mail, $typ){
|
||||
private function sendZgvMail($mail, $typ, $person){
|
||||
$data = array(
|
||||
'vorname' => $person->vorname,
|
||||
'nachname' => $person->nachname,
|
||||
'link' => site_url('system/infocenter/ZGVUeberpruefung')
|
||||
);
|
||||
|
||||
@@ -645,6 +659,16 @@ class InfoCenter extends Auth_Controller
|
||||
if (isEmptyString($prestudent_id) || isEmptyString($person_id))
|
||||
$this->terminateWithJsonError('Prestudentid OR/AND Personid missing');
|
||||
|
||||
$person = $this->PersonModel->load($person_id);
|
||||
|
||||
if (isError($person))
|
||||
$this->terminateWithJsonError(getError($person));
|
||||
|
||||
if (!hasData($person))
|
||||
$this->terminateWithJsonError('Person existiert nicht.');
|
||||
|
||||
$person = getData($person)[0];
|
||||
|
||||
$zgv = $this->ZGVPruefungStatusModel->getZgvStatusByPrestudent($prestudent_id);
|
||||
|
||||
$data = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
|
||||
@@ -676,7 +700,7 @@ class InfoCenter extends Auth_Controller
|
||||
$this->_log($person_id, 'updatezgv', array($zgv[0]->zgvpruefung_id, 'pruefung_stg'));
|
||||
|
||||
if (isSuccess($insert))
|
||||
$this->sendZgvMail($mail, $typ);
|
||||
$this->sendZgvMail($mail, $typ, $person);
|
||||
elseif (isError($insert))
|
||||
$this->terminateWithJsonError('Fehler beim Speichern');
|
||||
}else
|
||||
@@ -702,7 +726,7 @@ class InfoCenter extends Auth_Controller
|
||||
$this->_log($person_id, 'newzgv', array($zgvpruefung_id));
|
||||
|
||||
if (isSuccess($result))
|
||||
$this->sendZgvMail($mail, $typ);
|
||||
$this->sendZgvMail($mail, $typ, $person);
|
||||
elseif (isError($result))
|
||||
$this->terminateWithJsonError('Fehler beim Speichern');
|
||||
}
|
||||
@@ -921,7 +945,8 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$this->_log($person_id, 'freigegeben', $logparams);
|
||||
|
||||
$this->_sendFreigabeMail($prestudent_id);
|
||||
if (is_numeric($statusgrund_id) || $logdata['studiengang_typ'] === 'm')
|
||||
$this->_sendFreigabeMail($prestudent_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1199,6 +1224,10 @@ class InfoCenter extends Auth_Controller
|
||||
{
|
||||
$this->_setNavigationMenu(self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
}
|
||||
elseif (strpos($navigation_page, self::ABGEWIESEN_PAGE) !== false)
|
||||
{
|
||||
$this->_setNavigationMenu(self::ABGEWIESEN_PAGE);
|
||||
}
|
||||
|
||||
$this->outputJsonSuccess('success');
|
||||
}
|
||||
@@ -1422,12 +1451,14 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$reihungstestAbsolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$abgewiesenLink = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
|
||||
$currentFilterId = $this->input->get(self::FILTER_ID);
|
||||
if (isset($currentFilterId))
|
||||
{
|
||||
$freigegebenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$reihungstestAbsolviertLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$abgewiesenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
}
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
@@ -1466,6 +1497,18 @@ class InfoCenter extends Auth_Controller
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
20 // sort
|
||||
),
|
||||
'abgewiesen' => $this->navigationlib->oneLevel(
|
||||
'Abgewiesene', // description
|
||||
$abgewiesenLink, // link
|
||||
null, // children
|
||||
'close', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
30 // sort
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -1491,6 +1534,8 @@ class InfoCenter extends Auth_Controller
|
||||
}
|
||||
if ($origin_page === self::ZGV_UBERPRUEFUNG_PAGE)
|
||||
$link = site_url(self::ZGV_UEBERPRUEFUNG_URI);
|
||||
if ($origin_page === self::ABGEWIESEN_PAGE)
|
||||
$link = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
@@ -1528,6 +1573,7 @@ class InfoCenter extends Auth_Controller
|
||||
$homeLink = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE);
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$absolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$abgewiesenLink = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
{
|
||||
@@ -1586,6 +1632,24 @@ class InfoCenter extends Auth_Controller
|
||||
)
|
||||
);
|
||||
}
|
||||
if($page == self::ABGEWIESEN_PAGE)
|
||||
{
|
||||
$this->navigationlib->setSessionElementMenu(
|
||||
'abgewiesen',
|
||||
$this->navigationlib->oneLevel(
|
||||
'Abgewiesene', // description
|
||||
$abgewiesenLink, // link
|
||||
null, // children
|
||||
'close', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
40 // sort
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1656,9 +1720,15 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
if (isset($locked->retval[0]->uid))
|
||||
{
|
||||
$lockedby = $locked->retval[0]->uid;
|
||||
if ($lockedby !== $this->_uid)
|
||||
if (!$lockedby = getData($this->PersonModel->getFullName($locked->retval[0]->uid)))
|
||||
{
|
||||
show_error('Failed retrieving person');
|
||||
}
|
||||
|
||||
if ($locked->retval[0]->uid !== $this->_uid)
|
||||
{
|
||||
$lockedbyother = true;
|
||||
}
|
||||
}
|
||||
|
||||
$stammdaten = $this->PersonModel->getPersonStammdaten($person_id, true);
|
||||
|
||||
@@ -58,21 +58,42 @@ class Issues extends Auth_Controller
|
||||
{
|
||||
$issue_ids = $this->input->post('issue_ids');
|
||||
$status_kurzbz = $this->input->post('status_kurzbz');
|
||||
$verarbeitetvon = $this->_uid;
|
||||
$user = $this->_uid;
|
||||
|
||||
$errors = array();
|
||||
foreach ($issue_ids as $issue_id)
|
||||
{
|
||||
$issueRes = $this->issueslib->changeIssueStatus($issue_id, $status_kurzbz, $verarbeitetvon);
|
||||
switch ($status_kurzbz)
|
||||
{
|
||||
case IssuesLib::STATUS_NEU:
|
||||
$changeIssueMethod = 'setNeu';
|
||||
break;
|
||||
case IssuesLib::STATUS_IN_BEARBEITUNG:
|
||||
$changeIssueMethod = 'setInBearbeitung';
|
||||
break;
|
||||
case IssuesLib::STATUS_BEHOBEN:
|
||||
$changeIssueMethod = 'setBehoben';
|
||||
break;
|
||||
default:
|
||||
$changeIssueMethod = null;
|
||||
break;
|
||||
}
|
||||
|
||||
if (isError($issueRes))
|
||||
$errors[] = getError($issueRes);
|
||||
if (isEmptyString($changeIssueMethod))
|
||||
$errors[] = error("Invalid issue status given");
|
||||
else
|
||||
{
|
||||
$issueRes = $this->issueslib->{$changeIssueMethod}($issue_id, $user);
|
||||
|
||||
if (isError($issueRes))
|
||||
$errors[] = getError($issueRes);
|
||||
}
|
||||
}
|
||||
|
||||
if (!isEmptyArray($errors))
|
||||
$this->outputJsonError(implode(", ", $errors));
|
||||
else
|
||||
$this->outputJsonSuccess("Status erfolgreich aktualisiert");
|
||||
$this->outputJsonSuccess("Status successfully refreshed");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -133,7 +154,7 @@ class Issues extends Auth_Controller
|
||||
|
||||
// add oes for which there is the "manage issues" Berechtigung
|
||||
if (!$oe_kurzbz_berechtigt = $this->permissionlib->getOE_isEntitledFor(self::BERECHTIGUNG_KURZBZ))
|
||||
show_error('Keine Berechtigung oder Fehler bei Berechtigungsprüfung');
|
||||
show_error('No permission or error when checking permissions');
|
||||
|
||||
$all_oe_kurzbz_berechtigt = array_unique(array_merge($oe_kurzbz_for_funktion, $oe_kurzbz_berechtigt));
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Interface defining method to implement for issue resolution checker (from core and extensions)
|
||||
*/
|
||||
interface IIssueResolvedChecker
|
||||
{
|
||||
/**
|
||||
* Checks if a issue of a certain type is resolved.
|
||||
* Classes for resolving a certain issue type implement this method.
|
||||
* @param array $params parameters needed for issue resolution
|
||||
* @return object with success(true) if issue resolved, success(false) otherwise
|
||||
*/
|
||||
public function checkIfIssueIsResolved($params);
|
||||
}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Controller for retrieving open issues and, if the issue condition is not met anymore, automatically set it to resolved
|
||||
*/
|
||||
abstract class IssueResolver_Controller extends JOB_Controller
|
||||
{
|
||||
const ISSUES_FOLDER = 'issues';
|
||||
const CHECK_ISSUE_RESOLVED_METHOD_NAME = 'checkIfIssueIsResolved';
|
||||
|
||||
protected $_codeLibMappings;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->load->model('system/Issue_model', 'IssueModel');
|
||||
|
||||
$this->load->library('IssuesLib');
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes issue resolution.
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
$this->logInfo("Issue resolve job started");
|
||||
|
||||
// load open issues with given errorcodes
|
||||
$openIssuesRes = $this->IssueModel->getOpenIssues(array_keys($this->_codeLibMappings));
|
||||
|
||||
// log error if occured
|
||||
if (isError($openIssuesRes))
|
||||
{
|
||||
$this->logError(getError($openIssuesRes));
|
||||
}
|
||||
else
|
||||
{
|
||||
// log info if no data found
|
||||
if (!hasData($openIssuesRes))
|
||||
{
|
||||
$this->logInfo("No open issues found");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$openIssues = getData($openIssuesRes);
|
||||
|
||||
foreach ($openIssues as $issue)
|
||||
{
|
||||
if (isset($this->_codeLibMappings[$issue->fehlercode]))
|
||||
{
|
||||
$libName = $this->_codeLibMappings[$issue->fehlercode];
|
||||
|
||||
// add person id and oe kurzbz automatically as params, merge it with additional params
|
||||
// decode bewerbung_parameter into assoc array
|
||||
$params = array_merge(
|
||||
array('issue_id' => $issue->issue_id, 'issue_person_id' => $issue->person_id, 'issue_oe_kurzbz' => $issue->oe_kurzbz),
|
||||
isset($issue->behebung_parameter) ? json_decode($issue->behebung_parameter, true) : array()
|
||||
);
|
||||
|
||||
// if called from extension (extension name set), path includes extension names, otherwise it is the core library folder
|
||||
$libRootPath = isset($this->_extensionName) ? 'extensions/' . $this->_extensionName . '/' : '';
|
||||
$issuesLibPath = $libRootPath . self::ISSUES_FOLDER . '/';
|
||||
$issuesLibFilePath = DOC_ROOT . 'application/' . $libRootPath . 'libraries/' . self::ISSUES_FOLDER . '/' . $libName . '.php';
|
||||
|
||||
// check if library file exists
|
||||
if (!file_exists($issuesLibFilePath))
|
||||
{
|
||||
// log error and continue with next issue if not
|
||||
$this->logError("Issue library file " . $issuesLibFilePath . " does not exist");
|
||||
continue;
|
||||
}
|
||||
|
||||
// load library connected to fehlercode
|
||||
$this->load->library(
|
||||
$issuesLibPath . $libName
|
||||
);
|
||||
|
||||
$lowercaseLibName = mb_strtolower($libName);
|
||||
|
||||
// check if method is defined in libary class
|
||||
if (!is_callable(array($this->{$lowercaseLibName}, self::CHECK_ISSUE_RESOLVED_METHOD_NAME)))
|
||||
{
|
||||
// log error and continue with next issue if not
|
||||
$this->logError("Method " . self::CHECK_ISSUE_RESOLVED_METHOD_NAME . " is not defined in library $lowercaseLibName");
|
||||
continue;
|
||||
}
|
||||
|
||||
// call the function for checking for issue resolution
|
||||
$issueResolvedRes = $this->{$lowercaseLibName}->{self::CHECK_ISSUE_RESOLVED_METHOD_NAME}($params);
|
||||
|
||||
if (isError($issueResolvedRes))
|
||||
{
|
||||
$this->logError(getError($issueResolvedRes));
|
||||
}
|
||||
else
|
||||
{
|
||||
$issueResolvedData = getData($issueResolvedRes);
|
||||
|
||||
if ($issueResolvedData === true)
|
||||
{
|
||||
// set issue to resolved if needed
|
||||
$behobenRes = $this->issueslib->setBehoben($issue->issue_id, null);
|
||||
|
||||
if (isError($behobenRes))
|
||||
$this->logError(getError($behobenRes));
|
||||
else
|
||||
$this->logInfo("Issue " . $issue->issue_id . " successfully resolved");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->logInfo("Issue resolve job ended");
|
||||
}
|
||||
}
|
||||
@@ -314,32 +314,40 @@ function sanitizeProblemChars($str)
|
||||
$enc = 'UTF-8';
|
||||
|
||||
$acentos = array(
|
||||
'A' => '/À|Á|Â|Ã|Å/',
|
||||
'A' => '/À|Á|Â|Ã|Å|Ă|Ǎ/',
|
||||
'Ae' => '/Ä/',
|
||||
'a' => '/à|á|â|ã|å/',
|
||||
'ae'=> '/ä/',
|
||||
'C' => '/Ç/',
|
||||
'c' => '/ç/',
|
||||
'a' => '/à|á|â|ã|å|ă|ǎ/',
|
||||
'ae' => '/ä/',
|
||||
'C' => '/Ç|Č/',
|
||||
'c' => '/ç|č/',
|
||||
'E' => '/È|É|Ê|Ë/',
|
||||
'e' => '/è|é|ê|ë/',
|
||||
'I' => '/Ì|Í|Î|Ï/',
|
||||
'i' => '/ì|í|î|ï/',
|
||||
'N' => '/Ñ/',
|
||||
'I' => '/Ì|Í|Î|Ï|Ǐ/',
|
||||
'i' => '/ì|í|î|ï|ǐ/',
|
||||
'N' => '/Ñ|Ň|ň/',
|
||||
'n' => '/ñ/',
|
||||
'O' => '/Ò|Ó|Ô|Õ/',
|
||||
'O' => '/Ò|Ó|Ô|Õ|Ǒ/',
|
||||
'Oe' => '/Ö/',
|
||||
'o' => '/ò|ó|ô|õ/',
|
||||
'o' => '/ò|ó|ô|õ|ǒ/',
|
||||
'oe' => '/ö/',
|
||||
'U' => '/Ù|Ú|Û/',
|
||||
'R' => '/Ř/',
|
||||
'r' => '/ř/',
|
||||
'S' => '/Š/',
|
||||
's' => '/š/',
|
||||
'T' => '/Ť/',
|
||||
't' => '/ť/',
|
||||
'U' => '/Ù|Ú|Û|Ŭ|Ǔ/',
|
||||
'Ue' => '/Ü/',
|
||||
'u' => '/ù|ú|û/',
|
||||
'u' => '/ù|ú|û|ŭ|ǔ/',
|
||||
'ue' => '/ü/',
|
||||
'Y' => '/Ý/',
|
||||
'y' => '/ý|ÿ/',
|
||||
'Z' => '/Ž/',
|
||||
'z' => '/ž/',
|
||||
'a.' => '/ª/',
|
||||
'o.' => '/º/',
|
||||
'ss' => '/ß/'
|
||||
);
|
||||
|
||||
return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
|
||||
return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
|
||||
}
|
||||
|
||||
@@ -39,6 +39,24 @@ function printPageTitle($title)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the meta tag http-equiv refresh having as content the value of the given parameter
|
||||
*/
|
||||
function printRefreshMeta($refresh)
|
||||
{
|
||||
if ($refresh != null)
|
||||
{
|
||||
if (is_numeric($refresh) && $refresh > 0)
|
||||
{
|
||||
echo '<meta http-equiv="refresh" content="'.$refresh.'">';
|
||||
}
|
||||
else
|
||||
{
|
||||
show_error('The provided refresh parameter has to be a number greater then 0');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates tags for the style sheets you want to include, the parameter could by a string or an array of strings
|
||||
*/
|
||||
|
||||
@@ -89,6 +89,7 @@ class AnrechnungLib
|
||||
$antrag_data->vorname = $person->vorname;
|
||||
$antrag_data->nachname = $person->nachname;
|
||||
$antrag_data->matrikelnr = $student->matrikelnr;
|
||||
$antrag_data->studiengang_kz = $studiengang->studiengang_kz;
|
||||
$antrag_data->stg_bezeichnung = $studiengang->bezeichnung;
|
||||
$antrag_data->lektoren = $lv_lektoren_arr;
|
||||
$antrag_data->zgv = $latest_zgv_bezeichnung;
|
||||
|
||||
@@ -62,17 +62,17 @@ class IssuesLib
|
||||
* @param array $fehlertext_params params for sprint replace of error text in system.tbl_fehler
|
||||
* @return object success or error
|
||||
*/
|
||||
public function addFhcIssue($fehler_kurzbz, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null)
|
||||
public function addFhcIssue($fehler_kurzbz, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null, $resolution_params = null)
|
||||
{
|
||||
$fehlerRes = $this->_ci->FehlerModel->loadWhere(array('fehler_kurzbz' => $fehler_kurzbz));
|
||||
|
||||
if (hasData($fehlerRes))
|
||||
{
|
||||
$fehlercode = getData($fehlerRes)[0]->fehlercode;
|
||||
return $this->_addIssue($fehlercode, $person_id, $oe_kurzbz, $fehlertext_params);
|
||||
return $this->_addIssue($fehlercode, $person_id, $oe_kurzbz, $fehlertext_params, $resolution_params);
|
||||
}
|
||||
else
|
||||
return error("Fehler $fehler_kurzbz nicht gefunden");
|
||||
return error("Error $fehler_kurzbz not found");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,13 +82,13 @@ class IssuesLib
|
||||
* @param int $person_id
|
||||
* @param int $oe_kurzbz
|
||||
* @param array $fehlertext_params params for replacement of parts of error text
|
||||
* @param bool $force_predefined if true, only predefined external issues are added
|
||||
* @param bool $force_predefined if true, only predefined (with entry in fehler table) external issues are added
|
||||
* @return object success or error
|
||||
*/
|
||||
public function addExternalIssue($fehlercode_extern, $inhalt_extern, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null, $force_predefined = false)
|
||||
public function addExternalIssue($fehlercode_extern, $inhalt_extern, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null)
|
||||
{
|
||||
if (isEmptyString($fehlercode_extern))
|
||||
return error("fehlercode_extern fehlt");
|
||||
return error("fehlercode_extern missing");
|
||||
|
||||
// get external fehlercode (unique for each app)
|
||||
$this->_ci->FehlerModel->addSelect('fehlercode');
|
||||
@@ -102,19 +102,13 @@ class IssuesLib
|
||||
if (isError($fehlerRes))
|
||||
return $fehlerRes;
|
||||
|
||||
$fehlerData = getData($fehlerRes)[0];
|
||||
|
||||
// check if there is a predefined custom error for the external issue
|
||||
if (hasData($fehlerRes))
|
||||
{
|
||||
$fehlerData = getData($fehlerRes)[0];
|
||||
// if found, use the code
|
||||
$fehlercode = $fehlerData->fehlercode;
|
||||
}
|
||||
elseif ($force_predefined === true)
|
||||
{
|
||||
// only added if predefined
|
||||
return success("No definition found - not added");
|
||||
}
|
||||
else
|
||||
{
|
||||
// if predefined error is not found, insert with fallback code
|
||||
@@ -122,20 +116,70 @@ class IssuesLib
|
||||
}
|
||||
|
||||
// add external issue
|
||||
return $this->_addIssue($fehlercode, $person_id, $oe_kurzbz, $fehlertext_params, $fehlercode_extern, $inhalt_extern);
|
||||
return $this->_addIssue($fehlercode, $person_id, $oe_kurzbz, $fehlertext_params, null, $fehlercode_extern, $inhalt_extern);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set issue to resolved.
|
||||
* @param int $issue_id
|
||||
* @param string $user uid of issue resolver
|
||||
* @return object success or error
|
||||
*/
|
||||
public function setBehoben($issue_id, $user)
|
||||
{
|
||||
$data = array(
|
||||
'status_kurzbz' => self::STATUS_BEHOBEN,
|
||||
'verarbeitetvon' => $user,
|
||||
'verarbeitetamum' => date('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
return $this->_changeIssueStatus($issue_id, $data, $user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set issue to in progress.
|
||||
* @param int $issue_id
|
||||
* @param string $user uid of issue resovler
|
||||
* @return object success or error
|
||||
*/
|
||||
public function setInBearbeitung($issue_id, $user)
|
||||
{
|
||||
$data = array(
|
||||
'status_kurzbz' => self::STATUS_IN_BEARBEITUNG,
|
||||
'verarbeitetvon' => $user
|
||||
);
|
||||
|
||||
return $this->_changeIssueStatus($issue_id, $data, $user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set issue to new.
|
||||
* @param int $issue_id
|
||||
* @param string $user uid of issue resolver
|
||||
* @return object success or error
|
||||
*/
|
||||
public function setNeu($issue_id, $user)
|
||||
{
|
||||
$data = array(
|
||||
'status_kurzbz' => self::STATUS_NEU,
|
||||
'verarbeitetvon' => null,
|
||||
'verarbeitetamum' => null
|
||||
);
|
||||
|
||||
return $this->_changeIssueStatus($issue_id, $data, $user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes status of an issue.
|
||||
* @param int $issue_id
|
||||
* @param string $status_kurzbz the new status
|
||||
* @param string $verarbeitetvon uid of person changing the status (needed for in Bearbeitung and behoben)
|
||||
* @param array $sdata the data to save, including status
|
||||
* @param string $user uid of person changing the status (needed for in Bearbeitung and behoben)
|
||||
* @return success or error
|
||||
*/
|
||||
public function changeIssueStatus($issue_id, $status_kurzbz, $verarbeitetvon = null)
|
||||
private function _changeIssueStatus($issue_id, $data, $user)
|
||||
{
|
||||
if (!isset($issue_id) || !is_numeric($issue_id))
|
||||
return error("Issue Id muss korrekt gesetzt sein.");
|
||||
return error("Issue Id must be set correctly.");
|
||||
|
||||
// check if given status is same as existing
|
||||
$this->_ci->IssueModel->addSelect('status_kurzbz');
|
||||
@@ -143,39 +187,14 @@ class IssuesLib
|
||||
|
||||
if (hasData($currStatus))
|
||||
{
|
||||
if (getData($currStatus)[0]->status_kurzbz == $status_kurzbz)
|
||||
return success("Gleicher Status bereits gesetzt");
|
||||
if (getData($currStatus)[0]->status_kurzbz == $data['status_kurzbz'])
|
||||
return success("Same status already set");
|
||||
}
|
||||
else
|
||||
return error("Fehler beim Holen des Status");
|
||||
return error("Error when getting status");
|
||||
|
||||
$data = array(
|
||||
'status_kurzbz' => $status_kurzbz,
|
||||
'updatevon' => $verarbeitetvon,
|
||||
'updateamum' => date('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
if ($status_kurzbz == self::STATUS_NEU)
|
||||
{
|
||||
|
||||
$data['verarbeitetvon'] = null;
|
||||
}
|
||||
|
||||
if ($status_kurzbz == self::STATUS_NEU || $status_kurzbz == self::STATUS_IN_BEARBEITUNG)
|
||||
{
|
||||
$data['verarbeitetamum'] = null;
|
||||
}
|
||||
|
||||
if ($status_kurzbz == self::STATUS_IN_BEARBEITUNG || $status_kurzbz == self::STATUS_BEHOBEN)
|
||||
{
|
||||
if (isset($verarbeitetvon))
|
||||
$data['verarbeitetvon'] = $verarbeitetvon;
|
||||
else
|
||||
return error("Verarbeitetvon nicht gesetzt");
|
||||
}
|
||||
|
||||
if ($status_kurzbz == self::STATUS_BEHOBEN)
|
||||
$data['verarbeitetamum'] = date('Y-m-d H:i:s');
|
||||
$data['updatevon'] = $user;
|
||||
$data['updateamum'] = date('Y-m-d H:i:s');
|
||||
|
||||
return $this->_ci->IssueModel->update(
|
||||
array(
|
||||
@@ -191,14 +210,15 @@ class IssuesLib
|
||||
* @param int $person_id
|
||||
* @param string $oe_kurzbz
|
||||
* @param array $fehlertext_params
|
||||
* @param string $resolution_params
|
||||
* @param string $fehlercode_extern
|
||||
* @param string $inhalt_extern
|
||||
* @return object success or error
|
||||
*/
|
||||
private function _addIssue($fehlercode, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null, $fehlercode_extern = null, $inhalt_extern = null)
|
||||
private function _addIssue($fehlercode, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null, $resolution_params = null, $fehlercode_extern = null, $inhalt_extern = null)
|
||||
{
|
||||
if (isEmptyString($person_id) && isEmptyString($oe_kurzbz))
|
||||
return error("Person_id oder oe_kurzbz muss gesetzt sein.");
|
||||
return error("Person_id or oe_kurzbz must be set.");
|
||||
|
||||
// get fehlertextVorlage and replace it with params
|
||||
$fehlerRes = $this->_ci->FehlerModel->load($fehlercode);
|
||||
@@ -218,6 +238,20 @@ class IssuesLib
|
||||
|
||||
if ($openIssueCount == 0)
|
||||
{
|
||||
if (isset($resolution_params))
|
||||
{
|
||||
if (is_array($resolution_params))
|
||||
{
|
||||
foreach ($resolution_params as $resolution_key => $resolution_param)
|
||||
{
|
||||
if (!is_string($resolution_key))
|
||||
return error("Invalid parameter for resolution, must be an associative array");
|
||||
}
|
||||
}
|
||||
else
|
||||
return error("Invalid parameters for resolution");
|
||||
}
|
||||
|
||||
return $this->_ci->IssueModel->insert(
|
||||
array(
|
||||
'fehlercode' => $fehlercode,
|
||||
@@ -228,6 +262,7 @@ class IssuesLib
|
||||
'oe_kurzbz' => $oe_kurzbz,
|
||||
'datum' => date('Y-m-d H:i:s'),
|
||||
'status_kurzbz' => self::STATUS_NEU,
|
||||
'behebung_parameter' => isset($resolution_params) ? json_encode($resolution_params) : null,
|
||||
'insertvon' => $this->_insertvon
|
||||
)
|
||||
);
|
||||
@@ -236,9 +271,9 @@ class IssuesLib
|
||||
return success($openIssueCount);
|
||||
}
|
||||
else
|
||||
return error("Anzahl offener Issues konnte nicht ermittelt werden.");
|
||||
return error("Number of open issues could not be determined");
|
||||
}
|
||||
else
|
||||
return error("Fehler $fehlercode nicht gefunden");
|
||||
return error("Error $fehlercode could not be found");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ class VorlageLib
|
||||
if (!hasData($vorlage))
|
||||
{
|
||||
// Builds where clause
|
||||
$where = $this->_where($vorlage_kurzbz, $orgform_kurzbz, $sprache);
|
||||
$where = $this->_where($vorlage_kurzbz);
|
||||
|
||||
$vorlage = $this->ci->organisationseinheitlib->treeSearch(
|
||||
'public',
|
||||
@@ -134,20 +134,11 @@ class VorlageLib
|
||||
/**
|
||||
* _where
|
||||
*/
|
||||
private function _where($vorlage_kurzbz, $orgform_kurzbz, $sprache)
|
||||
private function _where($vorlage_kurzbz)
|
||||
{
|
||||
// Builds where clause
|
||||
$where = "vorlage_kurzbz = ".$this->ci->VorlageModel->escape($vorlage_kurzbz);
|
||||
|
||||
if (is_null($sprache))
|
||||
{
|
||||
$where .= " AND sprache IS NULL";
|
||||
}
|
||||
else
|
||||
{
|
||||
$where .= " AND sprache = ".$this->ci->VorlageModel->escape($sprache);
|
||||
}
|
||||
|
||||
$where .= " AND aktiv = true";
|
||||
|
||||
return $where;
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Bisio Zweck does not exist
|
||||
*/
|
||||
class CORE_INOUT_0001 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['bisio_id']) || !is_numeric($params['bisio_id']))
|
||||
return error('Bisio Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('codex/Bisiozweck_model', 'BisiozweckModel');
|
||||
|
||||
// get all bisio Zwecke
|
||||
$this->_ci->BisiozweckModel->addSelect('1');
|
||||
$bisiozweckRes = $this->_ci->BisiozweckModel->loadWhere(array('bisio_id' => $params['bisio_id']));
|
||||
|
||||
if (isError($bisiozweckRes))
|
||||
return $bisiozweckRes;
|
||||
|
||||
if (hasData($bisiozweckRes))
|
||||
return success(true); // resolved if bisio Zweck exists
|
||||
else
|
||||
return success(false); // not resolved if no bisio zweck
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* More than one Zweck for incoming
|
||||
*/
|
||||
class CORE_INOUT_0002 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['bisio_id']) || !is_numeric($params['bisio_id']))
|
||||
return error('Bisio Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('codex/Bisiozweck_model', 'BisiozweckModel');
|
||||
|
||||
// get all bisio Zwecke
|
||||
$this->_ci->BisiozweckModel->addSelect('1');
|
||||
$bisiozweckRes = $this->_ci->BisiozweckModel->loadWhere(array('bisio_id' => $params['bisio_id']));
|
||||
|
||||
if (isError($bisiozweckRes))
|
||||
return $bisiozweckRes;
|
||||
|
||||
if (hasData($bisiozweckRes))
|
||||
{
|
||||
if (count(getData($bisiozweckRes)) <= 1) // resolved if one bisio Zweck
|
||||
return success(true);
|
||||
else
|
||||
return success(false); // otherwise not resolved
|
||||
}
|
||||
else
|
||||
return success(true); // resolved if no bisio zweck
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Invalid Zweck for incoming
|
||||
*/
|
||||
class CORE_INOUT_0003 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['bisio_id']) || !is_numeric($params['bisio_id']))
|
||||
return error('Bisio Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('codex/Bisiozweck_model', 'BisiozweckModel');
|
||||
|
||||
// get all Zwecke
|
||||
$this->_ci->BisiozweckModel->addSelect('zweck_code');
|
||||
$bisiozweckRes = $this->_ci->BisiozweckModel->loadWhere(array('bisio_id' => $params['bisio_id']));
|
||||
|
||||
if (isError($bisiozweckRes))
|
||||
return $bisiozweckRes;
|
||||
|
||||
if (hasData($bisiozweckRes))
|
||||
{
|
||||
$bisiozweckData = getData($bisiozweckRes);
|
||||
|
||||
// resolved if Zweck is 1, 2 or 3
|
||||
if (count($bisiozweckData) == 1 && !in_array($bisiozweckData[0]->zweck_code, array(1, 2, 3)))
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Aufenthaltsförderung must exist if certain length of outgoing stay is exceeded
|
||||
*/
|
||||
class CORE_INOUT_0004 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['bisio_id']) || !is_numeric($params['bisio_id']))
|
||||
return error('Bisio Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('codex/Aufenthaltfoerderung_model', 'AufenthaltfoerderungModel');
|
||||
|
||||
// get all Zwecke
|
||||
$this->_ci->AufenthaltfoerderungModel->addSelect('tbl_aufenthaltfoerderung.aufenthaltfoerderung_code');
|
||||
$this->_ci->AufenthaltfoerderungModel->addJoin('bis.tbl_bisio_aufenthaltfoerderung', 'aufenthaltfoerderung_code');
|
||||
$this->_ci->AufenthaltfoerderungModel->addOrder('tbl_aufenthaltfoerderung.aufenthaltfoerderung_code');
|
||||
$bisioFoerderungRes = $this->_ci->AufenthaltfoerderungModel->loadWhere(array('bisio_id' => $params['bisio_id']));
|
||||
|
||||
if (isError($bisioFoerderungRes))
|
||||
return $bisioFoerderungRes;
|
||||
|
||||
if (hasData($bisioFoerderungRes))
|
||||
{
|
||||
// resolved if Aufenthaltsfoerderung exists
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_ci->load->model('codex/Bisio_model', 'BisioModel');
|
||||
|
||||
// get Bisio Aufenthaltsdauer
|
||||
$aufenthaltsdauerRes = $this->_ci->BisioModel->getAufenthaltsdauer($params['bisio_id']);
|
||||
|
||||
if (isError($aufenthaltsdauerRes))
|
||||
return $aufenthaltsdauerRes;
|
||||
|
||||
if (hasData($aufenthaltsdauerRes))
|
||||
{
|
||||
$aufenthaltsdauer = getData($aufenthaltsdauerRes);
|
||||
|
||||
// check if stay >= 29 days. If yes and no Aufenthaltsfoerderung - not resolved
|
||||
if ($aufenthaltsdauer >= 29)
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else // no Aufenthaltsdauer - not resolved
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* ECTS angerechnet must exist for outgoing if longer stay
|
||||
*/
|
||||
class CORE_INOUT_0005 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['bisio_id']) || !is_numeric($params['bisio_id']))
|
||||
return error('Bisio Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('codex/Bisio_model', 'BisioModel');
|
||||
|
||||
// get all Zwecke
|
||||
$this->_ci->BisioModel->addSelect('ects_angerechnet');
|
||||
$bisioRes = $this->_ci->BisioModel->loadWhere(array('bisio_id' => $params['bisio_id']));
|
||||
|
||||
if (isError($bisioRes))
|
||||
return $bisioRes;
|
||||
|
||||
if (hasData($bisioRes) && !isEmptyString(getData($bisioRes)[0]->ects_angerechnet))
|
||||
{
|
||||
// resolved if ects exists
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// get Bisio Aufenthaltsdauer
|
||||
$aufenthaltsdauerRes = $this->_ci->BisioModel->getAufenthaltsdauer($params['bisio_id']);
|
||||
|
||||
if (isError($aufenthaltsdauerRes))
|
||||
return $aufenthaltsdauerRes;
|
||||
|
||||
if (hasData($aufenthaltsdauerRes))
|
||||
{
|
||||
$aufenthaltsdauer = getData($aufenthaltsdauerRes);
|
||||
|
||||
// check if stay >= 29 days. If yes and no ects - not resolved
|
||||
if ($aufenthaltsdauer >= 29)
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else // no Aufenthaltsdauer - not resolved
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* ECTS erworben must exist for outgoing if longer stay
|
||||
*/
|
||||
class CORE_INOUT_0006 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['bisio_id']) || !is_numeric($params['bisio_id']))
|
||||
return error('Bisio Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('codex/Bisio_model', 'BisioModel');
|
||||
//$this->_ci->load->model('codex/Aufenthaltfoerderung_model', 'AufenthaltfoerderungModel');
|
||||
|
||||
// get all Zwecke
|
||||
$this->_ci->BisioModel->addSelect('ects_erworben');
|
||||
$bisioRes = $this->_ci->BisioModel->loadWhere(array('bisio_id' => $params['bisio_id']));
|
||||
|
||||
if (isError($bisioRes))
|
||||
return $bisioRes;
|
||||
|
||||
if (hasData($bisioRes) && !isEmptyString(getData($bisioRes)[0]->ects_erworben))
|
||||
{
|
||||
// resolved if ects exists
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// get Bisio Aufenthaltsdauer
|
||||
$aufenthaltsdauerRes = $this->_ci->BisioModel->getAufenthaltsdauer($params['bisio_id']);
|
||||
|
||||
if (isError($aufenthaltsdauerRes))
|
||||
return $aufenthaltsdauerRes;
|
||||
|
||||
if (hasData($aufenthaltsdauerRes))
|
||||
{
|
||||
$aufenthaltsdauer = getData($aufenthaltsdauerRes);
|
||||
|
||||
// check if stay >= 29 days. If yes and no ects - not resolved
|
||||
if ($aufenthaltsdauer >= 29)
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else // no Aufenthaltsdauer - not resolved
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* ZGV Datum in future
|
||||
*/
|
||||
class CORE_ZGV_0001 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['prestudent_id']) || !is_numeric($params['prestudent_id']))
|
||||
return error('Prestudent Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
// get zgvdatum of prestudent
|
||||
$this->_ci->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$this->_ci->PrestudentModel->addSelect('zgvdatum');
|
||||
$prestudentRes = $this->_ci->PrestudentModel->load($params['prestudent_id']);
|
||||
|
||||
if (isError($prestudentRes))
|
||||
return $prestudentRes;
|
||||
|
||||
if (hasData($prestudentRes))
|
||||
{
|
||||
$zgvdatum = getData($prestudentRes)[0]->zgvdatum;
|
||||
|
||||
if (isEmptyString($zgvdatum))
|
||||
return success(false);
|
||||
|
||||
// check if zgvdatum comes after today
|
||||
if ($zgvdatum > date('Y-m-d'))
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* ZGV Datum must be after Geburtsdatum
|
||||
*/
|
||||
class CORE_ZGV_0002 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['prestudent_id']) || !is_numeric($params['prestudent_id']))
|
||||
return error('Prestudent Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
// get zgvdatum of prestudent
|
||||
$this->_ci->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$this->_ci->PrestudentModel->addSelect('zgvdatum, gebdatum');
|
||||
$this->_ci->PrestudentModel->addJoin('public.tbl_person', 'person_id');
|
||||
$prestudentRes = $this->_ci->PrestudentModel->load($params['prestudent_id']);
|
||||
|
||||
if (isError($prestudentRes))
|
||||
return $prestudentRes;
|
||||
|
||||
if (hasData($prestudentRes))
|
||||
{
|
||||
$prestudentData = getData($prestudentRes)[0];
|
||||
|
||||
$zgvdatum = $prestudentData->zgvdatum;
|
||||
|
||||
if (isEmptyString($zgvdatum))
|
||||
return success(false);
|
||||
|
||||
$gebdatum = $prestudentData->gebdatum;
|
||||
|
||||
if (isEmptyString($gebdatum))
|
||||
return success(false);
|
||||
|
||||
// check if zgvdatum comes before geburtsdatum
|
||||
if ($zgvdatum < $gebdatum)
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* ZGV master Datum in future
|
||||
*/
|
||||
class CORE_ZGV_0003 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['prestudent_id']) || !is_numeric($params['prestudent_id']))
|
||||
return error('Prestudent Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
// get zgvdatum of prestudent
|
||||
$this->_ci->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$this->_ci->PrestudentModel->addSelect('zgvmadatum');
|
||||
$prestudentRes = $this->_ci->PrestudentModel->load($params['prestudent_id']);
|
||||
|
||||
if (isError($prestudentRes))
|
||||
return $prestudentRes;
|
||||
|
||||
if (hasData($prestudentRes))
|
||||
{
|
||||
$zgvdatum = getData($prestudentRes)[0]->zgvmadatum;
|
||||
|
||||
if (isEmptyString($zgvdatum))
|
||||
return success(false);
|
||||
|
||||
// check if zgvdatum comes after today
|
||||
if ($zgvdatum > date('Y-m-d'))
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* ZGV Datum should not be after ZGV master Datum
|
||||
*/
|
||||
class CORE_ZGV_0004 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['prestudent_id']) || !is_numeric($params['prestudent_id']))
|
||||
return error('Prestudent Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
// get zgvdatum of prestudent
|
||||
$this->_ci->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$this->_ci->PrestudentModel->addSelect('zgvdatum, zgvmadatum');
|
||||
$prestudentRes = $this->_ci->PrestudentModel->load($params['prestudent_id']);
|
||||
|
||||
if (isError($prestudentRes))
|
||||
return $prestudentRes;
|
||||
|
||||
if (hasData($prestudentRes))
|
||||
{
|
||||
$prestudentData = getData($prestudentRes)[0];
|
||||
|
||||
// get and compare zgvdatum and zgvmadatum
|
||||
$zgvdatum = $prestudentData->zgvdatum;
|
||||
|
||||
if (isEmptyString($zgvdatum))
|
||||
return success(false);
|
||||
|
||||
$zgvmadatum = $prestudentData->zgvmadatum;
|
||||
|
||||
if (isEmptyString($zgvmadatum))
|
||||
return success(false);
|
||||
|
||||
// check if zgvmadatum comes after zgvdatum
|
||||
if ($zgvmadatum < $zgvdatum)
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* ZGV master Datum before Geburtsdatum
|
||||
*/
|
||||
class CORE_ZGV_0005 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['prestudent_id']) || !is_numeric($params['prestudent_id']))
|
||||
return error('Prestudent Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
// get zgvdatum and geburtsdatum of prestudent
|
||||
$this->_ci->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$this->_ci->PrestudentModel->addSelect('zgvmadatum, gebdatum');
|
||||
$this->_ci->PrestudentModel->addJoin('public.tbl_person', 'person_id');
|
||||
$prestudentRes = $this->_ci->PrestudentModel->load($params['prestudent_id']);
|
||||
|
||||
if (isError($prestudentRes))
|
||||
return $prestudentRes;
|
||||
|
||||
if (hasData($prestudentRes))
|
||||
{
|
||||
$prestudentData = getData($prestudentRes)[0];
|
||||
|
||||
$zgvdatum = $prestudentData->zgvmadatum;
|
||||
|
||||
if (isEmptyString($zgvdatum))
|
||||
return success(false);
|
||||
|
||||
$gebdatum = $prestudentData->gebdatum;
|
||||
|
||||
if (isEmptyString($gebdatum))
|
||||
return success(false);
|
||||
|
||||
// check if zgvdatum comes before geburtsdatum
|
||||
if ($zgvdatum < $gebdatum)
|
||||
return success(false);
|
||||
else
|
||||
return success(true);
|
||||
}
|
||||
else
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
@@ -11,4 +11,37 @@ class Bisio_model extends DB_Model
|
||||
$this->dbTable = 'bis.tbl_bisio';
|
||||
$this->pk = 'bisio_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets duration of stay in days by bisio_id.
|
||||
* @param int $bisio_id
|
||||
* @return object success with number of days or error
|
||||
*/
|
||||
public function getAufenthaltsdauer($bisio_id)
|
||||
{
|
||||
// get from and to date
|
||||
$this->addSelect('von, bis');
|
||||
$bisioRes = $this->load($bisio_id);
|
||||
|
||||
if (isError($bisioRes))
|
||||
return $bisioRes;
|
||||
|
||||
if (hasData($bisioRes))
|
||||
{
|
||||
$bisioData = getData($bisioRes)[0];
|
||||
|
||||
$avon = $bisioData->von;
|
||||
$abis = $bisioData->bis;
|
||||
|
||||
if (is_null($avon) || is_null($abis))
|
||||
return success("Von or bis date not set");
|
||||
|
||||
$vonDate = new DateTime($avon);
|
||||
$bisDate = new DateTime($abis);
|
||||
$interval = $vonDate->diff($bisDate);
|
||||
return success($interval->days);
|
||||
}
|
||||
else
|
||||
return success("Bisio not found");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,45 +18,50 @@ class Konto_model extends DB_Model
|
||||
public function setPaid($buchungsnr)
|
||||
{
|
||||
// get payment
|
||||
$buchungResult = $this->loadWhere(array('buchungsnr' => $buchungsnr));
|
||||
$buchungResult = $this->loadWhere(array('buchungsnr' => $buchungsnr));
|
||||
|
||||
if(isSuccess($buchungResult) && hasData($buchungResult))
|
||||
if (isSuccess($buchungResult) && hasData($buchungResult))
|
||||
{
|
||||
$buchung = getData($buchungResult)[0];
|
||||
|
||||
// get already paid amount
|
||||
$this->addSelect('sum(betrag) as bezahlt');
|
||||
$this->addGroupBy('buchungsnr_verweis');
|
||||
$buchungVerweisResult = $this->loadWhere(array('buchungsnr_verweis' => $buchungsnr));
|
||||
$buchungVerweisResult = $this->loadWhere(array('buchungsnr_verweis' => $buchungsnr));
|
||||
|
||||
if(isSuccess($buchungVerweisResult))
|
||||
if (isSuccess($buchungVerweisResult))
|
||||
{
|
||||
if(hasData($buchungVerweisResult))
|
||||
{
|
||||
$betragBezahltResult = getData($buchungVerweisResult);
|
||||
$betragBezahlt = $betragBezahltResult->bezahlt;
|
||||
}
|
||||
else
|
||||
$betragBezahlt = 0;
|
||||
$betragBezahlt = 0;
|
||||
|
||||
$buchung = getData($buchungResult);
|
||||
$buchung = $buchung[0];
|
||||
if (hasData($buchungVerweisResult))
|
||||
{
|
||||
$betragBezahlt = getData($buchungVerweisResult)[0]->bezahlt;
|
||||
}
|
||||
|
||||
// calculate open amount
|
||||
$betragOffen = $betragBezahlt - $buchung->betrag*(-1);
|
||||
$betragOffen = $betragBezahlt - $buchung->betrag * (-1);
|
||||
|
||||
$data = array(
|
||||
'person_id' => $buchung->person_id,
|
||||
'studiengang_kz' => $buchung->studiengang_kz,
|
||||
'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz,
|
||||
'buchungsnr_verweis' => $buchungsnr,
|
||||
'betrag' => str_replace(',','.',$betragOffen*(-1)),
|
||||
'buchungsdatum' => date('Y-m-d'),
|
||||
'buchungstext' => $buchung->buchungstext,
|
||||
'insertamum' => date('Y-m-d H:i:s'),
|
||||
'insertvon' => '',
|
||||
'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz,
|
||||
);
|
||||
if ($betragOffen != 0)
|
||||
{
|
||||
$data = array(
|
||||
'person_id' => $buchung->person_id,
|
||||
'studiengang_kz' => $buchung->studiengang_kz,
|
||||
'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz,
|
||||
'buchungsnr_verweis' => $buchungsnr,
|
||||
'betrag' => str_replace(',', '.', $betragOffen * (-1)),
|
||||
'buchungsdatum' => date('Y-m-d'),
|
||||
'buchungstext' => $buchung->buchungstext,
|
||||
'insertamum' => date('Y-m-d H:i:s'),
|
||||
'insertvon' => '',
|
||||
'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz,
|
||||
);
|
||||
|
||||
return $this->insert($data);
|
||||
return $this->insert($data);
|
||||
}
|
||||
else
|
||||
{
|
||||
return success();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -665,4 +665,5 @@ class Prestudent_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($prestudent_id));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -86,9 +86,10 @@ class Zeugnisnote_model extends DB_Model
|
||||
* @param bool $lehre
|
||||
* @param bool $offiziell
|
||||
* @param bool $positiv
|
||||
* @param bool $zeugnis
|
||||
* @return object
|
||||
*/
|
||||
public function getByPerson($person_id, $studiensemester_kurzbz, $aktiv = true, $lehre = null, $offiziell = null, $positiv = null)
|
||||
public function getByPerson($person_id, $studiensemester_kurzbz, $aktiv = true, $lehre = null, $offiziell = null, $positiv = null, $zeugnis = null)
|
||||
{
|
||||
$params = array($person_id, $studiensemester_kurzbz);
|
||||
|
||||
@@ -129,6 +130,12 @@ class Zeugnisnote_model extends DB_Model
|
||||
$params[] = $positiv;
|
||||
}
|
||||
|
||||
if (isset($zeugnis))
|
||||
{
|
||||
$qry .= ' AND lv.zeugnis = ?';
|
||||
$params[] = $zeugnis;
|
||||
}
|
||||
|
||||
$qry .= ' ORDER BY zgnisnote.benotungsdatum';
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
|
||||
@@ -448,10 +448,11 @@ class Studiengang_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($typ));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get Studiengangsleitung
|
||||
* @param null $studiengang_kz
|
||||
* Get Studiengangsleitung/en of Studiengang/Studiengaenge.
|
||||
*
|
||||
* @param null $studiengang_kz Numeric or Array
|
||||
* @return array
|
||||
*/
|
||||
public function getLeitung($studiengang_kz = null)
|
||||
@@ -460,7 +461,12 @@ class Studiengang_model extends DB_Model
|
||||
$this->addJoin('public.tbl_benutzerfunktion', 'oe_kurzbz');
|
||||
$this->addJoin('public.tbl_benutzer', 'uid');
|
||||
$this->addJoin('public.tbl_person', 'person_id');
|
||||
|
||||
|
||||
if (!is_numeric($studiengang_kz) && !is_array($studiengang_kz))
|
||||
{
|
||||
return error('Studiengangskennzahl ungültig');
|
||||
}
|
||||
|
||||
if (is_null($studiengang_kz))
|
||||
{
|
||||
$condition = '
|
||||
@@ -469,16 +475,21 @@ class Studiengang_model extends DB_Model
|
||||
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
|
||||
';
|
||||
}
|
||||
elseif (is_numeric($studiengang_kz))
|
||||
elseif (is_numeric($studiengang_kz) || is_array($studiengang_kz))
|
||||
{
|
||||
if (is_array($studiengang_kz))
|
||||
{
|
||||
$studiengang_kz = array_map(array($this,'escape'), $studiengang_kz);
|
||||
$studiengang_kz = implode(', ', $studiengang_kz);
|
||||
}
|
||||
$condition = '
|
||||
funktion_kurzbz = \'Leitung\'
|
||||
AND ( datum_von <= NOW() OR datum_von IS NULL )
|
||||
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
|
||||
AND studiengang_kz = ' . $this->db->escape($studiengang_kz)
|
||||
AND studiengang_kz IN (' . $studiengang_kz. ')';
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
return $this->loadWhere($condition);
|
||||
}
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ class Person_model extends DB_Model
|
||||
if (!hasData($person))
|
||||
return success(null);
|
||||
|
||||
$this->KontaktModel->addSelect('kontakttyp, anmerkung, kontakt, zustellung');
|
||||
$this->KontaktModel->addSelect('kontakt_id, kontakttyp, anmerkung, kontakt, zustellung');
|
||||
$this->KontaktModel->addOrder('kontakttyp');
|
||||
$this->KontaktModel->addOrder('insertamum', 'DESC');
|
||||
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustellung' => true) : array('person_id' => $person_id);
|
||||
@@ -268,16 +268,61 @@ class Person_model extends DB_Model
|
||||
|
||||
public function checkDuplicate($person_id)
|
||||
{
|
||||
$qry = "SELECT sp.person_id
|
||||
FROM public.tbl_person p
|
||||
LEFT JOIN public.tbl_person sp ON p.vorname = sp.vorname
|
||||
AND p.nachname = sp.nachname
|
||||
AND p.gebdatum = sp.gebdatum
|
||||
JOIN public.tbl_prestudent ps ON sp.person_id = ps.person_id
|
||||
JOIN public.tbl_prestudentstatus pss ON ps.prestudent_id = pss.prestudent_id
|
||||
WHERE p.person_id = ? AND sp.person_id != ? AND pss.status_kurzbz = ?";
|
||||
$qry = "SELECT person_id
|
||||
FROM public.tbl_prestudent p
|
||||
JOIN
|
||||
(
|
||||
SELECT DISTINCT ON(prestudent_id) *
|
||||
FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id IN
|
||||
(
|
||||
SELECT prestudent_id
|
||||
FROM public.tbl_prestudent
|
||||
WHERE person_id IN
|
||||
(
|
||||
SELECT p2.person_id
|
||||
FROM public.tbl_person p
|
||||
JOIN public.tbl_person p2
|
||||
ON p.vorname = p2.vorname
|
||||
AND p.nachname = p2.nachname
|
||||
AND p.gebdatum = p2.gebdatum
|
||||
AND p.person_id = ?
|
||||
)
|
||||
)
|
||||
ORDER BY prestudent_id, datum DESC, insertamum DESC
|
||||
) ps USING(prestudent_id)
|
||||
JOIN public.tbl_status USING(status_kurzbz)
|
||||
WHERE status_kurzbz = 'Interessent'
|
||||
AND studiengang_kz IN
|
||||
(
|
||||
SELECT studiengang_kz
|
||||
FROM public.tbl_prestudent p
|
||||
JOIN
|
||||
(
|
||||
SELECT DISTINCT ON(prestudent_id) *
|
||||
FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id IN
|
||||
(
|
||||
SELECT prestudent_id
|
||||
FROM public.tbl_prestudent
|
||||
WHERE person_id IN
|
||||
(
|
||||
SELECT p2.person_id
|
||||
FROM public.tbl_person p
|
||||
JOIN public.tbl_person p2
|
||||
ON p.vorname = p2.vorname
|
||||
AND p.nachname = p2.nachname
|
||||
AND p.gebdatum = p2.gebdatum
|
||||
AND p.person_id = ?
|
||||
)
|
||||
)
|
||||
ORDER BY prestudent_id, datum DESC, insertamum DESC
|
||||
) ps USING(prestudent_id)
|
||||
JOIN public.tbl_status USING(status_kurzbz)
|
||||
WHERE status_kurzbz = 'Abbrecher'
|
||||
)
|
||||
";
|
||||
|
||||
|
||||
return $this->execQuery($qry, array($person_id, $person_id, 'Abbrecher'));
|
||||
return $this->execQuery($qry, array($person_id, $person_id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,45 @@ class Issue_model extends DB_Model
|
||||
$this->pk = 'issue_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets issues which are open, i.e. not resolved.
|
||||
* @param array $fehlercodes only issues for given fehler are retrieved
|
||||
* @param int $person_id
|
||||
* @param string $oe_kurzbz
|
||||
* @param string $fehlercode_extern
|
||||
* @return object success with issues or error
|
||||
*/
|
||||
public function getOpenIssues($fehlercodes, $person_id = null, $oe_kurzbz = null, $fehlercode_extern = null)
|
||||
{
|
||||
$params = array($fehlercodes);
|
||||
// issue exists for a fehlercode (or fehlercode_extern), person_id, oe_kurzbz, if not verarbeitet yet
|
||||
$qry = 'SELECT issue_id, fehlercode, inhalt, fehlercode_extern, inhalt_extern, person_id, oe_kurzbz,
|
||||
behebung_parameter, datum, verarbeitetvon, verarbeitetamum
|
||||
FROM system.tbl_issue
|
||||
WHERE fehlercode IN ?
|
||||
AND verarbeitetamum IS NULL';
|
||||
|
||||
if (!isEmptyString($fehlercode_extern))
|
||||
{
|
||||
$qry .= ' AND fehlercode_extern = ?';
|
||||
$params[] = $fehlercode_extern;
|
||||
}
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$qry .= ' AND person_id = ?';
|
||||
$params[] = $person_id;
|
||||
}
|
||||
|
||||
if (isset($oe_kurzbz))
|
||||
{
|
||||
$qry .= ' AND oe_kurzbz = ?';
|
||||
$params[] = $oe_kurzbz;
|
||||
}
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets number of open (non-resolved) issues.
|
||||
* @param string $fehlercode unique error code
|
||||
|
||||
@@ -25,7 +25,8 @@ $this->load->view(
|
||||
'bitteBegruendungAngeben',
|
||||
'empfehlungWurdeAngefordert',
|
||||
'anrechnungenWurdenGenehmigt',
|
||||
'anrechnungenWurdenAbgelehnt'
|
||||
'anrechnungenWurdenAbgelehnt',
|
||||
'nurLeseberechtigung'
|
||||
),
|
||||
'person' => array(
|
||||
'student',
|
||||
@@ -72,7 +73,7 @@ $this->load->view(
|
||||
</div>
|
||||
<!--end header -->
|
||||
|
||||
<div class="row">
|
||||
<div class="row" id="approveAnrechnungDetail-generell" data-readonly="<?php echo json_encode($hasReadOnlyAccess)?>">
|
||||
<div class="col-xs-8">
|
||||
<!-- Antragsdaten -->
|
||||
<div class="row">
|
||||
|
||||
@@ -48,7 +48,8 @@ $this->load->view(
|
||||
'empfehlungWurdeAngefordert',
|
||||
'empfehlungWurdeAngefordertAusnahmeWoKeineLektoren',
|
||||
'anrechnungenWurdenGenehmigt',
|
||||
'anrechnungenWurdenAbgelehnt'
|
||||
'anrechnungenWurdenAbgelehnt',
|
||||
'nurLeseberechtigung'
|
||||
),
|
||||
'person' => array(
|
||||
'student',
|
||||
@@ -101,7 +102,7 @@ $this->load->view(
|
||||
<!-- dropdown studiensemester -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formApproveAnrechnungUebersicht" class="form-inline" action="" method="get">
|
||||
<form id="formApproveAnrechnungUebersicht" class="form-inline" action="" method="get" data-readonly="<?php echo json_encode($hasReadOnlyAccess)?>" data-createaccess="<?php echo json_encode($hasCreateAnrechnungAccess)?>">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
@@ -226,7 +227,7 @@ $this->load->view(
|
||||
class='fa fa-times'></i>
|
||||
</button>
|
||||
</div>
|
||||
<a type="button" class="btn btn-default" style="margin-left: 20px;" href='<?php echo site_url('lehre/anrechnung/createAnrechnung') ?>' target='_blank'>
|
||||
<a type="button" id="approveAnrechnungUebersicht-create-anrechnung" class="btn btn-default" style="margin-left: 20px;" href='<?php echo site_url('lehre/anrechnung/createAnrechnung') ?>' target='_blank'>
|
||||
<i class='fa fa-plus' aria-hidden='true'></i> <?php echo $this->p->t('global', 'antragAnlegen'); ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -187,7 +187,7 @@ FROM
|
||||
(SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
ON tbl_benutzer.uid = ma.mitarbeiter_uid
|
||||
WHERE
|
||||
person_id = tmp_projektbetreuung.person_id
|
||||
@@ -268,7 +268,7 @@ FROM
|
||||
ELSE (oe.organisationseinheittyp_kurzbz ||
|
||||
\' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(vorname || \' \' || nachname) AS "lektor",
|
||||
(nachname || \' \' || vorname) AS "lektor",
|
||||
TRUNC(pb.stunden, 1) AS "stunden",
|
||||
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
'query' => '
|
||||
SELECT
|
||||
person_id, vorname, nachname, geschlecht, svnr, ersatzkennzeichen, matr_nr,
|
||||
staatsbuergerschaft, gebdatum, false AS mitarbeiter
|
||||
staatsbuergerschaft, gebdatum, false AS mitarbeiter,
|
||||
(SELECT count(*) FROM public.tbl_akte WHERE person_id=tbl_person.person_id) AS anzahl_dokumente
|
||||
FROM
|
||||
public.tbl_person
|
||||
WHERE
|
||||
@@ -14,7 +15,8 @@
|
||||
UNION
|
||||
SELECT
|
||||
person_id, vorname, nachname, geschlecht, svnr, ersatzkennzeichen, matr_nr,
|
||||
staatsbuergerschaft, gebdatum, true AS mitarbeiter
|
||||
staatsbuergerschaft, gebdatum, true AS mitarbeiter,
|
||||
(SELECT count(*) FROM public.tbl_akte WHERE person_id=tbl_person.person_id) AS anzahl_dokumente
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
@@ -36,7 +38,8 @@
|
||||
ucfirst($this->p->t('person', 'matrikelnummer')),
|
||||
ucfirst($this->p->t('person', 'staatsbuergerschaft')),
|
||||
ucfirst($this->p->t('person', 'geburtsdatum')),
|
||||
'Mitarbeiter'
|
||||
'Mitarbeiter',
|
||||
'Anzahl Dokumente'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<a href="outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo isEmptyString($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
|
||||
</td>
|
||||
<td>
|
||||
<select class="aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?>>
|
||||
<select class="aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
|
||||
<?php
|
||||
foreach($dokumententypen as $dokumenttyp)
|
||||
echo "<option " . ($dokumenttyp->bezeichnung === $dokument->dokument_bezeichnung ? 'selected' : '') . " value = " . $dokumenttyp->dokument_kurzbz . ">" . $dokumenttyp->bezeichnung . "</option>"
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Info Center',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
Abgewiesene
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/infocenter/infocenterAbgewiesenData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
$this->config->load('infocenter');
|
||||
$ABGEWIESENEN_STATUS = '\'Abgewiesener\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$LOGDATA_NAME = '\'Message sent\'';
|
||||
$LOGDATA_VON = '\'online\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
p.person_id AS "PersonID",
|
||||
ps.prestudent_id AS "PreStudentID",
|
||||
p.vorname AS "Vorname",
|
||||
p.nachname AS "Nachname",
|
||||
sg.kurzbzlang as "Studiengang",
|
||||
pss.insertamum AS "AbgewiesenAm",
|
||||
(
|
||||
SELECT l.zeitpunkt
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
AND '. $LOGDATA_NAME .' = (
|
||||
SELECT l.logdata->>\'name\'
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
AND '. $LOGDATA_VON .' = (
|
||||
SELECT l.insertvon
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
AND l.zeitpunkt >= pss.insertamum
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "Nachricht"
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_person p USING(person_id)
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
WHERE pss.status_kurzbz = '. $ABGEWIESENEN_STATUS .'
|
||||
AND pss.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
AND (sg.typ IN ('. $STUDIENGANG_TYP .')
|
||||
OR
|
||||
sg.studiengang_kz IN ('. $ADDITIONAL_STG .')
|
||||
)
|
||||
ORDER BY "AbgewiesenAm" DESC';
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'app' => InfoCenter::APP,
|
||||
'datasetName' => 'abgewiesen',
|
||||
'filter_id' => $this->input->get('filter_id'),
|
||||
'requiredPermissions' => 'infocenter',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'columnsAliases' => array(
|
||||
'PersonID',
|
||||
'PreStudentID',
|
||||
'Vorname',
|
||||
'Nachname',
|
||||
'Studiengang',
|
||||
'Abgewiesen am',
|
||||
'Nachricht'
|
||||
),
|
||||
|
||||
'formatRow' => function($datasetRaw) {
|
||||
if ($datasetRaw->{'Nachricht'} === null)
|
||||
{
|
||||
$datasetRaw->{'Nachricht'} = 'Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'Nachricht'} = 'Ja';
|
||||
}
|
||||
|
||||
$datasetRaw->{'AbgewiesenAm'} = date_format(date_create($datasetRaw->{'AbgewiesenAm'}),'Y-m-d H:i');
|
||||
return $datasetRaw;
|
||||
}
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
@@ -6,7 +6,7 @@
|
||||
$INTERESSENT_STATUS = '\'Interessent\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\'';
|
||||
$LOGDATA_NAME_PARKED = '\'Parked\'';
|
||||
$LOGDATA_NAME_ONHOLD = '\'Onhold\'';
|
||||
$LOGTYPE_KURZBZ = '\'Processstate\'';
|
||||
@@ -55,8 +55,10 @@
|
||||
a.dokument_kurzbz in ('.$AKTE_TYP.')
|
||||
) AS "AnzahlAkte",
|
||||
(
|
||||
SELECT l.insertvon
|
||||
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
|
||||
FROM system.tbl_log l
|
||||
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
|
||||
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
|
||||
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
@@ -271,8 +273,10 @@
|
||||
LEFT JOIN (
|
||||
SELECT tpl.person_id,
|
||||
tpl.zeitpunkt,
|
||||
tpl.uid AS lockuser
|
||||
sp.nachname AS lockuser
|
||||
FROM system.tbl_person_lock tpl
|
||||
JOIN public.tbl_benutzer sb USING (uid)
|
||||
JOIN public.tbl_person sp ON sb.person_id = sp.person_id
|
||||
WHERE tpl.app = '.$APP.'
|
||||
) pl USING(person_id)
|
||||
LEFT JOIN (
|
||||
@@ -410,6 +414,10 @@
|
||||
{
|
||||
$datasetRaw->{'OnholdDate'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'OnholdDate'} = date_format(date_create($datasetRaw->{'OnholdDate'}), 'Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'StgAbgeschickt'} == null)
|
||||
{
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
$INTERESSENT_STATUS = '\'Interessent\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\'';
|
||||
$REJECTED_STATUS = '\'Abgewiesener\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
$IDENTITY = '\'identity\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -41,8 +42,10 @@ $query = '
|
||||
LIMIT 1
|
||||
) AS "LastActionType",
|
||||
(
|
||||
SELECT l.insertvon
|
||||
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
|
||||
FROM system.tbl_log l
|
||||
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
|
||||
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
@@ -243,13 +246,23 @@ $query = '
|
||||
LIMIT 1
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "InfoCenterMitarbeiter"
|
||||
) AS "InfoCenterMitarbeiter",
|
||||
(
|
||||
SELECT akte.akte_id
|
||||
FROM public.tbl_akte akte
|
||||
JOIN public.tbl_dokument USING (dokument_kurzbz)
|
||||
WHERE akte.person_id = p.person_id
|
||||
AND dokument_kurzbz = '. $IDENTITY .'
|
||||
LIMIT 1
|
||||
) AS "AktenId"
|
||||
FROM public.tbl_person p
|
||||
LEFT JOIN (
|
||||
SELECT tpl.person_id,
|
||||
tpl.zeitpunkt,
|
||||
tpl.uid AS lockuser
|
||||
sp.nachname AS lockuser
|
||||
FROM system.tbl_person_lock tpl
|
||||
JOIN public.tbl_benutzer sb USING (uid)
|
||||
JOIN public.tbl_person sp ON sb.person_id = sp.person_id
|
||||
WHERE tpl.app = '.$APP.'
|
||||
) pl USING(person_id)
|
||||
WHERE
|
||||
@@ -313,7 +326,8 @@ $query = '
|
||||
'Reihungstest date',
|
||||
'ZGV Nation BA',
|
||||
'ZGV Nation MA',
|
||||
'InfoCenter Mitarbeiter'
|
||||
'InfoCenter Mitarbeiter',
|
||||
'Identitätsnachweis'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
@@ -421,6 +435,19 @@ $query = '
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'AktenId'} !== null)
|
||||
{
|
||||
$datasetRaw->{'AktenId'} = sprintf(
|
||||
'<a href="outputAkteContent/%s">Identitätsnachweis</a>',
|
||||
$datasetRaw->{'AktenId'}
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'AktenId'} = '-';
|
||||
}
|
||||
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
$INTERESSENT_STATUS = '\'Interessent\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
// By default set the parameters to null
|
||||
$title = isset($title) ? $title : null;
|
||||
$refresh = isset($refresh) ? $refresh : null;
|
||||
$customCSSs = isset($customCSSs) ? $customCSSs : null;
|
||||
$customJSs = isset($customJSs) ? $customJSs : null;
|
||||
$phrases = isset($phrases) ? $phrases : null;
|
||||
@@ -48,6 +49,8 @@
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<?php printRefreshMeta($refresh); ?>
|
||||
|
||||
<?php
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
// CSS
|
||||
|
||||
@@ -37,6 +37,11 @@ else
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
}
|
||||
|
||||
if(isset($_GET['norefresh']))
|
||||
$norefresh = true;
|
||||
else
|
||||
$norefresh = false;
|
||||
|
||||
$infoscreen = new infoscreen();
|
||||
$i=-1;
|
||||
$refreshzeit = 40; // Default Refreshzeit
|
||||
@@ -90,9 +95,12 @@ if(isset($infoscreen_content) && isset($infoscreen_content[$aktuellerContentIdx]
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="refresh" content="',$refreshzeit,'">
|
||||
<link href="../../skin/infoscreen.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
|
||||
if (!$norefresh)
|
||||
{
|
||||
echo '<meta http-equiv="refresh" content="',$refreshzeit,'">';
|
||||
}
|
||||
echo ' <link href="../../skin/infoscreen.css" rel="stylesheet" type="text/css">
|
||||
';
|
||||
|
||||
//Skript fuer den automatischen bildlauf
|
||||
|
||||
@@ -25,6 +25,7 @@ require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/coodle.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$sprache = getSprache();
|
||||
@@ -36,6 +37,22 @@ $message='';
|
||||
if(!check_lektor($user))
|
||||
die($p->t('global/keineBerechtigung'));
|
||||
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Umfragen von anderen Personen anzuzeigen
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$user = $_GET['uid'];
|
||||
$getParam = '&uid='.$user;
|
||||
}
|
||||
else
|
||||
$getParam = '';
|
||||
}
|
||||
else
|
||||
$getParam = '';
|
||||
|
||||
echo '
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
|
||||
@@ -27,6 +27,7 @@ require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$lang = getSprache();
|
||||
|
||||
@@ -35,6 +36,22 @@ $p = new phrasen($lang);
|
||||
$uid = get_uid();
|
||||
$message = '';
|
||||
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Umfragen von anderen Personen anzuzeigen
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$uid = $_GET['uid'];
|
||||
$getParam = '&uid='.$uid;
|
||||
}
|
||||
else
|
||||
$getParam = '';
|
||||
}
|
||||
else
|
||||
$getParam = '';
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
@@ -170,7 +187,7 @@ foreach($coodle->result as $c)
|
||||
else
|
||||
$title=$p->t('coodle/bearbeiten');
|
||||
|
||||
$row.= ' <a href="stammdaten.php?coodle_id='.$c->coodle_id.'">
|
||||
$row.= ' <a href="stammdaten.php?coodle_id='.$c->coodle_id.'&'.$getParam.'">
|
||||
<img src="../../../skin/images/edit.png" title="'.$title.'">
|
||||
</a>';
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/erhalter.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/lehrelisthelper.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
@@ -64,183 +65,15 @@ if(isset($_GET['output']) && ($output='odt' || $output='doc'))
|
||||
isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL;
|
||||
isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL;
|
||||
|
||||
|
||||
|
||||
$doc = new dokument_export('Anwesenheitslist');
|
||||
|
||||
// Teilnehmende Gruppen laden
|
||||
$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz)
|
||||
UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel,
|
||||
semester,
|
||||
verband,
|
||||
gruppe,
|
||||
gruppe_kurzbz
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester);
|
||||
if($lehreinheit!='')
|
||||
$qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER);
|
||||
|
||||
$gruppen_string = '';
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($gruppen_string!='')
|
||||
$gruppen_string.=', ';
|
||||
if($row->gruppe_kurzbz=='')
|
||||
$gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe);
|
||||
else
|
||||
$gruppen_string.=$row->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Verplante Räume laden
|
||||
$qry = "SELECT distinct(ort_kurzbz)
|
||||
FROM lehre.tbl_stundenplan
|
||||
WHERE lehreinheit_id in
|
||||
(
|
||||
SELECT lehreinheit_id
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)."
|
||||
)";
|
||||
if($lehreinheit!='')
|
||||
$qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER);
|
||||
|
||||
|
||||
$raum_string = '';
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($raum_string!='')
|
||||
$raum_string.=', ';
|
||||
if($row->ort_kurzbz!='')
|
||||
$raum_string.=$row->ort_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->load($lv->studiengang_kz);
|
||||
|
||||
$studiengang_bezeichnung=$stg->bezeichnung;
|
||||
$doc = new dokument_export('Anwesenheitslist');
|
||||
|
||||
$stg->getAllTypes();
|
||||
|
||||
$data = array(
|
||||
'gruppen'=>$gruppen_string,
|
||||
'bezeichnung'=>$lv->bezeichnung,
|
||||
'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id,
|
||||
'studiengang'=>$studiengang_bezeichnung,
|
||||
'studiengang_kz'=>$lv->studiengang_kz,
|
||||
'typ'=>$stg->studiengang_typ_arr[$stg->typ],
|
||||
'ects'=>$lv->ects,
|
||||
'sprache'=>$lv->sprache,
|
||||
'studiensemester'=>$studiensemester,
|
||||
'semester'=>$lv->semester,
|
||||
'orgform'=>$lv->orgform_kurzbz,
|
||||
'raum'=>$raum_string,
|
||||
);
|
||||
|
||||
//Lehrende der LV laden und in ein Array schreiben
|
||||
$lehrende = new lehreinheitmitarbeiter();
|
||||
$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit);
|
||||
$arr_lehrende = array();
|
||||
if (isset($lehrende->result))
|
||||
{
|
||||
foreach($lehrende->result AS $row)
|
||||
{
|
||||
$data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname));
|
||||
$arr_lehrende[]=mb_strtoupper($row->uid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student,
|
||||
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_note USING (note)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);
|
||||
|
||||
if($lehreinheit!='')
|
||||
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($studiensemester);
|
||||
$stsemdatumvon = $stsem_obj->start;
|
||||
$stsemdatumbis = $stsem_obj->ende;
|
||||
|
||||
$erhalter = new erhalter();
|
||||
$erhalter->getAll();
|
||||
|
||||
$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW)
|
||||
$anzahl_studierende = 0;
|
||||
$datum = new datum();
|
||||
$zusatz = '';
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($row->status!='Abbrecher' && $row->status!='Unterbrecher')
|
||||
{
|
||||
$anzahl_studierende++;
|
||||
|
||||
if($row->status=='Incoming') //Incoming
|
||||
$zusatz='(i)';
|
||||
else
|
||||
$zusatz='';
|
||||
|
||||
if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing
|
||||
$zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')';
|
||||
|
||||
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
|
||||
$zusatz.= '('. $row->anmerkung. ')';
|
||||
|
||||
if($row->mitarbeiter_uid!='') //mitarbeiter
|
||||
$zusatz.='(ma)';
|
||||
|
||||
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz.='(a.o.)';
|
||||
|
||||
$data[]=array('student'=>array(
|
||||
'vorname'=>$row->vorname,
|
||||
'nachname'=>$row->nachname,
|
||||
'personenkennzeichen'=>trim($row->matrikelnr),
|
||||
'matr_nr'=>$row->matr_nr,
|
||||
'semester'=>$row->semester,
|
||||
'verband'=>trim($row->verband),
|
||||
'gruppe'=>trim($row->gruppe),
|
||||
'zusatz'=>$zusatz,
|
||||
'studiengang_kurzbz'=>$row->kurzbzlang
|
||||
));
|
||||
}
|
||||
}
|
||||
//Anzahl Studierende in Array $data (an erster Stelle) einfuegen
|
||||
$data = array_reverse($data, true);
|
||||
$data['anzahl_studierende'] = $anzahl_studierende;
|
||||
$data = array_reverse($data, true);
|
||||
}
|
||||
$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit);
|
||||
$arr_lehrende = $lehrelisthelper->getArr_Lehrende();
|
||||
$data = $lehrelisthelper->getData();
|
||||
$studentuids = $lehrelisthelper->getStudentUids();
|
||||
|
||||
$doc->addDataArray($data,'anwesenheitsliste');
|
||||
if($lehreinheit!='')
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/vertrag.class.php');
|
||||
require_once '../../../include/covid/covidhelper.class.php';
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
@@ -61,7 +62,8 @@
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die($p->t('anwesenheitsliste/studiensemesterIstUngueltig'));
|
||||
|
||||
|
||||
$covidhelper = new CovidHelper();
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
@@ -69,6 +71,11 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<style type="text/css">
|
||||
.covidstatus {
|
||||
padding-left: 4em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -84,6 +91,7 @@
|
||||
<?php
|
||||
if($error==0)
|
||||
{
|
||||
$covid_content = '';
|
||||
$aw_content='';
|
||||
$awbild_content='';
|
||||
$nt_content='';
|
||||
@@ -98,6 +106,7 @@
|
||||
|
||||
$lv = new lehrveranstaltung($lvid);
|
||||
|
||||
$covid_content .= ($covidhelper->isUdfDefined()) ? '<tr><td><a href="covidstatusliste.php?stg='.$stg_kz.'.&sem='.$sem.'&lvid='.$lvid.'&stsem='.$stsem.'">' . $p->t('anwesenheitsliste/gesamtliste') . ' ' . $lv->bezeichnung . '</a></td></tr>' : '';
|
||||
$aw_content .= "<tr><td><a class='Item' href='anwesenheitsliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&stsem=$stsem'>".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung</a></td></tr>";
|
||||
$awbild_content .= "<tr><td><a class='Item' href='fotoliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&stsem=$stsem'>".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung</a></td></tr>";
|
||||
$nt_content .= "<tr><td><a class='Item' href='notenliste.xls.php?stg=$stg_kz&sem=$sem&lvid=$lvid&stsem=$stsem'>".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung</a></td></tr>";
|
||||
@@ -151,6 +160,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
$covid_content .= ($covidhelper->isUdfDefined()) ? '<tr><td><a href="covidstatusliste.php?stg='.$stg_kz.'.&sem='.$sem.'&lvid='.$lvid.'&lehreinheit_id='.$lastlehreinheit.'&stsem='.$stsem.'"> <img src="../../../skin/images/haken.gif" />' . $kurzbz . ' - ' . $lehrform . ' - ' . $gruppen . ' (' . $lektoren . ')</a></td></tr>' : '';
|
||||
$aw_content .= "<tr><td><a class='Item' href='anwesenheitsliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$awbild_content .= "<tr><td><a class='Item' href='fotoliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$nt_content .= "<tr><td><a class='Item' href='notenliste.xls.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
@@ -186,6 +196,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
$covid_content .= ($covidhelper->isUdfDefined()) ? '<tr><td><a href="covidstatusliste.php?stg='.$stg_kz.'.&sem='.$sem.'&lvid='.$lvid.'&lehreinheit_id='.$lastlehreinheit.'&stsem='.$stsem.'"> <img src="../../../skin/images/haken.gif" />' . $kurzbz . ' - ' . $lehrform . ' - ' . $gruppen . ' (' . $lektoren . ')</a></td></tr>' : '';
|
||||
$aw_content .= "<tr><td><a class='Item' href='anwesenheitsliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$awbild_content .= "<tr><td><a class='Item' href='fotoliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$nt_content .= "<tr><td><a class='Item' href='notenliste.xls.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
@@ -198,6 +209,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
if($covid_content!='')
|
||||
$covid_content = "<table border='0' cellspacing='0'><tr><td><h3>".$p->t('anwesenheitsliste/covidstatuslisten')."</h3></td></tr>".$covid_content."</table>";
|
||||
else
|
||||
$covid_content = ($covidhelper->isUdfDefined()) ? $p->t('anwesenheitsliste/keineStudentenVorhanden') : '';
|
||||
|
||||
if($aw_content!='')
|
||||
$aw_content = "<table border='0' cellspacing='0'><tr><td><h3>".$p->t('anwesenheitsliste/anwesenheitslisten')."</h3></td></tr>".$aw_content."</table>";
|
||||
else
|
||||
@@ -221,17 +237,20 @@
|
||||
$aw_content='';
|
||||
if(defined('CIS_ANWESENHEITSLISTE_ANWESENHEITSLISTE_BILD_ANZEIGEN') && !CIS_ANWESENHEITSLISTE_ANWESENHEITSLISTE_BILD_ANZEIGEN)
|
||||
$awbild_content='';
|
||||
|
||||
|
||||
echo "<table cellpadding='0' cellspacing='0'>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>$aw_content</td>
|
||||
<td class=\"covidstatus\">$covid_content</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>$awbild_content</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>$nt_content</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
</table>";
|
||||
|
||||
@@ -45,6 +45,8 @@ require_once ('../../../../include/note.class.php');
|
||||
require_once ('../../../../include/notenschluessel.class.php');
|
||||
require_once ('../../../../include/studienplan.class.php');
|
||||
require_once ('../../../../include/addon.class.php');
|
||||
require_once ('../../../../include/mobilitaet.class.php');
|
||||
require_once ('../../../../include/student.class.php');
|
||||
|
||||
$summe_stud = 0;
|
||||
$summe_t2 = 0;
|
||||
@@ -80,6 +82,8 @@ if (! $lv_obj->load($lvid))
|
||||
// Studiengang laden
|
||||
$stg_obj = new studiengang($lv_obj->studiengang_kz);
|
||||
|
||||
$stg_obj->studiengang_kz;
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
if (isset($_GET['stsem']))
|
||||
@@ -732,6 +736,7 @@ else
|
||||
die($p->t('global/fehleraufgetreten'));
|
||||
|
||||
// Kopfzeile
|
||||
|
||||
echo '
|
||||
<table width="100%">
|
||||
<tr>
|
||||
@@ -1113,8 +1118,8 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN campus.vw_student USING(uid)
|
||||
WHERE
|
||||
studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
|
||||
AND lehrveranstaltung_id = " . $db->db_add_param($lvid) . "
|
||||
studiensemester_kurzbz = ". $db->db_add_param($stsem). "
|
||||
AND lehrveranstaltung_id = ". $db->db_add_param($lvid). "
|
||||
ORDER BY nachname, vorname ";
|
||||
|
||||
if ($result_stud = $db->db_query($qry_stud))
|
||||
@@ -1122,11 +1127,29 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
$i = 1;
|
||||
$errorshown = false;
|
||||
$summe_stud = $db->db_num_rows($result_stud);
|
||||
|
||||
//Ergänzung um Mobility-Eintrag (d.d.)
|
||||
while ($row_stud = $db->db_fetch_object($result_stud))
|
||||
{
|
||||
$grades[$row_stud->uid]['vorname'] = $row_stud->vorname;
|
||||
$grades[$row_stud->uid]['nachname'] = $row_stud->nachname;
|
||||
|
||||
$student = new student();
|
||||
$student->load($row_stud->uid);
|
||||
$student->result[]= $student;
|
||||
$prestudent_id = $student->prestudent_id;
|
||||
|
||||
$mobility = new mobilitaet();
|
||||
$mobility->loadPrestudent($prestudent_id);
|
||||
$output = $mobility->result;
|
||||
$eintrag = '';
|
||||
foreach ($output as $k)
|
||||
{
|
||||
if(($k->mobilitaetstyp_kurzbz == 'GS') && ($k->studiensemester_kurzbz == $stsem))
|
||||
$eintrag = ' (d.d.)';
|
||||
}
|
||||
$grades[$row_stud->uid]['mobility'] = $eintrag;
|
||||
|
||||
// Noten aus Uebungstool
|
||||
$le = new lehreinheit();
|
||||
$le->load_lehreinheiten($lvid, $stsem);
|
||||
@@ -1167,12 +1190,14 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
|
||||
$anzahlChanged = 0;
|
||||
foreach ($grades as $uid => $data)
|
||||
//Ausgabe Array
|
||||
{
|
||||
|
||||
$htmlstring .= '<tr class="liste' . ($i % 2) . '">
|
||||
<td><a href="mailto:' . $uid . '@' . DOMAIN . '"><img src="../../../../skin/images/button_mail.gif"></a></td>
|
||||
<td>' . $db->convert_html_chars($uid) . '</td>
|
||||
<td id= '. $uid. "_nn". '>' . $db->convert_html_chars($data['nachname']) . '</td>
|
||||
<td id= '. $uid. "_vn". '>' . $db->convert_html_chars($data['vorname']) . '</td>';
|
||||
<td id= '. $uid. "_vn". '>' . $db->convert_html_chars($data['vorname']) . $db->convert_html_chars($data['mobility']) .'</td>';
|
||||
|
||||
// Bereits eingetragene Note ermitteln
|
||||
if ($lvgesamtnote = new lvgesamtnote($lvid, $uid, $stsem))
|
||||
@@ -1195,6 +1220,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
$negativeteilnote = false;
|
||||
$note_zusatztext = '';
|
||||
$note_zusatztext_tooltip = '';
|
||||
$ueberschreibbar = false; //Damit keine Notice Fehler kommt muss Variable bei jeden Schleifendurchgang neue gesetzt und berechnet werden.
|
||||
|
||||
if (isset($data['grades']))
|
||||
{
|
||||
@@ -1619,5 +1645,11 @@ echo $htmlstring;
|
||||
|
||||
<div id="nachpruefung_div"></div>
|
||||
|
||||
<div id="legende">
|
||||
<hr>
|
||||
<h3>Legende</h2>
|
||||
<p>(d.d.)... Double Degree Program</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Manfred Kindl <manfred.kindl@technikum-wien.at>
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/erhalter.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/lehrelisthelper.class.php');
|
||||
require_once('../../../include/covid/covidhelper.class.php');
|
||||
|
||||
$debug = false;
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$user=get_uid();
|
||||
|
||||
$berechtigung = new benutzerberechtigung();
|
||||
$berechtigung->getBerechtigungen($user);
|
||||
|
||||
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
|
||||
$lvid = $_GET['lvid'];
|
||||
else
|
||||
die('Eine gueltige LvID muss uebergeben werden');
|
||||
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lvid);
|
||||
|
||||
if(isset($_GET['stsem']))
|
||||
$studiensemester = $_GET['stsem'];
|
||||
else
|
||||
die('Eine Studiensemester muss uebergeben werden');
|
||||
|
||||
if( !$berechtigung->isBerechtigt('admin')
|
||||
&& !$berechtigung->isBerechtigt('assistenz')
|
||||
&& !$berechtigung->isBerechtigt('lehre', $lv->oe_kurzbz, 's')
|
||||
&& !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester))
|
||||
die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen');
|
||||
|
||||
isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL;
|
||||
isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL;
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->load($lv->studiengang_kz);
|
||||
|
||||
$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit);
|
||||
$arr_lehrende = $lehrelisthelper->getArr_Lehrende();
|
||||
$data = $lehrelisthelper->getData();
|
||||
$studentuids = $lehrelisthelper->getStudentUids();
|
||||
|
||||
$covidhelper = new CovidHelper();
|
||||
$covidhelper->fetchCovidStatus($studentuids);
|
||||
$covidstatus = $covidhelper->getCovidStatus();
|
||||
|
||||
$now = new DateTime('now', new DateTimeZone('Europe/Vienna'));
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
?>
|
||||
<!<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>FHC - Nachweisliste</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
|
||||
<link href="../../../vendor/components/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
|
||||
<h1>Nachweisliste "<?php echo $data['bezeichnung']; ?>"</h1>
|
||||
<ul>
|
||||
<li><strong>Gruppen</strong>: <?php echo $data['gruppen']; ?></li>
|
||||
<li><strong>Studiensemester</strong>: <?php echo $data['studiensemester']; ?></li>
|
||||
<li><strong>Lehrende</strong>: <?php echo $lehrelisthelper->getLehrende_String(); ?></li>
|
||||
<li><strong>generiert</strong>: <?php echo $now->format('d.m.Y H:i'); ?></li>
|
||||
<li><strong>Anzahl der Studierenden</strong>: <?php echo $data['anzahl_studierende']; ?></li>
|
||||
</ul>
|
||||
|
||||
<table class="table table-striped table-hover table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>lfd.Nr.</th>
|
||||
<th>Name</th>
|
||||
<th>Kennzeichen</th>
|
||||
<th>Gruppe</th>
|
||||
<th>Nachweis</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$len = strlen($data['anzahl_studierende']);
|
||||
$lfdnr = 1;
|
||||
foreach ($data as $value)
|
||||
{
|
||||
if( !(is_array($value) && isset($value['student'])) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$tmpstudent =& $value['student'];
|
||||
?>
|
||||
<tr class="<?php echo $covidhelper->getBootstrapClass($tmpstudent['uid'])?>" title="<?php echo $covidhelper->getTitle($tmpstudent['uid'])?>">
|
||||
<td><?php echo sprintf('%0' . $len . 'd', $lfdnr); ?></td>
|
||||
<td><?php echo $tmpstudent['nachname'] . ' ' . $tmpstudent['vorname'] . ' ' . $tmpstudent['zusatz']; ?></td>
|
||||
<td><?php echo $tmpstudent['personenkennzeichen']; ?></td>
|
||||
<td><?php echo $tmpstudent['semester'] . $tmpstudent['verband'] . $tmpstudent['gruppe']; ?></td>
|
||||
<td><?php echo $covidhelper->getIconHtml($tmpstudent['uid']); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
$lfdnr++;
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if( $debug )
|
||||
{
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
|
||||
<div class="debug">
|
||||
<pre>
|
||||
<?php
|
||||
print_r($data);
|
||||
print_r($covidstatus);
|
||||
?>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -197,8 +197,10 @@ else
|
||||
{
|
||||
$prestudent->getFirstStatus($prestudent_id, 'Student');
|
||||
$firstStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
$prestudent->getLastStatus($prestudent_id, null, 'Student');
|
||||
$lastStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
if ($prestudent->getLastStatus($prestudent_id, null, 'Diplomand'))
|
||||
$lastStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
elseif ($prestudent->getLastStatus($prestudent_id, null, 'Student'))
|
||||
$lastStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
$stsem_obj->getStudiensemesterBetween($firstStudiensemester, $lastStudiensemester);
|
||||
@@ -241,7 +243,7 @@ else
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte,
|
||||
tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte,
|
||||
tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum,
|
||||
tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum, tbl_zeugnisnote.uebernahmedatum,
|
||||
tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum,
|
||||
tbl_zeugnisnote.studiensemester_kurzbz AS studiensemester_zeugnis, tbl_lvgesamtnote.studiensemester_kurzbz AS studiensemester_lvnote,
|
||||
tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.ects
|
||||
@@ -354,6 +356,7 @@ else
|
||||
|
||||
if (count($pruefung->result) > 0)
|
||||
{
|
||||
$freigabedatum = $row->uebernahmedatum;
|
||||
$tblBody .= '<td>';
|
||||
foreach ($pruefung->result as $row)
|
||||
{
|
||||
@@ -367,7 +370,8 @@ else
|
||||
else
|
||||
$punkte = '';
|
||||
|
||||
$tblBody .= $row->pruefungstyp_beschreibung . ' ' . $datum_obj->formatDatum($row->datum, 'd.m.Y') . ' ' . $note . $punkte . '<br>';
|
||||
if ($datum_obj->formatDatum($freigabedatum, "Y-m-d") >= $row->datum)
|
||||
$tblBody .= $row->pruefungstyp_beschreibung . ' ' . $datum_obj->formatDatum($row->datum, 'd.m.Y') . ' ' . $note . $punkte . '<br>';
|
||||
}
|
||||
$tblBody .= '</td>';
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
* Manuela Thamer <manuela.thamer@technikum-wien.at>
|
||||
*/
|
||||
/*
|
||||
* Erstellt Notenliste im Excel Format
|
||||
@@ -200,25 +201,31 @@ else
|
||||
$stsemdatumbis = $stsem_obj->ende;
|
||||
|
||||
$qry = "SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von,
|
||||
tbl_zeugnisnote.note
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz
|
||||
FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id=tbl_student.prestudent_id
|
||||
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von,
|
||||
tbl_zeugnisnote.note,tbl_mobilitaet.mobilitaetstyp_kurzbz,
|
||||
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN '1' ELSE '' END) as doubledegree
|
||||
FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
|
||||
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
|
||||
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
|
||||
|
||||
if($lehreinheit_id!='')
|
||||
$qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -226,6 +233,7 @@ else
|
||||
$lines++;
|
||||
while($elem = $db->db_fetch_object($result))
|
||||
{
|
||||
$note='';
|
||||
if(!preg_match('*dummy*',$elem->uid) && $elem->semester!=10)
|
||||
{
|
||||
if($elem->status!='Abbrecher' && $elem->status!='Unterbrecher')
|
||||
@@ -243,8 +251,12 @@ else
|
||||
$inc.=' (ar)';
|
||||
$note='ar';
|
||||
}
|
||||
else
|
||||
$note='';
|
||||
|
||||
if ($elem->mobilitaetstyp_kurzbz !='' && $elem->doubledegree == 1) //dd-Program
|
||||
{
|
||||
$inc.=' (d.d.)';
|
||||
}
|
||||
|
||||
$worksheet->write($lines,1,$elem->uid);
|
||||
$worksheet->write($lines,2,$elem->nachname.$inc);
|
||||
$worksheet->write($lines,3,$elem->vorname);
|
||||
@@ -295,6 +307,8 @@ else
|
||||
$worksheet->write(++$lines,0,'(i) ... Incoming');
|
||||
$worksheet->write(++$lines,0,'(o) ... Outgoing');
|
||||
$worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet'));
|
||||
$worksheet->write(++$lines,0,'(iar) ... '.$p->t('anwesenheitsliste/internangerechnet'));
|
||||
$worksheet->write(++$lines,0,'(d.d.) ... Double Degree Program');
|
||||
|
||||
$worksheet->setColumn(0, 0, 5);
|
||||
$worksheet->setColumn(0, 1, 16);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
$url = "https://xgnd.bsz-bw.de/";
|
||||
$url = "https://ognd.bsz-bw.de/";
|
||||
$zielfeld = "kontrollschlagwoerter";
|
||||
$url = $url."?zielfeld=".$zielfeld;
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
|
||||
@@ -28,17 +28,29 @@ require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/freebusy.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
$user=get_uid();
|
||||
$user = get_uid();
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$action = (isset($_REQUEST['action'])?$_REQUEST['action']:'');
|
||||
$id = (isset($_REQUEST['id'])?$_REQUEST['id']:'');
|
||||
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Umfragen von anderen Personen anzuzeigen
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$user = $_GET['uid'];
|
||||
}
|
||||
}
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
@@ -49,11 +61,11 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<title>'.$p->t('freebusy/titel').'</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/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>
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
|
||||
@@ -274,7 +274,7 @@ if (!$ansicht)
|
||||
|
||||
if (!$ansicht)
|
||||
{
|
||||
if ($is_employee)
|
||||
if ($type === 'mitarbeiter')
|
||||
{
|
||||
$verwendung = new bisverwendung();
|
||||
if($verwendung->getLastVerwendung($uid))
|
||||
@@ -293,34 +293,33 @@ if (!$ansicht)
|
||||
$adresse = new adresse();
|
||||
$adresse->load_pers($user->person_id);
|
||||
|
||||
function sortAdresse($a , $b)
|
||||
if ($type === 'mitarbeiter')
|
||||
{
|
||||
if ($a->typ === $b->typ)
|
||||
return 0;
|
||||
|
||||
return ($a->typ < $b->typ) ? -1 : 1;
|
||||
}
|
||||
usort($adresse->result, "sortAdresse");
|
||||
foreach($adresse->result as $a)
|
||||
{
|
||||
if ($a->zustelladresse)
|
||||
foreach ($adresse->result as $a)
|
||||
{
|
||||
switch ($a->typ)
|
||||
echo $a->strasse . "<b> (" . $a->bezeichnung_mehrsprachig[$sprache] . ") </b>" . "<br>" . $a->plz . " " . $a->ort . "<br><br>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
function sortAdresse($a , $b)
|
||||
{
|
||||
if ($a->typ === $b->typ)
|
||||
return 0;
|
||||
|
||||
return ($a->typ < $b->typ) ? -1 : 1;
|
||||
}
|
||||
usort($adresse->result, "sortAdresse");
|
||||
|
||||
foreach($adresse->result as $a)
|
||||
{
|
||||
if ($a->zustelladresse)
|
||||
{
|
||||
case "h":
|
||||
$typ = $p->t("global/hauptwohnsitz");
|
||||
break;
|
||||
case "n":
|
||||
$typ = $p->t("global/nebenwohnsitz");
|
||||
break;
|
||||
default:
|
||||
$typ = NULL;
|
||||
break;
|
||||
}
|
||||
if ($typ !== NULL)
|
||||
{
|
||||
echo "<b>".$typ.": </b><br>";
|
||||
echo $a->strasse."<br>".$a->plz." ".$a->ort."<br><br>";
|
||||
if ($a->bezeichnung_mehrsprachig[$sprache] !== NULL)
|
||||
{
|
||||
echo "<b>".$a->bezeichnung_mehrsprachig[$sprache].": </b><br>";
|
||||
echo $a->strasse."<br>".$a->plz." ".$a->ort."<br><br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ $uid = get_uid();
|
||||
|
||||
$PHP_SELF = $_SERVER['PHP_SELF'];
|
||||
|
||||
$typen_arr = array("Urlaub", "PflegeU", "ZA", "Krank", "DienstF", "DienstV");
|
||||
$typen_arr = array("Urlaub", "PflegeU", "ZA", "Krank", "DienstF", "DienstV", "CovidSB", "CovidKS");
|
||||
|
||||
if(isset($_GET['type']))
|
||||
$type=$_GET['type'];
|
||||
@@ -69,8 +69,8 @@ $datum_obj = new datum();
|
||||
$ma= new mitarbeiter();
|
||||
|
||||
// definiert bis zu welchem Datum die Eintragung nicht mehr möglich ist
|
||||
$zasperre = new zeitaufzeichnung();
|
||||
if ($sperrdat = $zasperre->getEintragungGesperrtBisForUser($uid))
|
||||
$zaufzeichnung = new zeitaufzeichnung();
|
||||
if ($sperrdat = $zaufzeichnung->getEintragungGesperrtBisForUser($uid))
|
||||
$gesperrt_bis = $sperrdat;
|
||||
else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS != '')
|
||||
$gesperrt_bis = CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS;
|
||||
@@ -138,7 +138,15 @@ $( document ).ready(function()
|
||||
rows: 4,
|
||||
});
|
||||
|
||||
$("#vondatum").change(
|
||||
function()
|
||||
{
|
||||
$(".error").text("");
|
||||
}
|
||||
)
|
||||
|
||||
});
|
||||
|
||||
// set holidays function which is configured in beforeShowDay
|
||||
function setHoliDays(date) {
|
||||
for (i = 0; i < holiDays.length; i++) {
|
||||
@@ -302,7 +310,9 @@ function showHideStudeDropDown()
|
||||
|| dd.options[dd.selectedIndex].value == 'Urlaub'
|
||||
|| dd.options[dd.selectedIndex].value == 'Krank'
|
||||
|| dd.options[dd.selectedIndex].value == 'DienstF'
|
||||
|| dd.options[dd.selectedIndex].value == 'DienstV')
|
||||
|| dd.options[dd.selectedIndex].value == 'DienstV'
|
||||
|| dd.options[dd.selectedIndex].value == 'CovidSB'
|
||||
|| dd.options[dd.selectedIndex].value == 'CovidKS')
|
||||
{
|
||||
document.getElementById('vonStd').style.visibility = 'hidden';
|
||||
document.getElementById('bisStd').style.visibility = 'hidden';
|
||||
@@ -350,6 +360,40 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
|
||||
$error_msg .= $p->t('zeitsperre/bisDatumUngueltig').' ';
|
||||
}
|
||||
|
||||
//Prüfen auf vorhandene Zeitaufzeichnung
|
||||
if (isset($_POST['bisdatum']) && isset($_POST['vondatum'])
|
||||
&& $zaufzeichnung->existsZeitaufzeichnung($uid, $_POST['vondatum'], $_POST['bisdatum'])
|
||||
// Nur Zeitaufzeichnungsrelevante Typen sollen das speichern blockieren
|
||||
&& in_array($_POST['zeitsperretyp_kurzbz'], zeitsperre::getBlockierendeZeitsperren()))
|
||||
{
|
||||
$error = true;
|
||||
$error_msg .= $p->t('zeitsperre/zeitaufzeichnungVorhanden');
|
||||
}
|
||||
|
||||
//Prüfen auf vorhandene Zeitsperre
|
||||
if (isset($_POST['bisdatum']) && isset($_POST['vondatum'])
|
||||
&& in_array($_POST['zeitsperretyp_kurzbz'], zeitsperre::getBlockierendeZeitsperren()))
|
||||
{
|
||||
$von = $_POST['vondatum'];
|
||||
$von2 = new DateTime($von);
|
||||
$von2 = $von2->format('Y-m-d');
|
||||
$zeitsperre = new zeitsperre();
|
||||
|
||||
if ($zeitsperre->getSperreByDate($uid, $von2, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN))
|
||||
{
|
||||
foreach ($zeitsperre->result as $z)
|
||||
{
|
||||
// Beim editieren nicht mit dem eigenen Eintrag kollidieren
|
||||
if($_GET['type'] == 'edit_sperre' && $z->zeitsperre_id == $_GET['id'])
|
||||
continue;
|
||||
|
||||
$typ = $z->zeitsperretyp_kurzbz;
|
||||
$error = true;
|
||||
$error_msg .= $p->t('zeitsperre/zeitsperreEingetragen', [$von, $typ]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//von - bis-datum pruefen von darf nicht groesser als bis sein
|
||||
// 09.02.2009 simane
|
||||
$vondatum=0;
|
||||
|
||||
@@ -219,7 +219,8 @@ function getUserAmpelData($user)
|
||||
'verfallszeit' => $row->verfallszeit,
|
||||
'beschreibung' => $row->beschreibung,
|
||||
'abgelaufen' => $abgelaufen,
|
||||
'active' => $active);
|
||||
'active' => $active,
|
||||
'buttontext' => $row->buttontext);
|
||||
}
|
||||
|
||||
return array($user_ampel_arr, $cnt_ueberfaellig);
|
||||
@@ -491,7 +492,12 @@ function typeWrite(span){
|
||||
<p><br></p>
|
||||
<form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) . '?ampel_id='. urlencode($user_ampel['ampel_id']) . '&type=bestaetigen'; ?>">
|
||||
<button type="type" type="submit" class="btn btn-default pull-right"
|
||||
<?php if ($user_ampel['abgelaufen'] || $user_ampel['bestaetigt']) echo 'disabled data-toggle="tooltip" data-placement="top" title="' . $p->t('tools/ampelBestaetigtAbgelaufen'). '"'?>><?php echo $p->t('global/bestaetigen') ?>
|
||||
<?php if ($user_ampel['abgelaufen'] || $user_ampel['bestaetigt']) echo 'disabled data-toggle="tooltip" data-placement="top" title="' . $p->t('tools/ampelBestaetigtAbgelaufen'). '"'?>>
|
||||
<?php
|
||||
if ($user_ampel['buttontext'][$sprache] != '')
|
||||
echo $user_ampel['buttontext'][$sprache];
|
||||
else
|
||||
echo $p->t('global/bestaetigen') ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -39,6 +39,7 @@ require_once('../../../include/person.class.php');
|
||||
require_once('../../../include/mitarbeiter.class.php');
|
||||
require_once('../../../include/kontakt.class.php');
|
||||
require_once('../../../include/bisverwendung.class.php');
|
||||
require_once('../../../include/webservicelog.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -90,6 +91,20 @@ while ($array_key = array_search("", $searchItems))
|
||||
if(implode(',', $searchItems) == '')
|
||||
exit;
|
||||
|
||||
// Legt einen Logeintrag für die Suchstatistik an
|
||||
if (defined('LOG_CONTENT') && LOG_CONTENT==true)
|
||||
{
|
||||
$log = new webservicelog();
|
||||
|
||||
$log->webservicetyp_kurzbz = 'content';
|
||||
$log->request_id = '';
|
||||
$log->beschreibung = 'suche';
|
||||
$log->request_data = implode(';',$searchItems);
|
||||
$log->execute_user = $uid;
|
||||
|
||||
$log->save(true);
|
||||
}
|
||||
|
||||
//Easter Egg
|
||||
$easteregg = array ('antwort','leben','universum','rest','answer','universe','life','everything');
|
||||
$easteregg_intersect = array_intersect(array_map('strtolower',$searchItems), $easteregg);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -48,6 +48,11 @@ $sprache_index = $sprache_obj->index;
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$mitarbeiter->getUntergebene($uid, true);
|
||||
$untergebenen_arr = array();
|
||||
$untergebenen_arr = $mitarbeiter->untergebene;
|
||||
|
||||
//Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitaufzeichnung
|
||||
//des uebergebenen Users anzeigen
|
||||
if (isset($_GET['uid']))
|
||||
@@ -55,7 +60,7 @@ if (isset($_GET['uid']))
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if ($rechte->isBerechtigt('admin'))
|
||||
if ($rechte->isBerechtigt('admin') || (in_array($_GET['uid'], $untergebenen_arr)))
|
||||
{
|
||||
$uid = $_GET['uid'];
|
||||
}
|
||||
@@ -74,9 +79,9 @@ $year = $_GET['projexpjahr'];
|
||||
|
||||
$monthtext = $monatsname[$sprache_index][$month - 1];
|
||||
$username = $benutzer->vorname." ".$benutzer->nachname;
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$mitarbeiter->load($uid);
|
||||
$persnr = $mitarbeiter->personalnummer;
|
||||
|
||||
$daysinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
|
||||
|
||||
$date = new datum();
|
||||
|
||||
@@ -27,12 +27,18 @@ require_once('../../../include/projektphase.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/mitarbeiter.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$mitarbeiter->getUntergebene($user, true);
|
||||
$untergebenen_arr = array();
|
||||
$untergebenen_arr = $mitarbeiter->untergebene;
|
||||
|
||||
//Wenn User Administrator ist und UID uebergeben wurde, dann die Phasen
|
||||
//des uebergebenen Users anzeigen
|
||||
if (isset($_GET['uid']) && $user != $_GET['uid'])
|
||||
@@ -40,7 +46,7 @@ if (isset($_GET['uid']) && $user != $_GET['uid'])
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if ($rechte->isBerechtigt('admin'))
|
||||
if ($rechte->isBerechtigt('admin') || (in_array($_GET['uid'], $untergebenen_arr)))
|
||||
{
|
||||
$user = $_GET['uid'];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/* Copyright (C) 2021 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.
|
||||
*
|
||||
* Author: Manuela Thamer <manuela.thamer@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Checks, if there is a zeitsperre for a certain date. It should not be possible
|
||||
* to add a zeitaufzeichnung with a holiday (or else) entry on the same day.
|
||||
*/
|
||||
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/globals.inc.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/zeitsperre.class.php');
|
||||
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if ( isset($_GET['day']) )
|
||||
{
|
||||
$auth = new authentication();
|
||||
$uid = $auth->getUser();
|
||||
$day = $_GET['day'];
|
||||
|
||||
$zs = new zeitsperre();
|
||||
$sperreVorhanden = false;
|
||||
$typ = '';
|
||||
$zs->getSperreByDate($uid, $day, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN);
|
||||
$result_obj = array();
|
||||
$now = new DateTime($day);
|
||||
$now = $now->format('d.m.Y');
|
||||
|
||||
foreach ($zs->result as $z)
|
||||
{
|
||||
if ($z->zeitsperretyp_kurzbz)
|
||||
{
|
||||
$item['typ'] = $z->zeitsperretyp_kurzbz;
|
||||
$item['day'] = $now;
|
||||
$item['sperreVorhanden'] = true;
|
||||
$result_obj[] = $item;
|
||||
}
|
||||
}
|
||||
echo json_encode($result_obj);
|
||||
} else {
|
||||
http_response_code(500);
|
||||
echo json_encode(array(
|
||||
array(
|
||||
"error" => 'missing parameter day'
|
||||
)
|
||||
));
|
||||
}
|
||||
@@ -55,7 +55,7 @@ if (isset($_GET['logout']) && $_GET['logout'] == true)
|
||||
|
||||
echo '
|
||||
<script language="Javascript">
|
||||
location = location.pathname; // clean the login.php-url from querystring
|
||||
location = "logout.html"; // 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>
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>TestTool - FH Technikum Wien</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="col-xs-11">
|
||||
<div class="row" style="margin-bottom: 20px; margin-top: 3%;">
|
||||
<div class="col-xs-6 text-center" style="border-right: 1px solid lightgrey; float: left">
|
||||
<h1 style="white-space: normal">Vielen Dank für die Teilnahme an unserem Aufnahmeverfahren.</h1>
|
||||
<br/><br/>
|
||||
Die zuständige Assistenz wird sich in den nächsten Tagen bei Ihnen melden.
|
||||
<br/><br/>
|
||||
<a href="login.php" class="btn btn-default">Zurück zur Startseite</a>
|
||||
</div>
|
||||
<div class="col-xs-6 text-center" style="float: left">
|
||||
<h1 style="white-space: normal">Thank you for participating in our admission procedure.</h1>
|
||||
<br/><br/>
|
||||
The assistant in charge will contact you in the next few days.
|
||||
<br/><br/>
|
||||
<a href="login.php" class="btn btn-default">Back to startpage</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+1
-1
@@ -248,7 +248,7 @@
|
||||
|
||||
"chillerlan/php-qrcode": "2.0.*",
|
||||
|
||||
"chriskacerguis/codeigniter-restserver": "3.0.*",
|
||||
"chriskacerguis/codeigniter-restserver": "3.0.3",
|
||||
"christianbach/tablesorter": "1.0.*",
|
||||
"codeigniter/framework": "3.*",
|
||||
"components/jquery": "3.*",
|
||||
|
||||
Generated
+32
-31
@@ -4,8 +4,8 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "698d18072d5bdca35f006abb48135f97",
|
||||
"content-hash": "5d7d0ed8a6755422fedde68f26823701",
|
||||
"hash": "40072f80c7fd5e407eaba6591fb2d6ec",
|
||||
"content-hash": "e55258d0e91f60adde23afe67816258a",
|
||||
"packages": [
|
||||
{
|
||||
"name": "BlackrockDigital/startbootstrap-sb-admin-2",
|
||||
@@ -229,24 +229,24 @@
|
||||
},
|
||||
{
|
||||
"name": "codeigniter/framework",
|
||||
"version": "3.1.11",
|
||||
"version": "3.1.13",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bcit-ci/CodeIgniter.git",
|
||||
"reference": "b73eb19aed66190c10c9cad476da7c36c271d6dc"
|
||||
"reference": "bcb17eb8ba53a85de154439d0ab8ff1bed047bc9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bcit-ci/CodeIgniter/zipball/b73eb19aed66190c10c9cad476da7c36c271d6dc",
|
||||
"reference": "b73eb19aed66190c10c9cad476da7c36c271d6dc",
|
||||
"url": "https://api.github.com/repos/bcit-ci/CodeIgniter/zipball/bcb17eb8ba53a85de154439d0ab8ff1bed047bc9",
|
||||
"reference": "bcb17eb8ba53a85de154439d0ab8ff1bed047bc9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.7"
|
||||
},
|
||||
"require-dev": {
|
||||
"mikey179/vfsstream": "1.1.*",
|
||||
"phpunit/phpunit": "4.* || 5.*"
|
||||
"mikey179/vfsstream": "1.6.*",
|
||||
"phpunit/phpunit": "4.* || 5.* || 9.*"
|
||||
},
|
||||
"suggest": {
|
||||
"paragonie/random_compat": "Provides better randomness in PHP 5.x"
|
||||
@@ -258,7 +258,7 @@
|
||||
],
|
||||
"description": "The CodeIgniter framework",
|
||||
"homepage": "https://codeigniter.com",
|
||||
"time": "2019-09-19 12:08:45"
|
||||
"time": "2022-03-03 13:21:49"
|
||||
},
|
||||
{
|
||||
"name": "components/angular.js",
|
||||
@@ -1422,16 +1422,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpseclib/phpseclib",
|
||||
"version": "2.0.34",
|
||||
"version": "2.0.36",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||
"reference": "98a6fe587f3481aea319eef7e656d02cfe1675ec"
|
||||
"reference": "a97547126396548c224703a267a30af1592be146"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/98a6fe587f3481aea319eef7e656d02cfe1675ec",
|
||||
"reference": "98a6fe587f3481aea319eef7e656d02cfe1675ec",
|
||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/a97547126396548c224703a267a30af1592be146",
|
||||
"reference": "a97547126396548c224703a267a30af1592be146",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1509,7 +1509,7 @@
|
||||
"x.509",
|
||||
"x509"
|
||||
],
|
||||
"time": "2021-10-27 02:46:30"
|
||||
"time": "2022-01-30 08:48:36"
|
||||
},
|
||||
{
|
||||
"name": "rmariuzzo/jquery-checkboxes",
|
||||
@@ -1564,12 +1564,12 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@@ -1843,23 +1843,23 @@
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/database",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zetacomponents/Database.git",
|
||||
"reference": "1750d34bf64b62f064c5b1aeb5374fbd06400904"
|
||||
"reference": "85a2fd2af4e49f64d5c7616b6fb82c1b88de53b4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zetacomponents/Database/zipball/1750d34bf64b62f064c5b1aeb5374fbd06400904",
|
||||
"reference": "1750d34bf64b62f064c5b1aeb5374fbd06400904",
|
||||
"url": "https://api.github.com/repos/zetacomponents/Database/zipball/85a2fd2af4e49f64d5c7616b6fb82c1b88de53b4",
|
||||
"reference": "85a2fd2af4e49f64d5c7616b6fb82c1b88de53b4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"zetacomponents/base": "~1.8"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~5.7",
|
||||
"phpunit/phpunit": "~8.0",
|
||||
"zetacomponents/database-schema": "~1.5",
|
||||
"zetacomponents/unit-test": "*"
|
||||
},
|
||||
@@ -1916,27 +1916,28 @@
|
||||
],
|
||||
"description": "A lightweight database layer on top of PHP's PDO that allows you to utilize a database without having to take care of differences in SQL dialects.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2017-11-28 10:55:26"
|
||||
"time": "2022-02-11 17:18:33"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/document",
|
||||
"version": "1.3.1",
|
||||
"version": "1.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zetacomponents/Document.git",
|
||||
"reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8"
|
||||
"reference": "196884f00871ea7dcbca9ab8bc85716f626e9cc3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zetacomponents/Document/zipball/688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
|
||||
"reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
|
||||
"url": "https://api.github.com/repos/zetacomponents/Document/zipball/196884f00871ea7dcbca9ab8bc85716f626e9cc3",
|
||||
"reference": "196884f00871ea7dcbca9ab8bc85716f626e9cc3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"zetacomponents/base": "*"
|
||||
"zetacomponents/base": "~1.8"
|
||||
},
|
||||
"require-dev": {
|
||||
"zetacomponents/unit-test": "dev-master"
|
||||
"phpunit/phpunit": "~8.0",
|
||||
"zetacomponents/unit-test": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -1967,7 +1968,7 @@
|
||||
],
|
||||
"description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2013-12-19 11:40:00"
|
||||
"time": "2022-02-11 17:26:31"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/workflow",
|
||||
|
||||
@@ -194,6 +194,9 @@ define('REIHUNGSTEST_CHECK', true);
|
||||
// Bei Statuswechsel auf Bewerber bzw. Student -> soll ZGV brücksichtigt werden
|
||||
define('ZGV_CHECK', true);
|
||||
|
||||
define ('ZGV_DOKTOR_ANZEIGEN', false);
|
||||
define ('ZGV_ERFUELLT_ANZEIGEN', false);
|
||||
|
||||
// Bei Statuswechsel auf Bewerber -> bei true wird email (INFOMAIL_BEWERBER) an den Bewerber geschickt
|
||||
define('SEND_BEWERBER_INFOMAIL', false);
|
||||
|
||||
|
||||
@@ -70,13 +70,15 @@ else
|
||||
<row>
|
||||
<label value="Typ" control="adresse-menulist-typ"/>
|
||||
<menulist id="adresse-menulist-typ"
|
||||
flex="1">
|
||||
datasources="<?php echo APP_ROOT ?>rdf/adressentyp.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/adressentyp/liste">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="h" label="Hauptwohnsitz"/>
|
||||
<menuitem value="n" label="Nebenwohnsitz"/>
|
||||
<menuitem value="f" label="Firma"/>
|
||||
<menuitem value="r" label="Rechnungsadresse"/>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/adressentyp/rdf#adressentyp"
|
||||
label="rdf:http://www.technikum-wien.at/adressentyp/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
|
||||
@@ -204,7 +204,7 @@ else
|
||||
<row id="betriebsmittel-row-nummer2">
|
||||
<label value="Nummer 2" control="betriebsmittel-textbox-nummer2"/>
|
||||
<hbox>
|
||||
<textbox id="betriebsmittel-textbox-nummer2" disabled="true" maxlength="12"/>
|
||||
<textbox id="betriebsmittel-textbox-nummer2" disabled="true" maxlength="32"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
+1
-1
@@ -903,7 +903,7 @@ foreach($addon_obj->result as $addon)
|
||||
echo '<tree id="tree-verband" />';
|
||||
//echo '<vbox id="vbox-fachbereich" />';
|
||||
echo '<vbox id="vbox-organisationseinheit" />';
|
||||
echo '<tree id="tree-lektor" />';
|
||||
echo '<vbox id="vbox-lektor" />';
|
||||
}
|
||||
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter'))
|
||||
{
|
||||
|
||||
@@ -413,6 +413,12 @@ if(!$error)
|
||||
}
|
||||
if(!$error)
|
||||
{
|
||||
//Check, ob OE aktiv ist, sonst Hinweis ausgeben
|
||||
$oe = new organisationseinheit($_POST['oe_kurzbz']);
|
||||
if ($oe->aktiv === false)
|
||||
{
|
||||
$errormsg = 'ACHTUNG: Die Organisationseinheit ist inaktiv. Änderungen wurden gespeichert.';
|
||||
}
|
||||
$benutzerfunktion->oe_kurzbz = $_POST['oe_kurzbz'];
|
||||
$benutzerfunktion->semester = $_POST['semester'];
|
||||
$benutzerfunktion->fachbereich_kurzbz = $_POST['fachbereich_kurzbz'];
|
||||
|
||||
@@ -741,6 +741,10 @@ function onLektorSelect(event)
|
||||
var uid=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
var stg_idx = tree.view.getParentIndex(tree.currentIndex);
|
||||
//Wenn der Filter angewendet wurde, gibt es keinen Parent. Daher wird hier der stg_idx auf 0 gesetzt.
|
||||
if(stg_idx == -1 && uid != '')
|
||||
stg_idx = 0;
|
||||
|
||||
//wenn direkt ein studiengang markiert wurde dann abbrechen
|
||||
if(stg_idx==-1)
|
||||
return;
|
||||
@@ -789,6 +793,58 @@ function onLektorSelect(event)
|
||||
}
|
||||
}
|
||||
|
||||
// Lektorenliste aktualisieren
|
||||
function onLektorRefresh()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var treeLektorenTree=document.getElementById('tree-lektor');
|
||||
// Input-Feld leeren
|
||||
document.getElementById('fas-lektor-filter').value = '';
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/mitarbeiter.rdf.php?user=true&'+gettimestamp();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
var datasource = rdfService.GetDataSource(url);
|
||||
var oldDatasources = treeLektorenTree.database.GetDataSources();
|
||||
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
|
||||
treeLektorenTree.database.RemoveDataSource(oldDatasources.getNext());
|
||||
treeLektorenTree.database.AddDataSource(datasource);
|
||||
treeLektorenTree.builder.rebuild();
|
||||
}
|
||||
|
||||
// Lektorenliste filtern
|
||||
function onLektorFilter()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var filter=document.getElementById('fas-lektor-filter').value;
|
||||
|
||||
var treeLektorenTree=document.getElementById('tree-lektor');
|
||||
|
||||
if(filter.length>2)
|
||||
{
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/mitarbeiter.rdf.php?filter='+encodeURIComponent(filter)+'&'+gettimestamp();
|
||||
var oldDatasources = treeLektorenTree.database.GetDataSources();
|
||||
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
treeLektorenTree.builder.rebuild();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
if(typeof(filter)=='undefined')
|
||||
var datasource = rdfService.GetDataSource(url);
|
||||
else
|
||||
var datasource = rdfService.GetDataSourceBlocking(url);
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
treeLektorenTree.database.RemoveDataSource(oldDatasources.getNext());
|
||||
treeLektorenTree.database.AddDataSource(datasource);
|
||||
if(typeof(filter)!='undefined')
|
||||
treeLektorenTree.builder.rebuild();
|
||||
treeLektorenTree.builder.addListener(LektorTreeListener);
|
||||
}
|
||||
}
|
||||
|
||||
function loadURL(event)
|
||||
{
|
||||
var contentFrame = document.getElementById('contentFrame');
|
||||
|
||||
+61
-45
@@ -133,52 +133,68 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiteroverlay.xul
|
||||
</tree>
|
||||
</vbox>
|
||||
|
||||
<tree id="tree-lektor" onmouseup="onLektorSelect(event);"
|
||||
seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
enableColumnDrag="true"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,mitarbeiterDDObserver);"
|
||||
ondrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)"
|
||||
ondragdrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,LektorFunktionDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,LektorFunktionDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,LektorFunktionDDObserver)"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/mitarbeiter/liste"
|
||||
context="fasoverlay-lektor-tree-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kurzbz" label="Kuerzel" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="nachname" label="Nachname" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="vorname" label="Vorname" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="titel" label="Titel" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="uid" label="UID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="studiengang_kz" label="Studiengangkz" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-lektor-fixangestellt" label="Fixangestellt" flex="1" hidden="true"/>
|
||||
</treecols>
|
||||
<vbox id="vbox-lektor">
|
||||
<hbox>
|
||||
<!-- <spacer flex="1" />-->
|
||||
<toolbox>
|
||||
<toolbar id="toolbarLektorTreeFilter" tbautostretch="always" persist="collapsed">
|
||||
<toolbarbutton id="toolbarbuttonLektorTreeRefresh"
|
||||
image="../skin/images/refresh.png"
|
||||
oncommand="onLektorRefresh();"
|
||||
tooltiptext="Neu laden"
|
||||
/>
|
||||
<textbox id="fas-lektor-filter" size="30" oninput="onLektorFilter()" flex="1"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<!-- <spacer flex="1" />-->
|
||||
</hbox>
|
||||
<tree id="tree-lektor" onmouseup="onLektorSelect(event);"
|
||||
seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
enableColumnDrag="true"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,mitarbeiterDDObserver);"
|
||||
ondrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)"
|
||||
ondragdrop="nsDragAndDrop.drop(event,LektorFunktionDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,LektorFunktionDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,LektorFunktionDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,LektorFunktionDDObserver)"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/mitarbeiter/liste"
|
||||
context="fasoverlay-lektor-tree-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kurzbz" label="Kuerzel" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="nachname" label="Nachname" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="vorname" label="Vorname" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="titel" label="Titel" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="uid" label="UID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="studiengang_kz" label="Studiengangkz" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-lektor-fixangestellt" label="Fixangestellt" flex="1" hidden="true"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#studiengang_kz"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#studiengang_kz"/>
|
||||
<treecell properties="Lektor_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</vbox>
|
||||
|
||||
<tree id="tree-menu-mitarbeiter" onselect="onMitarbeiterSelect();"
|
||||
seltype="single" hidecolumnpicker="true" flex="1"
|
||||
|
||||
@@ -419,3 +419,17 @@ function setVariable(variable, wert)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Validierung Alias auf Sonderzeichen (analog zu checkWunschUid erlaubt)
|
||||
// ****
|
||||
function checkAlias(alias)
|
||||
{
|
||||
|
||||
if (/^[a-z0-9 . _ -]*$/i.test(alias) === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -328,6 +328,8 @@ function FunktionDetailSpeichern(kopie)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(val.dbdml_errormsg!='' && val.dbdml_errormsg!='unknown')
|
||||
alert(val.dbdml_errormsg);
|
||||
FunktionBezeichnungChanged=false;
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
FunktionenSelectID=val.dbdml_data;
|
||||
|
||||
@@ -49,8 +49,11 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
<menupopup id="lehrveranstaltung-noten-tree-popup">
|
||||
<menuitem label="Entfernen" oncommand="LehrveranstaltungNotenDelete();" id="lehrveranstaltung-noten-tree-popup-delete" hidden="false"/>
|
||||
<menuitem label="Zertifikat erstellen" oncommand="LehrveranstaltungFFZertifikatPrint(event);" id="lehrveranstaltung-noten-tree-popup-ffzertifikat" hidden="false"/>
|
||||
<menuitem label="Zertifikat erstellen mit Signatur" oncommand="LehrveranstaltungFFZertifikatPrint(event, true);" id="lehrveranstaltung-noten-tree-popup-ffzertifikat" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis Deutsch erstellen" oncommand="LehrveranstaltungLVZeugnisPrint(event, 'German');" id="lehrveranstaltung-noten-tree-popup-lvzeugnis" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis Deutsch erstellen mit Signatur" oncommand="LehrveranstaltungLVZeugnisPrint(event, 'German', true);" id="lehrveranstaltung-noten-tree-popup-lvzeugnis" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis Englisch erstellen" oncommand="LehrveranstaltungLVZeugnisPrint(event, 'English');" id="lehrveranstaltung-noten-tree-popup-lvzeugnis-englisch" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis Englisch erstellen mit Signatur" oncommand="LehrveranstaltungLVZeugnisPrint(event, 'English', true);" id="lehrveranstaltung-noten-tree-popup-lvzeugnis-englisch" hidden="false"/>
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<hbox flex="1" style="margin-top: 10px;">
|
||||
|
||||
@@ -707,6 +707,7 @@ function LeDetailSave()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=false;
|
||||
LeDetailDisableFields(true);
|
||||
//LvTreeRefresh();
|
||||
LvSelectLehreinheit_id=val.dbdml_data;
|
||||
LvOpenLehrveranstaltung_id=lehrveranstaltung;
|
||||
@@ -1335,7 +1336,7 @@ function LeMitarbeiterAuswahl()
|
||||
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false;
|
||||
|
||||
var gesamtkosten = LeMitarbeiterGesamtkosten();
|
||||
|
||||
|
||||
// Wenn Vertragsdetails angezeigt werden
|
||||
if (lehrveranstaltung_vertragsdetails_anzeigen) {
|
||||
|
||||
@@ -2261,6 +2262,8 @@ function LehrveranstaltungNotenAuswahl()
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp();
|
||||
|
||||
var dsource = rdfService.GetDataSourceBlocking(url);
|
||||
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/zeugnisnote/" + lehrveranstaltung_id+'/'+student_uid+'/'+studiensemester_kurzbz);
|
||||
@@ -2272,9 +2275,6 @@ function LehrveranstaltungNotenAuswahl()
|
||||
note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" ));
|
||||
punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
|
||||
|
||||
//Daten holen
|
||||
var url = '<?php echo APP_ROOT ?>rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp();
|
||||
|
||||
if(note=='')
|
||||
note='9';
|
||||
|
||||
@@ -2403,7 +2403,7 @@ function LehrveranstaltungNotenPunkteChange()
|
||||
// ****
|
||||
// * Erstellt das Zertifikat fuer die Freifaecher
|
||||
// ****
|
||||
function LehrveranstaltungFFZertifikatPrint(event)
|
||||
function LehrveranstaltungFFZertifikatPrint(event, signieren)
|
||||
{
|
||||
tree = document.getElementById('lehrveranstaltung-noten-tree');
|
||||
//Alle markierten Noten holen
|
||||
@@ -2414,39 +2414,93 @@ function LehrveranstaltungFFZertifikatPrint(event)
|
||||
var anzahl=0;
|
||||
var lvid='';
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
uid = tree.view.getCellText(v,col);
|
||||
paramList += ';'+uid;
|
||||
anzahl = anzahl+1;
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
lvid = tree.view.getCellText(v,col);
|
||||
}
|
||||
}
|
||||
var ss = getStudiensemester();
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiengang_kz_lv"] : "lehrveranstaltung-noten-tree-studiengang_kz_lv";
|
||||
stg_kz = tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
if (event.shiftKey)
|
||||
var output='odt';
|
||||
else if (event.ctrlKey)
|
||||
var output='doc';
|
||||
else
|
||||
var output='pdf';
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&ss='+ss+'&'+gettimestamp();
|
||||
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
|
||||
window.location.href = url;
|
||||
//prompt('test:',url);
|
||||
if (signieren)
|
||||
{
|
||||
// Wenn die Dokumente signiert werden, dann einzeln erstellen
|
||||
|
||||
var errors='';
|
||||
var anz_erfolgreich=0;
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
uid = tree.view.getCellText(v,col);
|
||||
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
lvid = tree.view.getCellText(v,col);
|
||||
|
||||
// Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
req.add('output', 'pdf');
|
||||
req.add('sign', '1');
|
||||
req.add('archive', '1');
|
||||
req.add('uid', uid);
|
||||
req.add('lvid', lvid);
|
||||
|
||||
var response = req.execute();
|
||||
|
||||
if (response != '')
|
||||
errors = errors + response;
|
||||
else
|
||||
{
|
||||
anz_erfolgreich = anz_erfolgreich + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (errors != '')
|
||||
{
|
||||
alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert. Folgende Fehler sind aufgetreten:' + errors);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// wenn die Dokumente unsigniert erstellt werden, dann alle in ein Dokument generieren
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
uid = tree.view.getCellText(v,col);
|
||||
paramList += ';'+uid;
|
||||
anzahl = anzahl+1;
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
lvid = tree.view.getCellText(v,col);
|
||||
}
|
||||
}
|
||||
|
||||
if (event.shiftKey)
|
||||
var output='odt';
|
||||
else if (event.ctrlKey)
|
||||
var output='doc';
|
||||
else
|
||||
var output='pdf';
|
||||
|
||||
url = url +'&uid='+paramList+'&lvid='+lvid+'&output='+output;
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Erstellt ein Lehrveranstaltungszeugnis fuer die LV
|
||||
// ****
|
||||
function LehrveranstaltungLVZeugnisPrint(event, sprache)
|
||||
function LehrveranstaltungLVZeugnisPrint(event, sprache, signieren)
|
||||
{
|
||||
tree = document.getElementById('lehrveranstaltung-noten-tree');
|
||||
//Alle markierten Noten holen
|
||||
@@ -2457,37 +2511,92 @@ function LehrveranstaltungLVZeugnisPrint(event, sprache)
|
||||
var anzahl=0;
|
||||
var lvid='';
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
uid = tree.view.getCellText(v,col);
|
||||
paramList += ';'+uid;
|
||||
anzahl = anzahl+1;
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
lvid = tree.view.getCellText(v,col);
|
||||
}
|
||||
}
|
||||
var ss = getStudiensemester();
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiengang_kz"] : "lehrveranstaltung-noten-tree-studiengang_kz";
|
||||
stg_kz = tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
if (event.shiftKey)
|
||||
var output='odt';
|
||||
else if (event.ctrlKey)
|
||||
var output='doc';
|
||||
else
|
||||
var output='pdf';
|
||||
|
||||
var xsl = 'LVZeugnis';
|
||||
|
||||
if (sprache == 'English')
|
||||
xsl = 'LVZeugnisEng';
|
||||
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
|
||||
window.location.href = url;
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&ss='+ss+'&'+gettimestamp();
|
||||
|
||||
if(signieren)
|
||||
{
|
||||
// Wenn die Dokumente signiert werden, dann einzeln erstellen
|
||||
|
||||
var errors='';
|
||||
var anz_erfolgreich=0;
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
uid = tree.view.getCellText(v,col);
|
||||
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
lvid = tree.view.getCellText(v,col);
|
||||
|
||||
// Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
req.add('output', 'pdf');
|
||||
req.add('sign', '1');
|
||||
req.add('archive', '1');
|
||||
req.add('uid', uid);
|
||||
req.add('lvid', lvid);
|
||||
|
||||
var response = req.execute();
|
||||
|
||||
if (response != '')
|
||||
errors = errors + response;
|
||||
else
|
||||
{
|
||||
anz_erfolgreich = anz_erfolgreich + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (errors != '')
|
||||
{
|
||||
alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert. Folgende Fehler sind aufgetreten:' + errors);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// wenn die Dokumente unsigniert erstellt werden, dann alle in ein Dokument generieren
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
uid = tree.view.getCellText(v,col);
|
||||
paramList += ';'+uid;
|
||||
anzahl = anzahl+1;
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
lvid = tree.view.getCellText(v,col);
|
||||
}
|
||||
}
|
||||
|
||||
if (event.shiftKey)
|
||||
var output='odt';
|
||||
else if (event.ctrlKey)
|
||||
var output='doc';
|
||||
else
|
||||
var output='pdf';
|
||||
|
||||
|
||||
url = url+'&lvid='+lvid+'&uid='+paramList+'&output='+output;
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
|
||||
@@ -269,7 +269,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Anmerkung" control="mitarbeiter-detail-textbox-mitarbeiteranmerkung"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-mitarbeiteranmerkung" disabled="true" multiline="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<vbox>
|
||||
<label value="Alias" control="mitarbeiter-detail-textbox-alias"/>
|
||||
<label value="Alias" control="mitarbeiter-detail-textbox-alias" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<textbox id="mitarbeiter-detail-textbox-alias" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
|
||||
@@ -857,6 +857,12 @@ function MitarbeiterSave()
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!checkAlias(alias))
|
||||
{
|
||||
alert('Der Alias darf keine Sonderzeichen außer ._- enthalten.');
|
||||
return false;
|
||||
}
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
|
||||
+16
-3
@@ -47,6 +47,7 @@ require_once('../include/studienordnung.class.php');
|
||||
require_once('../include/dokument_export.class.php');
|
||||
require_once('../include/dokument.class.php');
|
||||
require_once('../include/pdf.class.php');
|
||||
require_once('../include/lehrveranstaltung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -458,7 +459,7 @@ else
|
||||
}
|
||||
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
|
||||
if ($sign === true)
|
||||
{
|
||||
$dokument->sign($user);
|
||||
@@ -520,6 +521,18 @@ else
|
||||
{
|
||||
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
|
||||
}
|
||||
elseif ($xsl === 'LVZeugnisEng' || $xsl === 'LVZeugnis' || $xsl === 'Zertifikat')
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung($_GET['lvid']);
|
||||
$vorlage->dokument_kurzbz = $xsl;
|
||||
$bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss . ' '. $lehrveranstaltung->bezeichnung, 0, 64);
|
||||
$titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss. '_' . str_replace(' ', '_', $lehrveranstaltung->bezeichnung), 0, 60);
|
||||
}
|
||||
elseif ($xsl == 'SZeugnis')
|
||||
{
|
||||
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
|
||||
$titel = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss, 0, 64);
|
||||
@@ -566,7 +579,7 @@ else
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
$error = false;
|
||||
|
||||
|
||||
// XML-tag archivierbar ergaenzen
|
||||
$dokument->setXMLTag_archivierbar();
|
||||
|
||||
@@ -578,7 +591,7 @@ else
|
||||
{
|
||||
$dokument->sign($user);
|
||||
}
|
||||
|
||||
|
||||
if ($dokument->create($output))
|
||||
$doc = $dokument->output(false);
|
||||
else
|
||||
|
||||
@@ -31,18 +31,18 @@ function treeProjektmenueSelect()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree=document.getElementById('tree-projektmenue');
|
||||
|
||||
|
||||
// Wenn auf die Ueberschrift geklickt wird, soll nix passieren
|
||||
if(tree.currentIndex==-1)
|
||||
return;
|
||||
|
||||
|
||||
var bezeichnung = getTreeCellText(tree, "treecol-projektmenue-bezeichnung", tree.currentIndex);
|
||||
var oe=getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
|
||||
var projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
var projekt_phase=getTreeCellText(tree, "treecol-projektmenue-projekt_phase", tree.currentIndex);
|
||||
var projekt_phase_id=getTreeCellText(tree, "treecol-projektmenue-projekt_phase_id", tree.currentIndex);
|
||||
|
||||
|
||||
|
||||
|
||||
//Neu und Delete Button fuer Projekte und Phasen aktivieren/deaktivieren
|
||||
if (projekt_kurzbz=='')
|
||||
{
|
||||
@@ -54,7 +54,7 @@ function treeProjektmenueSelect()
|
||||
document.getElementById('toolbarbutton-projekt-neu').disabled=true;
|
||||
document.getElementById('toolbarbutton-projektphase-neu').disabled=false;
|
||||
}
|
||||
|
||||
|
||||
//Projekte neu laden
|
||||
try
|
||||
{
|
||||
@@ -75,8 +75,8 @@ function treeProjektmenueSelect()
|
||||
reloadRessourcePhasen();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
// Wenn der Tab Phase oder Tasks ausgewaehlt ist auf die Projekte wechseln
|
||||
if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projektphase')
|
||||
|| document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projekttask'))
|
||||
@@ -102,7 +102,7 @@ function treeProjektmenueSelect()
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
datasourceTreeProjekt = rdfService.GetDataSource(datasource);
|
||||
datasourceTreeProjekt.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -115,12 +115,12 @@ function treeProjektmenueSelect()
|
||||
{
|
||||
debug("whoops Projekt load failed with exception: "+e);
|
||||
}
|
||||
|
||||
|
||||
// Projektphasen neu laden
|
||||
if(projekt_kurzbz!='')
|
||||
{
|
||||
// Wenn ein Projekt angeklickt wird, ggf Karteireiter wechseln
|
||||
|
||||
|
||||
// Wenn der Ressourceauslastung Tab geoeffnet ist
|
||||
if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-ressourceauslastung'))
|
||||
{
|
||||
@@ -135,7 +135,7 @@ function treeProjektmenueSelect()
|
||||
reloadRessourcePhasen();
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// Wenn der Tab Projekte oder Tasks ausgewaehlt ist auf die Phasen wechseln
|
||||
if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projekte')
|
||||
@@ -144,10 +144,11 @@ function treeProjektmenueSelect()
|
||||
document.getElementById('tabs-planner-main').selectedItem=document.getElementById('tab-projektphase');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
var datasources="<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?"+gettimestamp();
|
||||
datasources = datasources + "&filterprj=" + encodeURIComponent(projekt_kurzbz);
|
||||
var ref="http://www.technikum-wien.at/projektphase/"+oe+"/"+projekt_kurzbz;
|
||||
var treePhase=document.getElementById('tree-projektphase');
|
||||
|
||||
@@ -165,7 +166,7 @@ function treeProjektmenueSelect()
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
datasourceTreeProjektphase = rdfService.GetDataSource(datasources);
|
||||
datasourceTreeProjektphase.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -180,7 +181,7 @@ function treeProjektmenueSelect()
|
||||
debug("whoops Projektphase load failed with exception: "+e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Projekttasks neu laden
|
||||
if(projekt_phase_id!='')
|
||||
{
|
||||
@@ -190,12 +191,12 @@ function treeProjektmenueSelect()
|
||||
{
|
||||
document.getElementById('tabs-planner-main').selectedItem=document.getElementById('tab-projekttask');
|
||||
}
|
||||
LoadTasks(projekt_phase_id);
|
||||
LoadTasks(projekt_phase_id);
|
||||
}
|
||||
|
||||
|
||||
document.getElementById('projekttask-toolbar-del').disabled=true;
|
||||
|
||||
|
||||
|
||||
|
||||
// Dokumente laden
|
||||
if(projekt_phase_id!='' || projekt_kurzbz!='')
|
||||
{
|
||||
@@ -203,21 +204,21 @@ function treeProjektmenueSelect()
|
||||
document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=false;
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
if(projekt_phase_id!='')
|
||||
url = "<?php echo APP_ROOT; ?>rdf/dms.rdf.php?projektphase_id="+projekt_phase_id+"&"+gettimestamp();
|
||||
else if(projekt_kurzbz!='')
|
||||
url = "<?php echo APP_ROOT; ?>rdf/dms.rdf.php?projekt_kurzbz="+projekt_kurzbz+"&"+gettimestamp();
|
||||
|
||||
|
||||
var treeDokument=document.getElementById('tree-projektdokument');
|
||||
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = treeDokument.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
treeDokument.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
datasourceTreeDokument.removeXMLSinkObserver(DokumentTreeSinkObserver);
|
||||
@@ -226,7 +227,7 @@ function treeProjektmenueSelect()
|
||||
catch(e)
|
||||
{}
|
||||
treeDokument.builder.rebuild();
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
datasourceTreeDokument = rdfService.GetDataSource(url);
|
||||
datasourceTreeDokument.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -245,13 +246,13 @@ function treeProjektmenueSelect()
|
||||
else
|
||||
{
|
||||
document.getElementById('toolbarbutton-projektdokument-neu').disabled=true;
|
||||
document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=true;
|
||||
document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=true;
|
||||
drawGantt();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Bestellung laden
|
||||
if(projekt_phase_id=='' && projekt_kurzbz!='')
|
||||
{
|
||||
@@ -259,14 +260,14 @@ function treeProjektmenueSelect()
|
||||
{
|
||||
url = "<?php echo APP_ROOT; ?>rdf/bestellung.rdf.php?projektKurzbz="+projekt_kurzbz+"&"+gettimestamp();
|
||||
var treeBestellung=document.getElementById('tree-bestellung');
|
||||
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = treeBestellung.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
treeBestellung.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
datasourceTreeBestellung.removeXMLSinkObserver(BestellungTreeSinkObserver);
|
||||
@@ -274,7 +275,7 @@ function treeProjektmenueSelect()
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
datasourceTreeBestellung = rdfService.GetDataSource(url);
|
||||
datasourceTreeBestellung.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -323,7 +324,7 @@ function ProjektmenueRefresh(filter)
|
||||
global_filter='alle';
|
||||
if(filter==undefined)
|
||||
filter=global_filter;
|
||||
|
||||
|
||||
global_filter=filter;
|
||||
try
|
||||
{
|
||||
@@ -332,7 +333,7 @@ function ProjektmenueRefresh(filter)
|
||||
url = "<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?"+gettimestamp();
|
||||
else
|
||||
url = "<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?filter="+global_filter+"&"+gettimestamp();
|
||||
|
||||
|
||||
var treeProjektmenue=document.getElementById('tree-projektmenue');
|
||||
|
||||
//Alte DS entfernen
|
||||
@@ -342,7 +343,7 @@ function ProjektmenueRefresh(filter)
|
||||
treeProjektmenue.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
treeProjektmenue.builder.rebuild();
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
datasourceTreeProjektmenue = rdfService.GetDataSource(url);
|
||||
datasourceTreeProjektmenue.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -372,11 +373,11 @@ function loadURL(event)
|
||||
function parseRDFString(str, url)
|
||||
{
|
||||
|
||||
try
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
}
|
||||
catch(e)
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
alert(e);
|
||||
return;
|
||||
@@ -423,34 +424,34 @@ var projektTaskDDObserver=
|
||||
{
|
||||
debug('treeDragDrop: e');
|
||||
}
|
||||
|
||||
|
||||
var ds = dragservice_ds;
|
||||
|
||||
var tree = document.getElementById('tree-projektmenue')
|
||||
var row = { }
|
||||
var col = { }
|
||||
var child = { }
|
||||
|
||||
|
||||
tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child)
|
||||
|
||||
|
||||
col = tree.columns ? tree.columns["treecol-projektmenue-projekt_phase_id"] : "treecol-projektmenue-projekt_phase_id";
|
||||
projektphaseID=tree.view.getCellText(row.value,col);
|
||||
|
||||
|
||||
if(projektphaseID == '')
|
||||
{
|
||||
alert('keine phase ausgewählt!');
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
var projekttask_id = dropdata.data;
|
||||
|
||||
var projekttask_id = dropdata.data;
|
||||
|
||||
var soapBody = new SOAPObject("changeProjektPhase");
|
||||
//soapBody.appendChild(new SOAPObject("username")).val('joe');
|
||||
//soapBody.appendChild(new SOAPObject("passwort")).val('waschl');
|
||||
soapBody.appendChild(new SOAPObject("projekttask_id")).val(projekttask_id);
|
||||
soapBody.appendChild(new SOAPObject("projektphase_id")).val(projektphaseID);
|
||||
|
||||
|
||||
var sr = new SOAPRequest("changeProjektPhase",soapBody);
|
||||
|
||||
|
||||
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekttask.soap.php?"+gettimestamp();
|
||||
SOAPClient.SendRequest(sr, clb_changePhaseTask);
|
||||
}
|
||||
@@ -473,7 +474,7 @@ function clb_changePhaseTask(respObj)
|
||||
}
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
document.getElementById('textbox-projekttaskdetail-projekttask_id').value=id;
|
||||
|
||||
|
||||
TaskSelectID=id;
|
||||
datasourceTreeTask.Refresh(false); //non blocking
|
||||
TaskTreeRefresh()
|
||||
|
||||
@@ -109,6 +109,14 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdetail.overlay.xul.
|
||||
<treecol id="treecol-projekt-endeiso" label="EndeISO" flex="2" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekt/rdf#ende_iso" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projekt-aufwand_pt" label="Aufwand PT" flex="2" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekt/rdf#aufwandpt" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projekt-anzahl_ma" label="Anzahl MA" flex="2" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekt/rdf#anzahl_ma" />
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -126,6 +134,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdetail.overlay.xul.
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#budget"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#beginn_iso"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#ende_iso"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#aufwand_pt"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#anzahl_ma"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
||||
@@ -91,6 +91,10 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektphasedetail.overlay
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projektphase/rdf#ende_iso" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektphase-personentage" label="Personentage" flex="2" hidden="false" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projektphase/rdf#personentage" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektphase-budget" label="Budget" flex="2" hidden="false" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projektphase/rdf#budget" />
|
||||
@@ -129,6 +133,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektphasedetail.overlay
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#beschreibung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#beginn"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#ende"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#personentage"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#budget"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#typ"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#oe_kurzbz"/>
|
||||
|
||||
@@ -87,8 +87,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menulist id="textbox-projektphase-detail-typ" disabled="true">
|
||||
<menupopup>
|
||||
<menuitem value="Arbeitspaket" label="Arbeitspaket"/>
|
||||
<menuitem value="Projektphase" label="Projektphase"/>
|
||||
<menuitem value="Milestone" label="Milestone"/>
|
||||
<menuitem value="Projektphase" label="Projektphase"/>
|
||||
<menuitem value="Service" label="Service"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
|
||||
|
||||
@@ -160,15 +160,15 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
<xul:splitter class="tree-splitter"/>
|
||||
<xul:treecol anonid="treecol-ressource-aufwand" label="Aufwand" flex="2" hidden="false" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/notiz/rdf#aufwand" />
|
||||
sort="rdf:http://www.technikum-wien.at/ressource/rdf#aufwand" />
|
||||
<xul:splitter class="tree-splitter"/>
|
||||
<xul:treecol anonid="treecol-ressource-funktion_kurzbz" label="Funktion" flex="2" hidden="false" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/notiz/rdf#funktion_kurzbz" />
|
||||
sort="rdf:http://www.technikum-wien.at/ressource/rdf#funktion_kurzbz" />
|
||||
<xul:splitter class="tree-splitter"/>
|
||||
<xul:treecol anonid="treecol-ressource-typ" label="Typ" flex="2" hidden="false" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/notiz/rdf#typ" />
|
||||
sort="rdf:http://www.technikum-wien.at/ressource/rdf#typ" />
|
||||
<xul:splitter class="tree-splitter"/>
|
||||
<xul:treecol anonid="treecol-ressource-ressource_id" label="ID" flex="2" hidden="true" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
|
||||
@@ -383,6 +383,7 @@ if(!$error)
|
||||
$error = true;
|
||||
$errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang';
|
||||
}
|
||||
|
||||
//Studentendaten speichern
|
||||
if(!$error)
|
||||
{
|
||||
@@ -402,7 +403,8 @@ if(!$error)
|
||||
$return = false;
|
||||
$errormsg = 'Geburtsdatum ist nicht korrekt.';
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$student->uid = $_POST['uid'];
|
||||
@@ -646,10 +648,17 @@ if(!$error)
|
||||
$prestudent->zgvort = $_POST['zgvort'];
|
||||
$prestudent->zgvdatum = $_POST['zgvdatum'];
|
||||
$prestudent->zgvnation = $_POST['zgvnation'];
|
||||
$prestudent->zgv_erfuellt = $_POST['zgv_erfuellt'];
|
||||
$prestudent->zgvmas_code = $_POST['zgvmas_code'];
|
||||
$prestudent->zgvmaort = $_POST['zgvmaort'];
|
||||
$prestudent->zgvmadatum = $_POST['zgvmadatum'];
|
||||
$prestudent->zgvmanation = $_POST['zgvmanation'];
|
||||
$prestudent->zgvmas_erfuellt = $_POST['zgvmas_erfuellt'];
|
||||
$prestudent->zgvdoktor_code = $_POST['zgvdoktor_code'];
|
||||
$prestudent->zgvdoktorort = $_POST['zgvdoktorort'];
|
||||
$prestudent->zgvdoktordatum = $_POST['zgvdoktordatum'];
|
||||
$prestudent->zgvdoktornation = $_POST['zgvdoktornation'];
|
||||
$prestudent->zgvdoktor_erfuellt = $_POST['zgvdoktor_erfuellt'];
|
||||
$prestudent->aufnahmeschluessel = $_POST['aufnahmeschluessel'];
|
||||
$prestudent->facheinschlberuf = ($_POST['facheinschlberuf']=='true'?true:false);
|
||||
$prestudent->bismelden = ($_POST['bismelden']=='true'?true:false);
|
||||
@@ -2337,7 +2346,7 @@ if(!$error)
|
||||
{
|
||||
if ($dokument_kurzbz === 'Sonst' && $sonst !== 0)
|
||||
continue;
|
||||
|
||||
|
||||
if($dokument_kurzbz!='')
|
||||
{
|
||||
$dok = new dokument();
|
||||
@@ -2350,6 +2359,7 @@ if(!$error)
|
||||
$dok->new = true;
|
||||
if ($dokument_kurzbz === 'Sonst')
|
||||
$sonst++;
|
||||
|
||||
|
||||
if(!$dok->save())
|
||||
{
|
||||
@@ -2544,7 +2554,6 @@ if(!$error)
|
||||
$dokumente = explode(';',$_POST['dokumente']);
|
||||
$errormsg = '';
|
||||
$sonst = 0;
|
||||
|
||||
foreach ($dokumente as $dokument_kurzbz)
|
||||
{
|
||||
if ($dokument_kurzbz === 'Sonst' && $sonst !== 0)
|
||||
|
||||
@@ -76,7 +76,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label class="text-link" href="#" id="label-student-detail-zugangscode" value="" onclick="window.open(document.getElementById('label-student-detail-link_bewerbungstool').value)"/>
|
||||
<?php $hideBpk = $rechte->isBerechtigt('student/bpk') ? '':' hidden="true"'; ?>
|
||||
<label value="BPK" control="student-detail-textbox-bpk"<?php echo $hideBpk; ?>/>
|
||||
<hbox><textbox id="student-detail-textbox-bpk" disabled="true" maxlength="28" size="30"<?php echo $hideBpk; ?>/></hbox>
|
||||
<hbox><textbox id="student-detail-textbox-bpk" disabled="true" maxlength="28" size="50"<?php echo $hideBpk; ?>/></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anrede" control="student-detail-textbox-anrede"/>
|
||||
@@ -104,13 +104,26 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Geburtsnation" control="student-detail-menulist-geburtsnation"/>
|
||||
<menulist id="student-detail-menulist-geburtsnation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
|
||||
</template>
|
||||
</menulist>
|
||||
|
||||
@@ -127,15 +140,29 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Staatsbuergerschaft" control="student-detail-menulist-staatsbuergerschaft"/>
|
||||
<menulist id="student-detail-menulist-staatsbuergerschaft" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
|
||||
|
||||
<label value="Matrikelnummer" control="student-detail-textbox-matr_nr"/>
|
||||
<hbox><textbox id="student-detail-textbox-matr_nr" disabled="true" maxlength="32" size="15"/></hbox>
|
||||
<label value="Sprache" control="student-detail-menulist-sprache" />
|
||||
@@ -298,6 +325,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
@@ -326,16 +355,36 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menulist id="student-prestudent-menulist-zgvnation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
style="min-width: 100px">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<!-- ZGV erfuellt -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<label value="ZGV erfüllt" control="student-prestudent-checkbox-zgverfuellt" hidden="<?php echo $is_hidden?>"/>
|
||||
<hbox>
|
||||
<checkbox id="student-prestudent-checkbox-zgverfuellt" checked="true" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="ZGV Master" control="student-prestudent-menulist-zgvmastercode"/>
|
||||
@@ -347,7 +396,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
@@ -362,15 +412,93 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menulist id="student-prestudent-menulist-zgvmasternation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
style="min-width: 100px">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<!-- ZGV Master erfuellt -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<label value="ZGV Master erfüllt" control="student-prestudent-checkbox-zgvmaserfuellt" hidden="<?php echo $is_hidden?>"/>
|
||||
<hbox>
|
||||
<checkbox id="student-prestudent-checkbox-zgvmaserfuellt" checked="true" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<!-- ZGV Doktor -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_DOKTOR_ANZEIGEN') && ZGV_DOKTOR_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<row hidden="<?php echo $is_hidden?>">
|
||||
<label value="ZGV Doktor" control="student-prestudent-menulist-zgvdoktorcode"/>
|
||||
<menulist id="student-prestudent-menulist-zgvdoktorcode" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/zgvdoktor.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/zgvdoktor/alle" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="ZGV Doktor Ort" control="student-prestudent-textbox-zgvdoktorort"/>
|
||||
<textbox id="student-prestudent-textbox-zgvdoktorort" disabled="true" maxlength="64"/>
|
||||
<label value="ZGV Doktor Datum" control="student-prestudent-textbox-zgvdoktordatum"/>
|
||||
<hbox>
|
||||
<box class='Datum' id="student-prestudent-textbox-zgvdoktordatum" disabled="true"/>
|
||||
</hbox>
|
||||
<label value="ZGV Doktor Nation" control="student-prestudent-menulist-zgvdoktornation"/>
|
||||
<hbox>
|
||||
<menulist id="student-prestudent-menulist-zgvdoktornation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<!-- ZGV Doktor erfuellt -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<label value="ZGV Doktor erfüllt" control="student-prestudent-checkbox-zgvdoktorerfuellt" hidden="<?php echo $is_hidden?>"/>
|
||||
<hbox>
|
||||
<checkbox id="student-prestudent-checkbox-zgvdoktorerfuellt" checked="true" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
|
||||
@@ -47,8 +47,11 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
<menupopup id="student-noten-tree-popup">
|
||||
<menuitem label="Entfernen" oncommand="StudentNotenDelete();" id="student-noten-tree-popup-delete" hidden="false"/>
|
||||
<menuitem label="Zertifikat erstellen" oncommand="StudentFFZertifikatPrint(event);" id="student-noten-tree-popup-ffzertifikat" hidden="false"/>
|
||||
<menuitem label="Zertifikat archivieren mit Signatur" oncommand="StudentFFZertifikatPrint(event, true);" id="student-noten-tree-popup-ffzertifikat" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis erstellen" oncommand="StudentLVZeugnisPrint(event, 'German');" id="student-noten-tree-popup-lvzeugnis" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis archivieren mit Signatur" oncommand="StudentLVZeugnisPrint(event, 'German', true);" id="student-noten-tree-popup-lvzeugnis" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis Englisch erstellen" oncommand="StudentLVZeugnisPrint(event, 'English');" id="student-noten-tree-popup-lvzeugnis_eng" hidden="false"/>
|
||||
<menuitem label="Lehrveranstaltungszeugnis Englisch archivieren mit Signatur" oncommand="StudentLVZeugnisPrint(event, 'English', true);" id="student-noten-tree-popup-lvzeugnis_eng" hidden="false"/>
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<hbox flex="1" style="margin-top: 10px;">
|
||||
|
||||
@@ -462,7 +462,7 @@ function StudentTreeKeyPress(event)
|
||||
// ****
|
||||
// * Erstellt das Zertifikat fuer die Freifaecher
|
||||
// ****
|
||||
function StudentFFZertifikatPrint(event)
|
||||
function StudentFFZertifikatPrint(event, signieren)
|
||||
{
|
||||
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree = document.getElementById('student-noten-tree');
|
||||
@@ -486,16 +486,36 @@ function StudentFFZertifikatPrint(event)
|
||||
else
|
||||
var output='pdf';
|
||||
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+uid+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
|
||||
|
||||
// alert('url: '+url);
|
||||
window.location.href = url;
|
||||
if (signieren)
|
||||
{
|
||||
var req = new phpRequest(url,'','');
|
||||
req.add('output', 'pdf');
|
||||
req.add('sign', '1');
|
||||
req.add('archive', '1');
|
||||
|
||||
var response = req.execute();
|
||||
|
||||
if (response != '')
|
||||
alert(response)
|
||||
else
|
||||
{
|
||||
alert('Erfolgreich archiviert und signiert');
|
||||
StudentTreeRefresh();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
url = url+'&output='+output;
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
//****
|
||||
//* Erstellt ein Lehrveranstaltungszeugnis fuer die LV
|
||||
//****
|
||||
function StudentLVZeugnisPrint(event, sprache)
|
||||
function StudentLVZeugnisPrint(event, sprache, signieren)
|
||||
{
|
||||
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree = document.getElementById('student-noten-tree');
|
||||
@@ -523,9 +543,30 @@ function StudentLVZeugnisPrint(event, sprache)
|
||||
if (sprache == 'English')
|
||||
xsl = 'LVZeugnisEng';
|
||||
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
|
||||
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid='+uid+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
|
||||
|
||||
window.location.href = url;
|
||||
if (signieren)
|
||||
{
|
||||
var req = new phpRequest(url,'','');
|
||||
req.add('output', 'pdf');
|
||||
req.add('sign', '1');
|
||||
req.add('archive', '1');
|
||||
|
||||
var response = req.execute();
|
||||
|
||||
if (response != '')
|
||||
alert(response)
|
||||
else
|
||||
{
|
||||
alert('Erfolgreich archiviert und signiert');
|
||||
StudentTreeRefresh();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
url = url+'&output='+output;
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -1147,10 +1188,18 @@ function StudentAuswahl()
|
||||
zgvort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvort" ));
|
||||
zgvnation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvnation" ));
|
||||
zgvdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdatum" ));
|
||||
zgv_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgv_erfuellt" ));
|
||||
zgvmaster_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmas_code" ));
|
||||
zgvmasterort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmaort" ));
|
||||
zgvmasternation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmanation" ));
|
||||
zgvmasterdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmadatum" ));
|
||||
zgvmasterdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmadatum" ));
|
||||
zgvmas_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmas_erfuellt" ));
|
||||
zgvdoktor_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktor_code" ));
|
||||
zgvdoktorort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktorort" ));
|
||||
zgvdoktornation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktornation" ));
|
||||
zgvdoktordatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktordatum" ));
|
||||
zgvdoktor_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktor_erfuellt" ));
|
||||
|
||||
aufnahmeschluessel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufnahmeschluessel" ));
|
||||
facheinschlberuf = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#facheinschlberuf" ));
|
||||
bismelden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bismelden" ));
|
||||
@@ -1169,10 +1218,26 @@ function StudentAuswahl()
|
||||
document.getElementById('student-prestudent-textbox-zgvort').value=zgvort;
|
||||
MenulistSelectItemOnValue('student-prestudent-menulist-zgvnation', zgvnation);
|
||||
document.getElementById('student-prestudent-textbox-zgvdatum').value=zgvdatum;
|
||||
if(zgv_erfuellt=='t')
|
||||
document.getElementById('student-prestudent-checkbox-zgverfuellt').checked=true;
|
||||
else
|
||||
document.getElementById('student-prestudent-checkbox-zgverfuellt').checked=false;
|
||||
document.getElementById('student-prestudent-menulist-zgvmastercode').value=zgvmaster_code;
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterort').value=zgvmasterort;
|
||||
MenulistSelectItemOnValue('student-prestudent-menulist-zgvmasternation', zgvmasternation);
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterdatum').value=zgvmasterdatum;
|
||||
if(zgvmas_erfuellt=='t')
|
||||
document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked=true;
|
||||
else
|
||||
document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked=false;
|
||||
document.getElementById('student-prestudent-menulist-zgvdoktorcode').value=zgvdoktor_code;
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktorort').value=zgvdoktorort;
|
||||
MenulistSelectItemOnValue('student-prestudent-menulist-zgvdoktornation', zgvdoktornation);
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktordatum').value=zgvdoktordatum;
|
||||
if(zgvdoktor_erfuellt=='t')
|
||||
document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked=true;
|
||||
else
|
||||
document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked=false;
|
||||
document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value=aufnahmeschluessel;
|
||||
if(facheinschlberuf=='true')
|
||||
document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked=true;
|
||||
@@ -1708,10 +1773,18 @@ function StudentPrestudentDisableFields(val)
|
||||
document.getElementById('student-prestudent-textbox-zgvort').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvnation').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvdatum').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-zgverfuellt').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvmastercode').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterort').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvmasternation').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterdatum').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvdoktorcode').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktorort').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvdoktornation').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktordatum').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').disabled=val;
|
||||
|
||||
document.getElementById('student-prestudent-menulist-aufnahmeschluessel').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-facheinschlberuf').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-bismelden').disabled=val;
|
||||
@@ -1779,10 +1852,18 @@ function StudentPrestudentSave()
|
||||
zgvort = document.getElementById('student-prestudent-textbox-zgvort').value;
|
||||
zgvnation = document.getElementById('student-prestudent-menulist-zgvnation').value;
|
||||
zgvdatum = document.getElementById('student-prestudent-textbox-zgvdatum').value;
|
||||
zgv_erfuellt = document.getElementById('student-prestudent-checkbox-zgverfuellt').checked;
|
||||
zgvmaster_code = document.getElementById('student-prestudent-menulist-zgvmastercode').value;
|
||||
zgvmasterort = document.getElementById('student-prestudent-textbox-zgvmasterort').value;
|
||||
zgvmasternation = document.getElementById('student-prestudent-menulist-zgvmasternation').value;
|
||||
zgvmasterdatum = document.getElementById('student-prestudent-textbox-zgvmasterdatum').value;
|
||||
zgvmas_erfuellt = document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked;
|
||||
zgvdoktor_code = document.getElementById('student-prestudent-menulist-zgvdoktorcode').value;
|
||||
zgvdoktorort = document.getElementById('student-prestudent-textbox-zgvdoktorort').value;
|
||||
zgvdoktornation = document.getElementById('student-prestudent-menulist-zgvdoktornation').value;
|
||||
zgvdoktordatum = document.getElementById('student-prestudent-textbox-zgvdoktordatum').value;
|
||||
zgvdoktor_erfuellt = document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked;
|
||||
|
||||
aufnahmeschluessel = document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value;
|
||||
facheinschlberuf = document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked;
|
||||
bismelden = document.getElementById('student-prestudent-checkbox-bismelden').checked;
|
||||
@@ -1808,7 +1889,11 @@ function StudentPrestudentSave()
|
||||
alert('ZGVMaster Datum ist ungueltig');
|
||||
return false;
|
||||
}
|
||||
|
||||
if(zgvdoktordatum!='' && !CheckDatum(zgvdoktordatum))
|
||||
{
|
||||
alert('ZGVDoktor Datum ist ungueltig');
|
||||
return false;
|
||||
}
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
@@ -1827,10 +1912,18 @@ function StudentPrestudentSave()
|
||||
req.add('zgvort', zgvort);
|
||||
req.add('zgvnation', zgvnation);
|
||||
req.add('zgvdatum', ConvertDateToISO(zgvdatum));
|
||||
req.add('zgv_erfuellt', zgv_erfuellt);
|
||||
req.add('zgvmas_code', zgvmaster_code);
|
||||
req.add('zgvmaort', zgvmasterort);
|
||||
req.add('zgvmanation', zgvmasternation);
|
||||
req.add('zgvmadatum', ConvertDateToISO(zgvmasterdatum));
|
||||
req.add('zgvmas_erfuellt', zgvmas_erfuellt);
|
||||
req.add('zgvdoktor_code', zgvdoktor_code);
|
||||
req.add('zgvdoktorort', zgvdoktorort);
|
||||
req.add('zgvdoktornation', zgvdoktornation);
|
||||
req.add('zgvdoktordatum', ConvertDateToISO(zgvdoktordatum));
|
||||
req.add('zgvdoktor_erfuellt', zgvdoktor_erfuellt);
|
||||
|
||||
req.add('aufnahmeschluessel', aufnahmeschluessel);
|
||||
req.add('facheinschlberuf', facheinschlberuf);
|
||||
req.add('bismelden', bismelden);
|
||||
@@ -3274,6 +3367,7 @@ function StudentZeugnisDokumentArchivieren()
|
||||
break;
|
||||
|
||||
case 'DiplSupplement':
|
||||
case 'SZeugnis':
|
||||
xml = 'diplomasupplement.xml.php';
|
||||
break;
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@ function StudentProjektarbeitTreeLoad(uid)
|
||||
tree.builder.addListener(StudentProjektarbeitTreeListener);
|
||||
|
||||
StudentProjektarbeitDisableFields(false);
|
||||
|
||||
|
||||
// Wenn Vertragsdetails angezeigt werden
|
||||
if (projektarbeit_vertragsdetails_anzeigen) {
|
||||
//Reset attributes
|
||||
@@ -398,7 +398,7 @@ function StudentProjektarbeitAuswahl()
|
||||
|
||||
//Lehrveranstaltung DropDown laden
|
||||
var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung');
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp();
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = LvDropDown.database.GetDataSources();
|
||||
@@ -653,10 +653,11 @@ function StudentProjektarbeitNeu()
|
||||
StudentProjektarbeitDetailDisableFields(false);
|
||||
StudentProjektbetreuerDisableFields(true);
|
||||
var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
||||
var student_uid = document.getElementById('student-detail-textbox-uid').value;
|
||||
|
||||
//Lehrveranstaltung DropDown laden
|
||||
var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung');
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&projektarbeit=true&"+gettimestamp();
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid='+student_uid+'&stg_kz='+stg_kz+"&projektarbeit=true&"+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = LvDropDown.database.GetDataSources();
|
||||
|
||||
@@ -284,6 +284,10 @@ function onLektorSelect(event)
|
||||
|
||||
var stg_idx = tree.view.getParentIndex(tree.currentIndex);
|
||||
var col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz";
|
||||
//Wenn der Filter angewendet wurde, gibt es keinen Parent. Daher wird hier der stg_idx auf 0 gesetzt.
|
||||
if(stg_idx == -1 && uid != '')
|
||||
stg_idx = 0;
|
||||
|
||||
if (stg_idx != -1)
|
||||
var stg_kz=tree.view.getCellText(stg_idx,col);
|
||||
else
|
||||
|
||||
@@ -53,6 +53,9 @@ class adresse extends basis_db
|
||||
public $rechnungsadresse=false; // boolean
|
||||
public $anmerkung; // string
|
||||
public $co_name;
|
||||
public $adressentyp;
|
||||
public $bezeichnung;
|
||||
public $bezeichnung_mehrsprachig;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -133,10 +136,10 @@ class adresse extends basis_db
|
||||
$this->errormsg = 'person_id muss eine gültige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$sprache = new sprache();
|
||||
//Lesen der Daten aus der Datenbank
|
||||
$qry = "SELECT * FROM public.tbl_adresse WHERE person_id=".$this->db_add_param($pers_id, FHC_INTEGER, false);
|
||||
$qry.=" ORDER BY zustelladresse DESC";
|
||||
$qry = "SELECT *, ". $sprache->getSprachQuery('bezeichnung_mehrsprachig') ." FROM public.tbl_adresse JOIN public.tbl_adressentyp ON typ = adressentyp_kurzbz WHERE person_id=".$this->db_add_param($pers_id, FHC_INTEGER, false);
|
||||
$qry.=" ORDER BY zustelladresse DESC, sort";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
@@ -167,6 +170,7 @@ class adresse extends basis_db
|
||||
$adr_obj->co_name = $row->co_name;
|
||||
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
|
||||
$adr_obj->anmerkung = $row->anmerkung;
|
||||
$adr_obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig',$row);
|
||||
|
||||
$this->result[] = $adr_obj;
|
||||
}
|
||||
@@ -519,5 +523,29 @@ class adresse extends basis_db
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getAdressentyp()
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_adressentyp ORDER BY sort";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new adresse();
|
||||
|
||||
$obj->adressentyp = $row->adressentyp_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1186,7 +1186,22 @@ class betriebsmittel extends basis_db
|
||||
//Kartennummern die im Hex-Format sind werden umgewandelt
|
||||
if (!is_numeric($kartennummer))
|
||||
{
|
||||
$kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2);
|
||||
$tmp_kn_str = null;
|
||||
for ($i=0; strlen($kartennummer) > $i; $i+=2) {
|
||||
|
||||
#wenn die strlen($kartennummer) gerade ist (TW hat 8 Stellen, FHB 14 Stellen)
|
||||
$tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2);
|
||||
|
||||
//#wenn ich ungerade und der letzte Durchgang ist dann nur mehr die eine Nummer nach vorne
|
||||
//if ((strlen($kartennummer)%2 != 0) && ($i+2 > strlen($kartennummer))) {
|
||||
// $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+1),1);
|
||||
//#sonst normal immer 2 stellen nach vorne ruecken
|
||||
//} else {
|
||||
// $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2);
|
||||
//}
|
||||
}
|
||||
$kartennummer = $tmp_kn_str;
|
||||
|
||||
$kartennummer=hexdec( $kartennummer);
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ class bisverwendung extends basis_db
|
||||
public $inkludierte_lehre;
|
||||
public $zeitaufzeichnungspflichtig;
|
||||
public $azgrelevant;
|
||||
public $homeoffice;
|
||||
public $homeoffice=false;
|
||||
|
||||
public $ba1bez;
|
||||
public $ba2bez;
|
||||
|
||||
@@ -0,0 +1,200 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Harald Bamberger <harald.bamberger@technikum-wien.at>
|
||||
*/
|
||||
require_once(dirname(__DIR__) . '/basis_db.class.php');
|
||||
/**
|
||||
* Description of covidhelper
|
||||
*
|
||||
* @author bambi
|
||||
*/
|
||||
class CovidHelper extends basis_db
|
||||
{
|
||||
const STATUS_OK = 1;
|
||||
const STATUS_NOTOK = 0;
|
||||
const STATUS_UNKNOWN = -1;
|
||||
const STATUS_NOTSET = -2;
|
||||
|
||||
const TITLE_OK = 'Nachweis gültig';
|
||||
const TITLE_NOTOK = 'Nachweis ungültig';
|
||||
const TITLE_UNKNOWN = 'Nachweis unbekannt';
|
||||
|
||||
const DB_SCHEMA = 'public';
|
||||
const DB_TABLE = 'tbl_person';
|
||||
const DB_UDFNAME = 'udf_3gvalid';
|
||||
|
||||
protected $isUdfDefined;
|
||||
|
||||
protected $uids;
|
||||
protected $covidstatus;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->uids = array();
|
||||
$this->covidstatus = array();
|
||||
$this->isUdfDefined = false;
|
||||
$this->checkIfUdfValuesAreDefined();
|
||||
}
|
||||
|
||||
public function isUdfDefined()
|
||||
{
|
||||
return $this->isUdfDefined;
|
||||
}
|
||||
|
||||
public function fetchCovidStatus(array $uids)
|
||||
{
|
||||
$this->uids = $uids;
|
||||
$this->covidstatus = array();
|
||||
$this->fetchCovidValidStatus();
|
||||
}
|
||||
|
||||
public function getIconHtml($uid)
|
||||
{
|
||||
$html = '';
|
||||
$status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET;
|
||||
switch ($status)
|
||||
{
|
||||
case self::STATUS_OK:
|
||||
$html = '<i title="' . $this->getTitle($uid) . '" class="fa fa-check-circle" aria-hidden="true" style="color: green; margin-right: .5em;"></i>';
|
||||
break;
|
||||
case self::STATUS_NOTOK:
|
||||
case self::STATUS_UNKNOWN:
|
||||
$html = '<i title="' . $this->getTitle($uid) . '" class="fa fa-times-circle" aria-hidden="true" style="color: red; margin-right: .5em;"></i>';
|
||||
break;
|
||||
/*
|
||||
case self::STATUS_UNKNOWN:
|
||||
$html = '<i title="' . $this->getTitle($uid) . '" class="fa fa-question-circle" aria-hidden="true" style="color: grey; margin-right: .5em;"></i>';
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
$html = '';
|
||||
break;
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
|
||||
public function getBootstrapClass($uid)
|
||||
{
|
||||
$class = '';
|
||||
$status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET;
|
||||
switch ($status)
|
||||
{
|
||||
case self::STATUS_OK:
|
||||
$class = 'success';
|
||||
break;
|
||||
case self::STATUS_NOTOK:
|
||||
case self::STATUS_UNKNOWN:
|
||||
$class = 'danger';
|
||||
break;
|
||||
/*
|
||||
case self::STATUS_UNKNOWN:
|
||||
$class = 'warning';
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
$class = '';
|
||||
break;
|
||||
}
|
||||
return $class;
|
||||
}
|
||||
|
||||
public function getTitle($uid)
|
||||
{
|
||||
$title = '';
|
||||
$status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET;
|
||||
switch ($status)
|
||||
{
|
||||
case self::STATUS_OK:
|
||||
$title = self::TITLE_OK;
|
||||
break;
|
||||
case self::STATUS_NOTOK:
|
||||
case self::STATUS_UNKNOWN:
|
||||
$title = self::TITLE_NOTOK;
|
||||
break;
|
||||
/*
|
||||
case self::STATUS_UNKNOWN:
|
||||
$title = self::TITLE_UNKNOWN;
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
$title = '';
|
||||
break;
|
||||
}
|
||||
return $title;
|
||||
}
|
||||
|
||||
public function getCovidStatus()
|
||||
{
|
||||
return $this->covidstatus;
|
||||
}
|
||||
|
||||
protected function fetchCovidValidStatus()
|
||||
{
|
||||
if( !($this->isUdfDefined && is_array($this->uids) && (count($this->uids) > 0)) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$sql = <<<EOSQL
|
||||
SELECT b.uid, CASE
|
||||
WHEN (p."udf_values" -> 'udf_3gvalid')::text::date >= CURRENT_DATE::text::date THEN 1
|
||||
WHEN (p."udf_values" -> 'udf_3gvalid')::text::date < CURRENT_DATE::text::date THEN 0
|
||||
ELSE -1
|
||||
END AS covidvalid
|
||||
FROM tbl_person p
|
||||
JOIN tbl_benutzer b ON b.person_id = p.person_id AND b.uid IN ({$this->implode4SQL($this->uids)})
|
||||
EOSQL;
|
||||
|
||||
$this->covidstatus = array();
|
||||
if( $this->db_query($sql) )
|
||||
{
|
||||
while( false !== ($row = $this->db_fetch_object()) )
|
||||
{
|
||||
$this->covidstatus[$row->uid] = $row->covidvalid;
|
||||
}
|
||||
} else {
|
||||
$this->errormsg = "Fehler in der Abfrage des Covidstatus.";
|
||||
}
|
||||
}
|
||||
|
||||
public function checkIfUdfValuesAreDefined()
|
||||
{
|
||||
$sql = 'SELECT count(name) AS "udfdefined" '
|
||||
. 'FROM "system"."tbl_udf", jsonb_to_recordset("jsons") AS items(name text) '
|
||||
. 'WHERE "schema" = \'' . self::DB_SCHEMA . '\' '
|
||||
. 'AND "table" = \'' . self::DB_TABLE . '\' '
|
||||
. 'AND "name" = \'' . self::DB_UDFNAME . '\'';
|
||||
if ( $this->db_query($sql) )
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->isUdfDefined = ($row->udfdefined > 0) ? true : false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs. Kein Datensatz gefunden.";
|
||||
$this->isUdfDefined = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs.";
|
||||
$this->isUdfDefined = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
+36
-28
@@ -455,42 +455,50 @@ function intersect($str1, $str2)
|
||||
* Konvertiert Problematische Sonderzeichen in Strings fuer
|
||||
* Accountnamen und EMail-Aliase
|
||||
*
|
||||
* @param $str
|
||||
* @return bereinigter String
|
||||
* @param string $str Inputparameter.
|
||||
* @return string bereinigter String.
|
||||
*/
|
||||
function convertProblemChars($str)
|
||||
{
|
||||
$enc = 'UTF-8';
|
||||
|
||||
$acentos = array(
|
||||
'A' => '/À|Á|Â|Ã|Å/',
|
||||
'Ae' => '/Ä/',
|
||||
'a' => '/à|á|â|ã|å/',
|
||||
'ae'=> '/ä/',
|
||||
'C' => '/Ç/',
|
||||
'c' => '/ç/',
|
||||
'E' => '/È|É|Ê|Ë/',
|
||||
'e' => '/è|é|ê|ë/',
|
||||
'I' => '/Ì|Í|Î|Ï/',
|
||||
'i' => '/ì|í|î|ï/',
|
||||
'N' => '/Ñ/',
|
||||
'n' => '/ñ/',
|
||||
'O' => '/Ò|Ó|Ô|Õ/',
|
||||
'Oe' => '/Ö/',
|
||||
'o' => '/ò|ó|ô|õ/',
|
||||
'oe' => '/ö/',
|
||||
'U' => '/Ù|Ú|Û/',
|
||||
'Ue' => '/Ü/',
|
||||
'u' => '/ù|ú|û/',
|
||||
'ue' => '/ü/',
|
||||
'Y' => '/Ý/',
|
||||
'y' => '/ý|ÿ/',
|
||||
'a.' => '/ª/',
|
||||
'o.' => '/º/',
|
||||
'ss' => '/ß/'
|
||||
'A' => '/À|Á|Â|Ã|Å|Ă|Ǎ/',
|
||||
'Ae' => '/Ä/',
|
||||
'a' => '/à|á|â|ã|å|ă|ǎ/',
|
||||
'ae' => '/ä/',
|
||||
'C' => '/Ç|Č/',
|
||||
'c' => '/ç|č/',
|
||||
'E' => '/È|É|Ê|Ë/',
|
||||
'e' => '/è|é|ê|ë/',
|
||||
'I' => '/Ì|Í|Î|Ï|Ǐ/',
|
||||
'i' => '/ì|í|î|ï|ǐ/',
|
||||
'N' => '/Ñ|Ň|ň/',
|
||||
'n' => '/ñ/',
|
||||
'O' => '/Ò|Ó|Ô|Õ|Ǒ/',
|
||||
'Oe' => '/Ö/',
|
||||
'o' => '/ò|ó|ô|õ|ǒ/',
|
||||
'oe' => '/ö/',
|
||||
'R' => '/Ř/',
|
||||
'r' => '/ř/',
|
||||
'S' => '/Š/',
|
||||
's' => '/š/',
|
||||
'T' => '/Ť/',
|
||||
't' => '/ť/',
|
||||
'U' => '/Ù|Ú|Û|Ŭ|Ǔ/',
|
||||
'Ue' => '/Ü/',
|
||||
'u' => '/ù|ú|û|ŭ|ǔ/',
|
||||
'ue' => '/ü/',
|
||||
'Y' => '/Ý/',
|
||||
'y' => '/ý|ÿ/',
|
||||
'Z' => '/Ž/',
|
||||
'z' => '/ž/',
|
||||
'a.' => '/ª/',
|
||||
'o.' => '/º/',
|
||||
'ss' => '/ß/'
|
||||
);
|
||||
|
||||
return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
|
||||
return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
|
||||
}
|
||||
|
||||
//Ersetzt alle Problemzeichen in einem String bevor dieser als xml oder rdf ausgegeben wird
|
||||
|
||||
@@ -0,0 +1,294 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Harald Bamberger <harald.bamberger@technikum-wien.at>
|
||||
* Manfred Kindl <manfred.kindl@technikum-wien.at>
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/erhalter.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
/**
|
||||
* Description of lehrelisthelper
|
||||
*
|
||||
* @author bambi
|
||||
*/
|
||||
class LehreListHelper
|
||||
{
|
||||
protected $db;
|
||||
protected $studiensemester;
|
||||
protected $lvid;
|
||||
protected $lv;
|
||||
protected $lehreinheit;
|
||||
protected $stg;
|
||||
|
||||
protected $arr_lehrende;
|
||||
protected $studentuids;
|
||||
protected $data;
|
||||
|
||||
protected $gruppen_string;
|
||||
protected $lehrende_string;
|
||||
protected $raum_string;
|
||||
|
||||
public function __construct(basis_db $db, $studiensemester, $lvid,
|
||||
lehrveranstaltung $lv, studiengang $stg, $lehreinheit='')
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->studiensemester = $studiensemester;
|
||||
$this->lvid = $lvid;
|
||||
$this->lv = $lv;
|
||||
$this->lehreinheit = $lehreinheit;
|
||||
$this->stg = $stg;
|
||||
|
||||
$this->arr_lehrende = array();
|
||||
$this->studentuids = array();
|
||||
$this->data = array();
|
||||
|
||||
$this->gruppen_string = '';
|
||||
$this->lehrende_string = '';
|
||||
$this->raum_string = '';
|
||||
|
||||
$this->loadMemberGroups();
|
||||
$this->loadPlannedRooms();
|
||||
$this->initData();
|
||||
$this->loadLehrende();
|
||||
$this->loadStudierende();
|
||||
}
|
||||
|
||||
public function getData()
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
public function getStudentUids()
|
||||
{
|
||||
return $this->studentuids;
|
||||
}
|
||||
|
||||
public function getArr_Lehrende()
|
||||
{
|
||||
return $this->arr_lehrende;
|
||||
}
|
||||
|
||||
public function getLehrende_String()
|
||||
{
|
||||
return $this->lehrende_string;
|
||||
}
|
||||
|
||||
protected function loadMemberGroups()
|
||||
{
|
||||
// Teilnehmende Gruppen laden
|
||||
$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz)
|
||||
UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel,
|
||||
semester,
|
||||
verband,
|
||||
gruppe,
|
||||
gruppe_kurzbz
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$this->db->db_add_param($this->lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$this->db->db_add_param($this->studiensemester);
|
||||
if($this->lehreinheit!='')
|
||||
$qry.=" AND lehreinheit_id=".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
$this->gruppen_string = '';
|
||||
if($result = $this->db->db_query($qry))
|
||||
{
|
||||
while($row = $this->db->db_fetch_object($result))
|
||||
{
|
||||
if($this->gruppen_string!='')
|
||||
$this->gruppen_string.=', ';
|
||||
if($row->gruppe_kurzbz=='')
|
||||
$this->gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe);
|
||||
else
|
||||
$this->gruppen_string.=$row->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function loadPlannedRooms()
|
||||
{
|
||||
// Verplante Räume laden
|
||||
$qry = "SELECT distinct(ort_kurzbz)
|
||||
FROM lehre.tbl_stundenplan
|
||||
WHERE lehreinheit_id in
|
||||
(
|
||||
SELECT lehreinheit_id
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id = ".$this->db->db_add_param($this->lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz = ".$this->db->db_add_param($this->studiensemester)."
|
||||
)";
|
||||
if($this->lehreinheit!='')
|
||||
$qry.= " AND tbl_stundenplan.lehreinheit_id = ".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
|
||||
$this->raum_string = '';
|
||||
if($result = $this->db->db_query($qry))
|
||||
{
|
||||
while($row = $this->db->db_fetch_object($result))
|
||||
{
|
||||
if($this->raum_string!='')
|
||||
$this->raum_string.=', ';
|
||||
if($row->ort_kurzbz!='')
|
||||
$this->raum_string.=$row->ort_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function initData()
|
||||
{
|
||||
$studiengang_bezeichnung=$this->stg->bezeichnung;
|
||||
|
||||
$this->stg->getAllTypes();
|
||||
|
||||
$this->data = array(
|
||||
'gruppen'=>$this->gruppen_string,
|
||||
'bezeichnung'=>$this->lv->bezeichnung,
|
||||
'lehrveranstaltung_id'=>$this->lv->lehrveranstaltung_id,
|
||||
'studiengang'=>$studiengang_bezeichnung,
|
||||
'studiengang_kz'=>$this->lv->studiengang_kz,
|
||||
'typ'=>$this->stg->studiengang_typ_arr[$this->stg->typ],
|
||||
'ects'=>$this->lv->ects,
|
||||
'sprache'=>$this->lv->sprache,
|
||||
'studiensemester'=>$this->studiensemester,
|
||||
'semester'=>$this->lv->semester,
|
||||
'orgform'=>$this->lv->orgform_kurzbz,
|
||||
'raum'=>$this->raum_string,
|
||||
);
|
||||
}
|
||||
|
||||
protected function loadLehrende()
|
||||
{
|
||||
//Lehrende der LV laden und in ein Array schreiben
|
||||
$lehrende = new lehreinheitmitarbeiter();
|
||||
$lehrende->getMitarbeiterLV($this->lvid, $this->studiensemester, $this->lehreinheit);
|
||||
$this->arr_lehrende = array();
|
||||
if (isset($lehrende->result))
|
||||
{
|
||||
foreach($lehrende->result AS $row)
|
||||
{
|
||||
$this->data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname));
|
||||
$this->arr_lehrende[]=mb_strtoupper($row->uid);
|
||||
$this->lehrende_string .= (strlen($this->lehrende_string) > 0)
|
||||
? ', ' . $row->vorname . ' ' . $row->nachname
|
||||
: $row->vorname . ' ' . $row->nachname;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function loadStudierende()
|
||||
{
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student,
|
||||
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz,
|
||||
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_note USING (note)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester);
|
||||
|
||||
|
||||
if($this->lehreinheit!='')
|
||||
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($this->studiensemester);
|
||||
$stsemdatumvon = $stsem_obj->start;
|
||||
$stsemdatumbis = $stsem_obj->ende;
|
||||
|
||||
$erhalter = new erhalter();
|
||||
$erhalter->getAll();
|
||||
|
||||
$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW)
|
||||
$anzahl_studierende = 0;
|
||||
$datum = new datum();
|
||||
$zusatz = '';
|
||||
|
||||
$this->studentuids = array();
|
||||
if($result = $this->db->db_query($qry))
|
||||
{
|
||||
while($row = $this->db->db_fetch_object($result))
|
||||
{
|
||||
if($row->status!='Abbrecher' && $row->status!='Unterbrecher')
|
||||
{
|
||||
$anzahl_studierende++;
|
||||
|
||||
if($row->status=='Incoming') //Incoming
|
||||
$zusatz='(i)';
|
||||
else
|
||||
$zusatz='';
|
||||
|
||||
if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing
|
||||
$zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')';
|
||||
|
||||
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
|
||||
$zusatz.= '('. $row->anmerkung. ')';
|
||||
|
||||
if($row->mitarbeiter_uid!='') //mitarbeiter
|
||||
$zusatz.='(ma)';
|
||||
|
||||
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz.='(a.o.)';
|
||||
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student
|
||||
$zusatz .= '(d.d.)';
|
||||
|
||||
$this->studentuids[] = $row->student_uid;
|
||||
$this->data[]=array('student'=>array(
|
||||
'uid' => $row->student_uid,
|
||||
'vorname'=>$row->vorname,
|
||||
'nachname'=>$row->nachname,
|
||||
'personenkennzeichen'=>trim($row->matrikelnr),
|
||||
'matr_nr'=>$row->matr_nr,
|
||||
'semester'=>$row->semester,
|
||||
'verband'=>trim($row->verband),
|
||||
'gruppe'=>trim($row->gruppe),
|
||||
'zusatz'=>$zusatz,
|
||||
'studiengang_kurzbz'=>$row->kurzbzlang,
|
||||
'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz
|
||||
));
|
||||
}
|
||||
}
|
||||
//Anzahl Studierende in Array $data (an erster Stelle) einfuegen
|
||||
$this->data = array_reverse($this->data, true);
|
||||
$this->data['anzahl_studierende'] = $anzahl_studierende;
|
||||
$this->data = array_reverse($this->data, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -849,6 +849,8 @@ class mitarbeiter extends benutzer
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->aktiv =$this->db_parse_bool($row->aktiv);
|
||||
$obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -1090,6 +1092,55 @@ class mitarbeiter extends benutzer
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt UID des letzten Vorgesetzten zurück
|
||||
* @param string $uid Mitarbeiter.
|
||||
* @return uid letzter Vorgesetzter
|
||||
*/
|
||||
public function getLastVorgesetzter($uid = null)
|
||||
{
|
||||
$return = false;
|
||||
if (is_null($uid))
|
||||
$uid = $this->uid;
|
||||
|
||||
$qry = "SELECT
|
||||
uid as vorgesetzter
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='Leitung' AND
|
||||
(datum_von is null OR datum_von<=now()) AND
|
||||
(datum_bis is null OR datum_bis>=now()) AND
|
||||
oe_kurzbz in (SELECT oe_kurzbz
|
||||
FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)."
|
||||
ORDER BY datum_von DESC
|
||||
LIMIT 1
|
||||
);
|
||||
";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($row->vorgesetzter != '')
|
||||
{
|
||||
$return = $this->vorgesetzter = $row->vorgesetzter;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage!';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gibt ein Array mit den UIDs der aktiv beschäftigten Untergebenen zurueck
|
||||
* @param string $uid UID.
|
||||
@@ -1309,6 +1360,7 @@ class mitarbeiter extends benutzer
|
||||
WHERE
|
||||
bismelden
|
||||
AND personalnummer>0
|
||||
AND tbl_bisverwendung.beginn<='.$this->db_add_param($meldungEnde).'
|
||||
AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>'.$this->db_add_param($meldungBeginn).')
|
||||
ORDER BY uid, nachname,vorname
|
||||
';
|
||||
@@ -1418,22 +1470,25 @@ class mitarbeiter extends benutzer
|
||||
$hasUDF = false;
|
||||
$udf = new UDF();
|
||||
|
||||
$qry = "SELECT DISTINCT ON(mitarbeiter_uid) *,
|
||||
tbl_benutzer.aktiv as aktiv,
|
||||
tbl_mitarbeiter.insertamum,
|
||||
tbl_mitarbeiter.insertvon,
|
||||
tbl_mitarbeiter.updateamum,
|
||||
tbl_mitarbeiter.updatevon";
|
||||
$qry = "SELECT
|
||||
*,
|
||||
tbl_benutzer.aktiv as aktiv,
|
||||
tbl_mitarbeiter.insertamum,
|
||||
tbl_mitarbeiter.insertvon,
|
||||
tbl_mitarbeiter.updateamum,
|
||||
tbl_mitarbeiter.updatevon";
|
||||
|
||||
if ($hasUDF = $udf->personHasUDF())
|
||||
{
|
||||
$qry .= ", public.tbl_person.udf_values AS p_udf_values";
|
||||
}
|
||||
|
||||
$qry .= " FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid))
|
||||
JOIN public.tbl_person USING(person_id))
|
||||
LEFT JOIN public.tbl_benutzerfunktion USING(uid)
|
||||
WHERE uid in(".$this->db_implode4SQL($uid_arr).")";;
|
||||
$qry .= " FROM
|
||||
public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE uid in(".$this->db_implode4SQL($uid_arr).")";
|
||||
$qry .= " ORDER BY nachname, vorname";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user