mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-21 22:19:27 +00:00
Compare commits
76 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0a232828c8 | |||
| 0687ef72ce | |||
| 9180b9bd63 | |||
| 168fb00023 | |||
| f5d81e4a93 | |||
| b0f3fa0c46 | |||
| 6d89e95afa | |||
| 07bb0ddffd | |||
| 2f90112e4d | |||
| 774eb90bcc | |||
| 1def930147 | |||
| 30b8a406a5 | |||
| 093842274e | |||
| fd2f4187fa | |||
| b2bebb7fa3 | |||
| e32cce57fe | |||
| cb7a0f7669 | |||
| 68d97a5e97 | |||
| d27071528f | |||
| 17772c3738 | |||
| bbb4f8a01c | |||
| bf5ab6b7dd | |||
| fdbb93a5c5 | |||
| b7e48633ab | |||
| 04dc1eb07b | |||
| 50b229090b | |||
| 2d27a998c4 | |||
| 090e535466 | |||
| c4d35181db | |||
| 0ac6ef4599 | |||
| 7f13c128f1 | |||
| cb60ddcc94 | |||
| bd4ced9559 | |||
| a04d2acb86 | |||
| de2aabf00b | |||
| 685fc69e5d | |||
| 58a921b500 | |||
| 1fe742d9c7 | |||
| 552faefa51 | |||
| 954397f028 | |||
| 80faa61c91 | |||
| 961ede66a9 | |||
| 6fec8382b5 | |||
| 4eb076d115 | |||
| 7427aa87ea | |||
| 85043e57db | |||
| 5beddbccb4 | |||
| e2ae9b88c8 | |||
| ca3abf9154 | |||
| f863c6d728 | |||
| 92a2053b42 | |||
| 70602be54e | |||
| dac71f597a | |||
| 3a646ffe77 | |||
| 26db4a5e7a | |||
| 98a10a2f55 | |||
| e48b94b858 | |||
| 13e8a1a9f6 | |||
| 3ce3eff022 | |||
| 21d80905a2 | |||
| ea0a249612 | |||
| 298dbbf400 | |||
| 8487694b37 | |||
| 36beb927f1 | |||
| ee41b2b68d | |||
| c0b685c77b | |||
| a4b1104abf | |||
| c56d323cd3 | |||
| ac4cdb44de | |||
| 38e8f91fdf | |||
| 97126553f0 | |||
| da03e11071 | |||
| ba6224bc78 | |||
| 738c819272 | |||
| d542cf7720 | |||
| ed39127f31 |
@@ -78,52 +78,32 @@ class Dokumente extends FHCAPI_Controller
|
|||||||
$this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiengang_kz']), self::ERROR_TYPE_GENERAL);
|
$this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiengang_kz']), self::ERROR_TYPE_GENERAL);
|
||||||
|
|
||||||
$resultPreDoc = $this->_getPrestudentDokumente($prestudent_id);
|
$resultPreDoc = $this->_getPrestudentDokumente($prestudent_id);
|
||||||
|
|
||||||
$arrayAccepted = [];
|
|
||||||
$person_id = $this->_getPersonId($prestudent_id);
|
$person_id = $this->_getPersonId($prestudent_id);
|
||||||
|
|
||||||
$docNames = array_map(function ($item) {
|
$mergedArray = [];
|
||||||
return $item->dokument_kurzbz;
|
|
||||||
}, $resultPreDoc);
|
|
||||||
|
|
||||||
foreach($docNames as $doc)
|
foreach ($resultPreDoc as $pre)
|
||||||
{
|
{
|
||||||
$result = $this->AkteModel->getAktenFAS($person_id, $doc, $studiengang_kz, $prestudent_id, true);
|
$result = $this->AkteModel->getAktenFAS($person_id, $pre->dokument_kurzbz, $studiengang_kz, $prestudent_id, true);
|
||||||
|
|
||||||
if (isError($result))
|
if (isError($result))
|
||||||
{
|
|
||||||
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
||||||
}
|
|
||||||
if (hasData($result))
|
if (hasData($result))
|
||||||
{
|
{
|
||||||
$data = getData($result);
|
foreach (getData($result) as $doc)
|
||||||
foreach ($data as $value)
|
|
||||||
{
|
{
|
||||||
array_push($arrayAccepted, $value);
|
$merged = clone $doc;
|
||||||
|
$merged->docdatum = $pre->docdatum;
|
||||||
|
$merged->insertvonma = $pre->insertvonma;
|
||||||
|
$merged->bezeichnung = $pre->bezeichnung;
|
||||||
|
$mergedArray[] = $merged;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
//Mapping with document_kurzbz
|
$mergedArray[] = $pre;
|
||||||
$preDocMap = [];
|
|
||||||
foreach ($resultPreDoc as $pre) {
|
|
||||||
$preDocMap[$pre->dokument_kurzbz] = $pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
$mergedArray = [];
|
|
||||||
foreach ($arrayAccepted as $doc) {
|
|
||||||
$merged = clone $doc;
|
|
||||||
|
|
||||||
if (isset($preDocMap[$doc->dokument_kurzbz])) {
|
|
||||||
$merged->docdatum = $preDocMap[$doc->dokument_kurzbz]->docdatum;
|
|
||||||
$merged->insertvonma = $preDocMap[$doc->dokument_kurzbz]->insertvonma;
|
|
||||||
$merged->bezeichnung = $preDocMap[$doc->dokument_kurzbz]->bezeichnung;
|
|
||||||
} else {
|
|
||||||
$merged->akzeptiertdatum = null;
|
|
||||||
$merged->akzeptiertvon = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$mergedArray[] = $merged;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->terminateWithSuccess($mergedArray);
|
$this->terminateWithSuccess($mergedArray);
|
||||||
|
|||||||
@@ -48,7 +48,8 @@ class Konto extends FHCAPI_Controller
|
|||||||
|
|
||||||
// Load language phrases
|
// Load language phrases
|
||||||
$this->loadPhrases([
|
$this->loadPhrases([
|
||||||
'konto'
|
'konto',
|
||||||
|
'lehre'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +113,7 @@ class Konto extends FHCAPI_Controller
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function getBuchungstypen()
|
public function getBuchungstypen($studiensemester_kurzbz = null)
|
||||||
{
|
{
|
||||||
$this->load->model('crm/Buchungstyp_model', 'BuchungstypModel');
|
$this->load->model('crm/Buchungstyp_model', 'BuchungstypModel');
|
||||||
|
|
||||||
@@ -122,6 +123,7 @@ class Konto extends FHCAPI_Controller
|
|||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
|
$this->_getOEHBeitrag($data, $studiensemester_kurzbz);
|
||||||
$this->terminateWithSuccess($data);
|
$this->terminateWithSuccess($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -494,4 +496,43 @@ class Konto extends FHCAPI_Controller
|
|||||||
|
|
||||||
$this->terminateWithSuccess();
|
$this->terminateWithSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function _getOEHBeitrag(&$data, $studiensemester_kurzbz = null)
|
||||||
|
{
|
||||||
|
if (is_null($studiensemester_kurzbz))
|
||||||
|
{
|
||||||
|
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
|
||||||
|
$studiensemester_akt = $this->variablelib->getVar('semester_aktuell');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||||
|
if ($this->StudiensemesterModel->isValidStudiensemester($studiensemester_kurzbz))
|
||||||
|
$studiensemester_akt = $studiensemester_kurzbz;
|
||||||
|
else
|
||||||
|
$this->terminateWithError($this->p->t('lehre', 'error_noStudiensemester'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->load->model('codex/Oehbeitrag_model', 'OehbeitragModel');
|
||||||
|
$oehBeitrag = $this->OehbeitragModel->getByStudiensemester($studiensemester_akt);
|
||||||
|
|
||||||
|
$oehStandardbetrag = null;
|
||||||
|
if (hasData($oehBeitrag))
|
||||||
|
{
|
||||||
|
$oeh = getData($oehBeitrag)[0];
|
||||||
|
$summe = ($oeh->studierendenbeitrag + $oeh->versicherung) * -1;
|
||||||
|
$oehStandardbetrag = number_format((float)$summe, 2, '.', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($oehStandardbetrag !== null)
|
||||||
|
{
|
||||||
|
$data = array_map(function ($buchungstyp) use ($oehStandardbetrag) {
|
||||||
|
if (isset($buchungstyp->buchungstyp_kurzbz) && (strtolower($buchungstyp->buchungstyp_kurzbz) === 'oeh'))
|
||||||
|
{
|
||||||
|
$buchungstyp->standardbetrag = $oehStandardbetrag;
|
||||||
|
}
|
||||||
|
return $buchungstyp;
|
||||||
|
}, $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,9 +25,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
|||||||
*/
|
*/
|
||||||
class Students extends FHCAPI_Controller
|
class Students extends FHCAPI_Controller
|
||||||
{
|
{
|
||||||
private $allowedStgs = [];
|
|
||||||
|
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$permissions = [];
|
$permissions = [];
|
||||||
@@ -35,16 +32,17 @@ class Students extends FHCAPI_Controller
|
|||||||
$permissions[$router->method] = ['admin:r', 'assistenz:r'];
|
$permissions[$router->method] = ['admin:r', 'assistenz:r'];
|
||||||
parent::__construct($permissions);
|
parent::__construct($permissions);
|
||||||
|
|
||||||
$this->allowedStgs = $this->permissionlib->getSTG_isEntitledFor('admin') ?: [];
|
$allowedStgs = $this->permissionlib->getSTG_isEntitledFor('admin') ?: [];
|
||||||
$this->allowedStgs = array_merge($this->allowedStgs, $this->permissionlib->getSTG_isEntitledFor('assistenz') ?: []);
|
$allowedStgs = array_merge($allowedStgs, $this->permissionlib->getSTG_isEntitledFor('assistenz') ?: []);
|
||||||
|
|
||||||
if (!$this->allowedStgs) {
|
if (!$allowedStgs) {
|
||||||
$this->_outputAuthError([$router->method => ['admin:r', 'assistenz:r']]);
|
$this->_outputAuthError([$router->method => ['admin:r', 'assistenz:r']]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load Libraries
|
// Load Libraries
|
||||||
$this->load->library('PhrasesLib');
|
$this->load->library('PhrasesLib');
|
||||||
|
$this->load->library('stv/StudentListLib', ['allowedStgs' => $allowedStgs]);
|
||||||
$this->loadPhrases(
|
$this->loadPhrases(
|
||||||
array(
|
array(
|
||||||
'lehre'
|
'lehre'
|
||||||
@@ -111,23 +109,19 @@ class Students extends FHCAPI_Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
$this->studentlistlib->addJoin(
|
||||||
|
|
||||||
|
|
||||||
$this->PrestudentModel->addJoin(
|
|
||||||
"(
|
"(
|
||||||
SELECT prestudent_id
|
SELECT prestudent_id
|
||||||
FROM public.tbl_prestudentstatus
|
FROM public.tbl_prestudentstatus
|
||||||
WHERE status_kurzbz = 'Incoming'
|
WHERE status_kurzbz = 'Incoming'
|
||||||
AND studiensemester_kurzbz = " . $this->PrestudentModel->escape($studiensemester_kurzbz) . "
|
AND studiensemester_kurzbz = " . $this->PrestudentModel->escape($studiensemester_kurzbz) . "
|
||||||
) test",
|
) test",
|
||||||
"prestudent_id"
|
"prestudent_id",
|
||||||
|
"",
|
||||||
|
"start"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->studentlistlib->addSelect("COALESCE(
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect("COALESCE(
|
|
||||||
v.semester::text,
|
v.semester::text,
|
||||||
CASE
|
CASE
|
||||||
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
||||||
@@ -135,16 +129,13 @@ class Students extends FHCAPI_Controller
|
|||||||
ELSE ''::text
|
ELSE ''::text
|
||||||
END
|
END
|
||||||
) AS semester", false);
|
) AS semester", false);
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.verband::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.verband::text, ''::text) AS verband");
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.gruppe::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.gruppe::text, ''::text) AS gruppe");
|
||||||
|
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
$result = $this->PrestudentModel->load();
|
|
||||||
|
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -164,10 +155,7 @@ class Students extends FHCAPI_Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
$this->studentlistlib->addJoin(
|
||||||
|
|
||||||
|
|
||||||
$this->PrestudentModel->addJoin(
|
|
||||||
"(
|
"(
|
||||||
SELECT prestudent_id
|
SELECT prestudent_id
|
||||||
FROM bis.tbl_bisio bis
|
FROM bis.tbl_bisio bis
|
||||||
@@ -187,14 +175,12 @@ class Students extends FHCAPI_Controller
|
|||||||
) AND stdsem.studiensemester_kurzbz = " . $this->PrestudentModel->escape($studiensemester_kurzbz) . "
|
) AND stdsem.studiensemester_kurzbz = " . $this->PrestudentModel->escape($studiensemester_kurzbz) . "
|
||||||
GROUP BY prestudent_id
|
GROUP BY prestudent_id
|
||||||
) test",
|
) test",
|
||||||
"prestudent_id"
|
"prestudent_id",
|
||||||
|
"",
|
||||||
|
"start"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->studentlistlib->addSelect("COALESCE(
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
|
||||||
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect("COALESCE(
|
|
||||||
v.semester::text,
|
v.semester::text,
|
||||||
CASE
|
CASE
|
||||||
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
||||||
@@ -202,16 +188,13 @@ class Students extends FHCAPI_Controller
|
|||||||
ELSE ''::text
|
ELSE ''::text
|
||||||
END
|
END
|
||||||
) AS semester", false);
|
) AS semester", false);
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.verband::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.verband::text, ''::text) AS verband");
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.gruppe::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.gruppe::text, ''::text) AS gruppe");
|
||||||
|
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
$result = $this->PrestudentModel->load();
|
|
||||||
|
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -231,23 +214,18 @@ class Students extends FHCAPI_Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
$this->studentlistlib->addJoin(
|
||||||
|
|
||||||
|
|
||||||
$this->PrestudentModel->addJoin(
|
|
||||||
"(
|
"(
|
||||||
SELECT prestudent_id
|
SELECT prestudent_id
|
||||||
FROM bis.tbl_mobilitaet
|
FROM bis.tbl_mobilitaet
|
||||||
WHERE studiensemester_kurzbz = " . $this->PrestudentModel->escape($studiensemester_kurzbz) . "
|
WHERE studiensemester_kurzbz = " . $this->PrestudentModel->escape($studiensemester_kurzbz) . "
|
||||||
) bis",
|
) bis",
|
||||||
"prestudent_id"
|
"prestudent_id",
|
||||||
|
"",
|
||||||
|
"start"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->studentlistlib->addSelect("COALESCE(
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
|
||||||
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect("COALESCE(
|
|
||||||
v.semester::text,
|
v.semester::text,
|
||||||
CASE
|
CASE
|
||||||
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
||||||
@@ -255,16 +233,13 @@ class Students extends FHCAPI_Controller
|
|||||||
ELSE ''::text
|
ELSE ''::text
|
||||||
END
|
END
|
||||||
) AS semester", false);
|
) AS semester", false);
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.verband::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.verband::text, ''::text) AS verband");
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.gruppe::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.gruppe::text, ''::text) AS gruppe");
|
||||||
|
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
$result = $this->PrestudentModel->load();
|
|
||||||
|
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -313,8 +288,6 @@ class Students extends FHCAPI_Controller
|
|||||||
*/
|
*/
|
||||||
protected function fetchPrestudents($studiengang_kz, $studiensemester_kurzbz = null, $filter = null, $orgform_kurzbz = null)
|
protected function fetchPrestudents($studiengang_kz, $studiensemester_kurzbz = null, $filter = null, $orgform_kurzbz = null)
|
||||||
{
|
{
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
||||||
|
|
||||||
$stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL';
|
$stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL';
|
||||||
|
|
||||||
$selectRT = "
|
$selectRT = "
|
||||||
@@ -331,38 +304,38 @@ class Students extends FHCAPI_Controller
|
|||||||
AND r.studiensemester_kurzbz=" . $stdsemEsc;
|
AND r.studiensemester_kurzbz=" . $stdsemEsc;
|
||||||
|
|
||||||
|
|
||||||
$where = ['tbl_prestudent.studiengang_kz' => $studiengang_kz];
|
$this->studentlistlib->addWhere('tbl_prestudent.studiengang_kz', $studiengang_kz);
|
||||||
|
|
||||||
if ($orgform_kurzbz) {
|
if ($orgform_kurzbz) {
|
||||||
$where['ps.orgform_kurzbz'] = $orgform_kurzbz;
|
$this->studentlistlib->addWhere('ps.orgform_kurzbz', $orgform_kurzbz);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($filter) {
|
switch ($filter) {
|
||||||
case "interessenten":
|
case "interessenten":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
break;
|
break;
|
||||||
case "bewerbungnichtabgeschickt":
|
case "bewerbungnichtabgeschickt":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
$where['ps.bewerbung_abgeschicktamum'] = null;
|
$this->studentlistlib->addWhere('ps.bewerbung_abgeschicktamum IS NULL');
|
||||||
break;
|
break;
|
||||||
case "bewerbungabgeschickt":
|
case "bewerbungabgeschickt":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
$where['ps.bewerbung_abgeschicktamum IS NOT NULL'] = null;
|
$this->studentlistlib->addWhere('ps.bewerbung_abgeschicktamum IS NOT NULL');
|
||||||
$where['ps.bestaetigtam'] = null;
|
$this->studentlistlib->addWhere('ps.bestaetigtam IS NULL');
|
||||||
break;
|
break;
|
||||||
case "statusbestaetigt":
|
case "statusbestaetigt":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
$where['ps.bestaetigtam IS NOT NULL'] = null;
|
$this->studentlistlib->addWhere('ps.bestaetigtam IS NOT NULL');
|
||||||
break;
|
break;
|
||||||
case "statusbestaetigtrtnichtangemeldet":
|
case "statusbestaetigtrtnichtangemeldet":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
$where['ps.bestaetigtam IS NOT NULL'] = null;
|
$this->studentlistlib->addWhere('ps.bestaetigtam IS NOT NULL');
|
||||||
$this->PrestudentModel->db->where('NOT EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('NOT EXISTS(' . $selectRT . ')', null, false);
|
||||||
break;
|
break;
|
||||||
case "statusbestaetigtrtangemeldet":
|
case "statusbestaetigtrtangemeldet":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
$where['ps.bestaetigtam IS NOT NULL'] = null;
|
$this->studentlistlib->addWhere('ps.bestaetigtam IS NOT NULL');
|
||||||
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('EXISTS(' . $selectRT . ')', null, false);
|
||||||
break;
|
break;
|
||||||
case "zgv":
|
case "zgv":
|
||||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||||
@@ -374,69 +347,69 @@ class Students extends FHCAPI_Controller
|
|||||||
$this->terminateWithSuccess([]);
|
$this->terminateWithSuccess([]);
|
||||||
$stg = current($stg);
|
$stg = current($stg);
|
||||||
|
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
|
|
||||||
if ($stg->typ == 'm') {
|
if ($stg->typ == 'm') {
|
||||||
$where['zgvmas_code IS NOT NULL'] = null;
|
$this->studentlistlib->addWhere('zgvmas_code IS NOT NULL');
|
||||||
if (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN)
|
if (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN)
|
||||||
$where['zgvmas_erfuellt'] = true;
|
$this->studentlistlib->addWhere('zgvmas_erfuellt', true);
|
||||||
} elseif ($stg->typ == 'p') {
|
} elseif ($stg->typ == 'p') {
|
||||||
$where['zgvdoktor_code IS NOT NULL'] = null;
|
$this->studentlistlib->addWhere('zgvdoktor_code IS NOT NULL');
|
||||||
if (defined('ZGV_DOKTOR_ANZEIGEN') && ZGV_DOKTOR_ANZEIGEN)
|
if (defined('ZGV_DOKTOR_ANZEIGEN') && ZGV_DOKTOR_ANZEIGEN)
|
||||||
$where['zgvdoktor_erfuellt'] = true;
|
$this->studentlistlib->addWhere('zgvdoktor_erfuellt', true);
|
||||||
} else {
|
} else {
|
||||||
$where['zgv_code IS NOT NULL'] = null;
|
$this->studentlistlib->addWhere('zgv_code IS NOT NULL');
|
||||||
if (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN)
|
if (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN)
|
||||||
$where['zgv_erfuellt'] = true;
|
$this->studentlistlib->addWhere('zgv_erfuellt', true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "reihungstestangemeldet":
|
case "reihungstestangemeldet":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('EXISTS(' . $selectRT . ')', null, false);
|
||||||
break;
|
break;
|
||||||
case "reihungstestnichtangemeldet":
|
case "reihungstestnichtangemeldet":
|
||||||
$where['ps.status_kurzbz'] = 'Interessent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Interessent');
|
||||||
$this->PrestudentModel->db->where('NOT EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('NOT EXISTS(' . $selectRT . ')', null, false);
|
||||||
break;
|
break;
|
||||||
case "bewerber":
|
case "bewerber":
|
||||||
$where['ps.status_kurzbz'] = 'Bewerber';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Bewerber');
|
||||||
break;
|
break;
|
||||||
case "bewerberrtnichtangemeldet":
|
case "bewerberrtnichtangemeldet":
|
||||||
$where['ps.status_kurzbz'] = 'Bewerber';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Bewerber');
|
||||||
$this->PrestudentModel->db->where('NOT EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('NOT EXISTS(' . $selectRT . ')', null, false);
|
||||||
break;
|
break;
|
||||||
case "bewerberrtangemeldet":
|
case "bewerberrtangemeldet":
|
||||||
$where['ps.status_kurzbz'] = 'Bewerber';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Bewerber');
|
||||||
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('EXISTS(' . $selectRT . ')', null, false);
|
||||||
break;
|
break;
|
||||||
case "bewerberrtangemeldetteilgenommen":
|
case "bewerberrtangemeldetteilgenommen":
|
||||||
$where['ps.status_kurzbz'] = 'Bewerber';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Bewerber');
|
||||||
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('EXISTS(' . $selectRT . ')', null, false);
|
||||||
$where['reihungstestangetreten'] = true;
|
$this->studentlistlib->addWhere('reihungstestangetreten', true);
|
||||||
break;
|
break;
|
||||||
case "bewerberrtangemeldetnichtteilgenommen":
|
case "bewerberrtangemeldetnichtteilgenommen":
|
||||||
$where['ps.status_kurzbz'] = 'Bewerber';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Bewerber');
|
||||||
$this->PrestudentModel->db->where('EXISTS(' . $selectRT . ')', null, false);
|
$this->studentlistlib->addWhere('EXISTS(' . $selectRT . ')', null, false);
|
||||||
$where['reihungstestangetreten'] = false;
|
$this->studentlistlib->addWhere('reihungstestangetreten', false);
|
||||||
break;
|
break;
|
||||||
case "aufgenommen":
|
case "aufgenommen":
|
||||||
$where['ps.status_kurzbz'] = 'Aufgenommener';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Aufgenommener');
|
||||||
break;
|
break;
|
||||||
case "warteliste":
|
case "warteliste":
|
||||||
$where['ps.status_kurzbz'] = 'Wartender';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Wartender');
|
||||||
break;
|
break;
|
||||||
case "absage":
|
case "absage":
|
||||||
$where['ps.status_kurzbz'] = 'Abgewiesener';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Abgewiesener');
|
||||||
break;
|
break;
|
||||||
case "incoming":
|
case "incoming":
|
||||||
// NOTE(chris): in FAS it was not filtered for studiengang_kz
|
// NOTE(chris): in FAS it was not filtered for studiengang_kz
|
||||||
$where['ps.status_kurzbz'] = 'Incoming';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Incoming');
|
||||||
break;
|
break;
|
||||||
case "absolvent":
|
case "absolvent":
|
||||||
$where['ps.status_kurzbz'] = 'Absolvent';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Absolvent');
|
||||||
break;
|
break;
|
||||||
case "diplomand":
|
case "diplomand":
|
||||||
$where['ps.status_kurzbz'] = 'Diplomand';
|
$this->studentlistlib->addWhere('ps.status_kurzbz', 'Diplomand');
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!$studiensemester_kurzbz) {
|
if (!$studiensemester_kurzbz) {
|
||||||
@@ -444,9 +417,9 @@ class Students extends FHCAPI_Controller
|
|||||||
* show all prestudents in this stg who don't have a status
|
* show all prestudents in this stg who don't have a status
|
||||||
* $orgform_kurzbz does not change the results since orgform is stored in the status table
|
* $orgform_kurzbz does not change the results since orgform is stored in the status table
|
||||||
*/
|
*/
|
||||||
$where['ps.status_kurzbz'] = null;
|
$this->studentlistlib->addWhere('ps.status_kurzbz IS NULL');
|
||||||
} else {
|
} else {
|
||||||
$this->PrestudentModel->db->where_in('ps.status_kurzbz', [
|
$this->studentlistlib->addWhere('ps.status_kurzbz', [
|
||||||
'Interessent',
|
'Interessent',
|
||||||
'Bewerber',
|
'Bewerber',
|
||||||
'Aufgenommener',
|
'Aufgenommener',
|
||||||
@@ -457,21 +430,19 @@ class Students extends FHCAPI_Controller
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
$this->studentlistlib->addSelect("
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect("
|
|
||||||
CASE
|
CASE
|
||||||
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
||||||
THEN ps.ausbildungssemester::text
|
THEN ps.ausbildungssemester::text
|
||||||
ELSE ''::text
|
ELSE ''::text
|
||||||
END AS semester", false);
|
END AS semester", false);
|
||||||
$this->PrestudentModel->addSelect("'' AS verband");
|
$this->studentlistlib->addSelect("'' AS verband");
|
||||||
$this->PrestudentModel->addSelect("'' AS gruppe");
|
$this->studentlistlib->addSelect("'' AS gruppe");
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
$result = $this->PrestudentModel->loadWhere($where);
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -574,7 +545,6 @@ class Students extends FHCAPI_Controller
|
|||||||
$gruppe_kurzbz = null,
|
$gruppe_kurzbz = null,
|
||||||
$orgform_kurzbz = null
|
$orgform_kurzbz = null
|
||||||
) {
|
) {
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
||||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||||
|
|
||||||
if (!$this->StudiensemesterModel->isValidStudiensemester($studiensemester_kurzbz))
|
if (!$this->StudiensemesterModel->isValidStudiensemester($studiensemester_kurzbz))
|
||||||
@@ -582,34 +552,29 @@ class Students extends FHCAPI_Controller
|
|||||||
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->prepareQuery($studiensemester_kurzbz, '');
|
// NOTE(chris): overwrite 'LEFT JOIN' with 'JOIN'
|
||||||
|
$this->studentlistlib->addJoin("public.tbl_student s", "prestudent_id");
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect('v.semester');
|
$this->studentlistlib->addSelect("'' AS priorisierung_relativ");
|
||||||
$this->PrestudentModel->addSelect('v.verband');
|
|
||||||
$this->PrestudentModel->addSelect('v.gruppe');
|
|
||||||
$this->PrestudentModel->addSelect("'' AS priorisierung_relativ");
|
|
||||||
|
|
||||||
|
|
||||||
$where = [];
|
|
||||||
|
|
||||||
if ($gruppe_kurzbz !== null) {
|
if ($gruppe_kurzbz !== null) {
|
||||||
$this->PrestudentModel->addJoin('public.tbl_benutzergruppe g', 'uid');
|
$this->studentlistlib->addJoin('public.tbl_benutzergruppe g', 'uid', '', 'after_b');
|
||||||
$where['g.gruppe_kurzbz'] = $gruppe_kurzbz;
|
$this->studentlistlib->addWhere('g.gruppe_kurzbz', $gruppe_kurzbz);
|
||||||
$where['g.studiensemester_kurzbz'] = $studiensemester_kurzbz;
|
$this->studentlistlib->addWhere('g.studiensemester_kurzbz', $studiensemester_kurzbz);
|
||||||
} else {
|
} else {
|
||||||
$where['v.studiengang_kz'] = $studiengang_kz;
|
$this->studentlistlib->addWhere('v.studiengang_kz', $studiengang_kz);
|
||||||
|
|
||||||
if ($semester !== null)
|
if ($semester !== null)
|
||||||
$where['v.semester'] = $semester;
|
$this->studentlistlib->addWhere('v.semester', $semester);
|
||||||
|
|
||||||
if ($verband !== null)
|
if ($verband !== null)
|
||||||
$where['v.verband'] = $verband;
|
$this->studentlistlib->addWhere('v.verband', $verband);
|
||||||
|
|
||||||
if ($gruppe !== null)
|
if ($gruppe !== null)
|
||||||
$where['v.gruppe'] = $gruppe;
|
$this->studentlistlib->addWhere('v.gruppe', $gruppe);
|
||||||
|
|
||||||
if (!$verband && !$gruppe && $orgform_kurzbz !== null) {
|
if (!$verband && !$gruppe && $orgform_kurzbz !== null) {
|
||||||
$this->PrestudentModel->db->where(
|
$this->studentlistlib->addWhere(
|
||||||
"(
|
"(
|
||||||
SELECT orgform_kurzbz
|
SELECT orgform_kurzbz
|
||||||
FROM public.tbl_prestudentstatus
|
FROM public.tbl_prestudentstatus
|
||||||
@@ -623,9 +588,10 @@ class Students extends FHCAPI_Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
$result = $this->PrestudentModel->loadWhere($where);
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -652,11 +618,8 @@ class Students extends FHCAPI_Controller
|
|||||||
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
||||||
|
$this->studentlistlib->addSelect("COALESCE(
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect("COALESCE(
|
|
||||||
v.semester::text,
|
v.semester::text,
|
||||||
CASE
|
CASE
|
||||||
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
WHEN pls.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
||||||
@@ -664,16 +627,15 @@ class Students extends FHCAPI_Controller
|
|||||||
ELSE ''::text
|
ELSE ''::text
|
||||||
END
|
END
|
||||||
) AS semester", false);
|
) AS semester", false);
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.verband::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.verband::text, ''::text) AS verband");
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.gruppe::text, ''::text)");
|
$this->studentlistlib->addSelect("COALESCE(v.gruppe::text, ''::text) AS gruppe");
|
||||||
|
|
||||||
|
$this->studentlistlib->addWhere('tbl_prestudent.prestudent_id', $prestudent_id);
|
||||||
|
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
$result = $this->PrestudentModel->loadWhere([
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
'tbl_prestudent.prestudent_id' => $prestudent_id
|
|
||||||
]);
|
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -700,23 +662,13 @@ class Students extends FHCAPI_Controller
|
|||||||
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
||||||
|
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect('v.semester');
|
|
||||||
$this->PrestudentModel->addSelect('v.verband');
|
|
||||||
$this->PrestudentModel->addSelect('v.gruppe');
|
|
||||||
|
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
|
|
||||||
|
$this->studentlistlib->addWhere('s.student_uid', $student_uid);
|
||||||
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
$result = $this->PrestudentModel->loadWhere([
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
's.student_uid' => $student_uid
|
|
||||||
]);
|
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -744,21 +696,13 @@ class Students extends FHCAPI_Controller
|
|||||||
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
$this->terminateWithError($studiensemester_kurzbz . ' - ' . $this->p->t('lehre', 'error_noStudiensemester'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
||||||
|
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
$this->studentlistlib->addWhere('p.person_id', $person_id);
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect('v.semester');
|
|
||||||
$this->PrestudentModel->addSelect('v.verband');
|
|
||||||
$this->PrestudentModel->addSelect('v.gruppe');
|
|
||||||
|
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
$result = $this->PrestudentModel->loadWhere([
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
'p.person_id' => $person_id
|
|
||||||
]);
|
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
@@ -790,29 +734,8 @@ class Students extends FHCAPI_Controller
|
|||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
|
|
||||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
||||||
|
|
||||||
$this->prepareQuery($studiensemester_kurzbz);
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect("COALESCE(v.semester::text, CASE WHEN public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL) IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent') THEN public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)::text ELSE ''::text END) AS semester", false);
|
|
||||||
$this->PrestudentModel->addSelect('v.verband');
|
|
||||||
$this->PrestudentModel->addSelect('v.gruppe');
|
|
||||||
|
|
||||||
//add status per semester
|
|
||||||
$this->PrestudentModel->addSelect(
|
|
||||||
"public.get_rolle_prestudent(public.tbl_prestudent.prestudent_id, "
|
|
||||||
. $this->PrestudentModel->escape($studiensemester_kurzbz)
|
|
||||||
. ") AS statusofsemester"
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->addSelectPrioRel();
|
|
||||||
|
|
||||||
$this->addFilter($studiensemester_kurzbz);
|
|
||||||
|
|
||||||
$prestudent_ids = [];
|
$prestudent_ids = [];
|
||||||
$student_uids = [];
|
$student_uids = [];
|
||||||
$this->addMeta('data', $data);
|
|
||||||
foreach ($data as $row) {
|
foreach ($data as $row) {
|
||||||
$dataset = json_decode($row->data);
|
$dataset = json_decode($row->data);
|
||||||
if ($row->type == 'prestudent') {
|
if ($row->type == 'prestudent') {
|
||||||
@@ -822,197 +745,38 @@ class Students extends FHCAPI_Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$this->studentlistlib->addSelect("COALESCE(
|
||||||
|
v.semester::text,
|
||||||
|
CASE
|
||||||
|
WHEN public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL) IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
|
||||||
|
THEN public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)::text
|
||||||
|
ELSE ''::text
|
||||||
|
END
|
||||||
|
) AS semester", false);
|
||||||
|
|
||||||
|
|
||||||
if ($prestudent_ids && $student_uids) {
|
if ($prestudent_ids && $student_uids) {
|
||||||
$this->PrestudentModel->db->where_in('tbl_prestudent.prestudent_id', $prestudent_ids);
|
$this->studentlistlib->addWhere('tbl_prestudent.prestudent_id', $prestudent_ids);
|
||||||
$this->PrestudentModel->db->or_where_in('s.student_uid', $student_uids);
|
$this->studentlistlib->addOrWhere('s.student_uid', $student_uids);
|
||||||
} elseif ($prestudent_ids) {
|
} elseif ($prestudent_ids) {
|
||||||
$this->PrestudentModel->db->where_in('tbl_prestudent.prestudent_id', $prestudent_ids);
|
$this->studentlistlib->addWhere('tbl_prestudent.prestudent_id', $prestudent_ids);
|
||||||
} elseif ($student_uids) {
|
} elseif ($student_uids) {
|
||||||
$this->PrestudentModel->db->where_in('s.student_uid', $student_uids);
|
$this->studentlistlib->addWhere('s.student_uid', $student_uids);
|
||||||
} else {
|
} else {
|
||||||
$this->terminateWithSuccess([]);
|
$this->terminateWithSuccess([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $this->PrestudentModel->load();
|
|
||||||
|
$this->addFilter($studiensemester_kurzbz);
|
||||||
|
|
||||||
|
$result = $this->studentlistlib->execute($studiensemester_kurzbz);
|
||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
$this->terminateWithSuccess($data);
|
$this->terminateWithSuccess($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string|null $studiensemester_kurzbz
|
|
||||||
* @param string $type
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function prepareQuery($studiensemester_kurzbz, $type = 'LEFT')
|
|
||||||
{
|
|
||||||
$stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL';
|
|
||||||
|
|
||||||
$this->load->config('stv');
|
|
||||||
|
|
||||||
if(defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED)
|
|
||||||
{
|
|
||||||
$tags = $this->config->item('stv_prestudent_tags');
|
|
||||||
|
|
||||||
$whereTags = '';
|
|
||||||
if (is_array($tags) && !isEmptyArray($tags)) {
|
|
||||||
$tags = array_keys($tags);
|
|
||||||
|
|
||||||
foreach ($tags as $key => $tag) {
|
|
||||||
$tags[$key] = $this->db->escape($tag);
|
|
||||||
}
|
|
||||||
$whereTags = " AND nt.typ_kurzbz IN (" . implode(",", $tags) . ")";
|
|
||||||
}
|
|
||||||
$subQueryTag = "
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
tag.prestudent_id,
|
|
||||||
COALESCE(json_agg(tag ORDER BY tag.done), '[]'::json) AS tags
|
|
||||||
FROM (
|
|
||||||
SELECT DISTINCT ON (n.notiz_id)
|
|
||||||
n.notiz_id AS id,
|
|
||||||
nt.typ_kurzbz,
|
|
||||||
array_to_json(nt.bezeichnung_mehrsprachig)->>0 AS beschreibung,
|
|
||||||
n.text AS notiz,
|
|
||||||
nt.style,
|
|
||||||
n.erledigt AS done,
|
|
||||||
nz.prestudent_id
|
|
||||||
FROM public.tbl_notizzuordnung AS nz
|
|
||||||
JOIN public.tbl_notiz AS n ON nz.notiz_id = n.notiz_id
|
|
||||||
JOIN public.tbl_notiz_typ AS nt ON n.typ = nt.typ_kurzbz "
|
|
||||||
. $whereTags .
|
|
||||||
"
|
|
||||||
) AS tag
|
|
||||||
GROUP BY tag.prestudent_id
|
|
||||||
) AS tag_data_agg
|
|
||||||
";
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
|
|
||||||
$this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
|
|
||||||
$this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id', $type);
|
|
||||||
$this->PrestudentModel->addJoin('public.tbl_prestudentstatus pls', '
|
|
||||||
pls.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL)
|
|
||||||
AND pls.prestudent_id=tbl_prestudent.prestudent_id
|
|
||||||
AND pls.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, NULL)
|
|
||||||
AND pls.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)', 'LEFT');
|
|
||||||
$this->PrestudentModel->addJoin('lehre.tbl_studienplan sp', 'studienplan_id', 'LEFT');
|
|
||||||
$this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid', 'LEFT');
|
|
||||||
$this->PrestudentModel->addJoin(
|
|
||||||
'public.tbl_studentlehrverband v',
|
|
||||||
'v.student_uid=s.student_uid AND v.studiensemester_kurzbz' . ($studiensemester_kurzbz ? '=' . $stdsemEsc : ' IS NULL'),
|
|
||||||
$type
|
|
||||||
);
|
|
||||||
$this->PrestudentModel->addJoin('public.tbl_prestudentstatus ps', '
|
|
||||||
ps.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
|
|
||||||
AND ps.prestudent_id=tbl_prestudent.prestudent_id
|
|
||||||
AND ps.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
|
|
||||||
AND ps.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')', 'LEFT');
|
|
||||||
|
|
||||||
if(defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED)
|
|
||||||
{
|
|
||||||
$this->PrestudentModel->addJoin($subQueryTag, 'tag_data_agg.prestudent_id = tbl_prestudent.prestudent_id', 'LEFT');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect("b.uid");
|
|
||||||
if(defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED)
|
|
||||||
{
|
|
||||||
$this->PrestudentModel->addSelect('tag_data_agg.tags');
|
|
||||||
}
|
|
||||||
$this->PrestudentModel->addSelect('titelpre');
|
|
||||||
$this->PrestudentModel->addSelect('nachname');
|
|
||||||
$this->PrestudentModel->addSelect('vorname');
|
|
||||||
$this->PrestudentModel->addSelect('wahlname');
|
|
||||||
$this->PrestudentModel->addSelect('vornamen');
|
|
||||||
$this->PrestudentModel->addSelect('titelpost');
|
|
||||||
$this->PrestudentModel->addSelect('ersatzkennzeichen');
|
|
||||||
$this->PrestudentModel->addSelect('gebdatum');
|
|
||||||
$this->PrestudentModel->addSelect('geschlecht');
|
|
||||||
$this->PrestudentModel->addSelect('foto');
|
|
||||||
$this->PrestudentModel->addSelect('foto_sperre');
|
|
||||||
|
|
||||||
// semester
|
|
||||||
// verband
|
|
||||||
// gruppe
|
|
||||||
|
|
||||||
//add status per semester
|
|
||||||
$this->PrestudentModel->addSelect(
|
|
||||||
"public.get_rolle_prestudent(public.tbl_prestudent.prestudent_id, "
|
|
||||||
. $this->PrestudentModel->escape($studiensemester_kurzbz)
|
|
||||||
. ") AS statusofsemester"
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect('UPPER(stg.typ || stg.kurzbz) AS studiengang');
|
|
||||||
$this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
|
|
||||||
$this->PrestudentModel->addSelect('stg.bezeichnung AS stg_bezeichnung');
|
|
||||||
$this->PrestudentModel->addSelect("s.matrikelnr");
|
|
||||||
$this->PrestudentModel->addSelect('p.person_id');
|
|
||||||
$this->PrestudentModel->addSelect('pls.status_kurzbz AS status');
|
|
||||||
$this->PrestudentModel->addSelect('pls.datum AS status_datum');
|
|
||||||
$this->PrestudentModel->addSelect('pls.bestaetigtam AS status_bestaetigung');
|
|
||||||
$this->PrestudentModel->addSelect(
|
|
||||||
"(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS mail_privat",
|
|
||||||
false
|
|
||||||
);
|
|
||||||
$this->PrestudentModel->addSelect("
|
|
||||||
CASE WHEN b.uid IS NOT NULL AND b.uid<>''
|
|
||||||
THEN CONCAT(b.uid, '@', " . $this->PrestudentModel->escape(DOMAIN) . ")
|
|
||||||
ELSE '' END AS mail_intern", false);
|
|
||||||
$this->PrestudentModel->addSelect('p.anmerkung AS anmerkungen');
|
|
||||||
$this->PrestudentModel->addSelect('tbl_prestudent.anmerkung');
|
|
||||||
$this->PrestudentModel->addSelect('pls.orgform_kurzbz');
|
|
||||||
$this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
|
|
||||||
$this->PrestudentModel->addSelect(
|
|
||||||
"(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=ps.prestudent_id) AS punkte",
|
|
||||||
false
|
|
||||||
);
|
|
||||||
$this->PrestudentModel->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
|
|
||||||
$this->PrestudentModel->addSelect('tbl_prestudent.dual');
|
|
||||||
$this->PrestudentModel->addSelect('p.matr_nr');
|
|
||||||
$this->PrestudentModel->addSelect('sp.bezeichnung AS studienplan_bezeichnung');
|
|
||||||
$this->PrestudentModel->addSelect('tbl_prestudent.prestudent_id');
|
|
||||||
|
|
||||||
// priorisierung_relativ
|
|
||||||
|
|
||||||
$this->PrestudentModel->addSelect('mentor');
|
|
||||||
$this->PrestudentModel->addSelect('b.aktiv AS bnaktiv');
|
|
||||||
$this->PrestudentModel->addSelect('unruly');
|
|
||||||
|
|
||||||
$this->PrestudentModel->db->where_in('tbl_prestudent.studiengang_kz', $this->allowedStgs);
|
|
||||||
|
|
||||||
$this->PrestudentModel->addOrder('nachname');
|
|
||||||
$this->PrestudentModel->addOrder('vorname');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function addSelectPrioRel()
|
|
||||||
{
|
|
||||||
$this->PrestudentModel->addSelect("(
|
|
||||||
SELECT count(*)
|
|
||||||
FROM (
|
|
||||||
SELECT *, public.get_rolle_prestudent(pss.prestudent_id, NULL) AS laststatus
|
|
||||||
FROM public.tbl_prestudent pss
|
|
||||||
JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
|
||||||
WHERE person_id = p.person_id
|
|
||||||
AND studiensemester_kurzbz = (
|
|
||||||
SELECT studiensemester_kurzbz
|
|
||||||
FROM public.tbl_prestudentstatus
|
|
||||||
WHERE prestudent_id = tbl_prestudent.prestudent_id
|
|
||||||
AND status_kurzbz = 'Interessent'
|
|
||||||
LIMIT 1
|
|
||||||
)
|
|
||||||
AND status_kurzbz = 'Interessent'
|
|
||||||
) prest
|
|
||||||
WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
|
|
||||||
AND priorisierung <= tbl_prestudent.priorisierung
|
|
||||||
) || ' (' || COALESCE(tbl_prestudent.priorisierung::text, ' '::text) || ')' AS priorisierung_relativ", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds additional filters to the query
|
* Adds additional filters to the query
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -417,6 +417,7 @@ abstract class Notiz_Controller extends FHCAPI_Controller
|
|||||||
$notiz_id = $this->input->post('notiz_id');
|
$notiz_id = $this->input->post('notiz_id');
|
||||||
|
|
||||||
$this->NotizModel->addSelect('campus.tbl_dms_version.*');
|
$this->NotizModel->addSelect('campus.tbl_dms_version.*');
|
||||||
|
$this->NotizModel->addSelect($this->NotizModel->escape(base_url('content/notizdokdownload.php?id=')) . ' || public.tbl_notiz_dokument.dms_id AS preview');
|
||||||
|
|
||||||
$this->NotizModel->addJoin('public.tbl_notiz_dokument', 'ON (public.tbl_notiz_dokument.notiz_id = public.tbl_notiz.notiz_id)');
|
$this->NotizModel->addJoin('public.tbl_notiz_dokument', 'ON (public.tbl_notiz_dokument.notiz_id = public.tbl_notiz.notiz_id)');
|
||||||
$this->NotizModel->addJoin('campus.tbl_dms_version', 'ON (public.tbl_notiz_dokument.dms_id = campus.tbl_dms_version.dms_id)');
|
$this->NotizModel->addJoin('campus.tbl_dms_version', 'ON (public.tbl_notiz_dokument.dms_id = campus.tbl_dms_version.dms_id)');
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ class AntragLib
|
|||||||
return $this->_ci->StudierendenantragstatusModel->resumeAntraegeForAbmeldungStgl($antrag_id);
|
return $this->_ci->StudierendenantragstatusModel->resumeAntraegeForAbmeldungStgl($antrag_id);
|
||||||
}
|
}
|
||||||
// NOTE(chris): get last status that is not pause
|
// NOTE(chris): get last status that is not pause
|
||||||
$this->_ci->StudierendenantragstatusModel->addOrder('insertamum');
|
$this->_ci->StudierendenantragstatusModel->addOrder('insertamum', 'DESC');
|
||||||
$this->_ci->StudierendenantragstatusModel->addLimit(1);
|
$this->_ci->StudierendenantragstatusModel->addLimit(1);
|
||||||
$result = $this->_ci->StudierendenantragstatusModel->loadWhere([
|
$result = $this->_ci->StudierendenantragstatusModel->loadWhere([
|
||||||
'studierendenantrag_id' => $antrag_id,
|
'studierendenantrag_id' => $antrag_id,
|
||||||
|
|||||||
@@ -0,0 +1,363 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2025 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 3 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, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This generates a list of students and or prestudents used for Studierendenverwaltung
|
||||||
|
*/
|
||||||
|
class StudentListLib
|
||||||
|
{
|
||||||
|
private $_ci; // Code igniter instance
|
||||||
|
|
||||||
|
private $_allowedStgs = [];
|
||||||
|
private $_selects = [];
|
||||||
|
private $_joins = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the CI instance, loads model and prepares default values
|
||||||
|
*
|
||||||
|
* @param array $params
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct($params = null)
|
||||||
|
{
|
||||||
|
$this->_ci =& get_instance(); // get code igniter instance
|
||||||
|
|
||||||
|
$this->_ci->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||||
|
|
||||||
|
if (isset($params['allowedStgs']))
|
||||||
|
$this->_allowedStgs = $params['allowedStgs'];
|
||||||
|
|
||||||
|
// Add default SELECTs
|
||||||
|
$this->addSelect("b.uid");
|
||||||
|
if (defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED)
|
||||||
|
$this->addSelect('tag_data_agg.tags');
|
||||||
|
$this->addSelect('titelpre');
|
||||||
|
$this->addSelect('nachname');
|
||||||
|
$this->addSelect('vorname');
|
||||||
|
$this->addSelect('wahlname');
|
||||||
|
$this->addSelect('vornamen');
|
||||||
|
$this->addSelect('titelpost');
|
||||||
|
$this->addSelect('ersatzkennzeichen');
|
||||||
|
$this->addSelect('gebdatum');
|
||||||
|
$this->addSelect('geschlecht');
|
||||||
|
$this->addSelect('foto');
|
||||||
|
$this->addSelect('foto_sperre');
|
||||||
|
$this->addSelect('v.semester');
|
||||||
|
$this->addSelect('v.verband');
|
||||||
|
$this->addSelect('v.gruppe');
|
||||||
|
$this->addSelect("statusofsemester"); // Will be replaced later
|
||||||
|
$this->addSelect('UPPER(stg.typ || stg.kurzbz) AS studiengang');
|
||||||
|
$this->addSelect('tbl_prestudent.studiengang_kz');
|
||||||
|
$this->addSelect('stg.bezeichnung AS stg_bezeichnung');
|
||||||
|
$this->addSelect("s.matrikelnr");
|
||||||
|
$this->addSelect('p.person_id');
|
||||||
|
$this->addSelect('pls.status_kurzbz AS status');
|
||||||
|
$this->addSelect('pls.datum AS status_datum');
|
||||||
|
$this->addSelect('pls.bestaetigtam AS status_bestaetigung');
|
||||||
|
$this->addSelect(
|
||||||
|
"(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS mail_privat",
|
||||||
|
false
|
||||||
|
);
|
||||||
|
$this->addSelect("
|
||||||
|
CASE WHEN b.uid IS NOT NULL AND b.uid<>''
|
||||||
|
THEN CONCAT(b.uid, '@', " . $this->_ci->PrestudentModel->escape(DOMAIN) . ")
|
||||||
|
ELSE '' END AS mail_intern", false);
|
||||||
|
$this->addSelect('p.anmerkung AS anmerkungen');
|
||||||
|
$this->addSelect('tbl_prestudent.anmerkung');
|
||||||
|
$this->addSelect('pls.orgform_kurzbz');
|
||||||
|
$this->addSelect('aufmerksamdurch_kurzbz');
|
||||||
|
$this->addSelect(
|
||||||
|
"(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=ps.prestudent_id) AS punkte",
|
||||||
|
false
|
||||||
|
);
|
||||||
|
$this->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
|
||||||
|
$this->addSelect('tbl_prestudent.dual');
|
||||||
|
$this->addSelect('p.matr_nr');
|
||||||
|
$this->addSelect('sp.bezeichnung AS studienplan_bezeichnung');
|
||||||
|
$this->addSelect('tbl_prestudent.prestudent_id');
|
||||||
|
$this->addSelect("(
|
||||||
|
SELECT count(*)
|
||||||
|
FROM (
|
||||||
|
SELECT *, public.get_rolle_prestudent(pss.prestudent_id, NULL) AS laststatus
|
||||||
|
FROM public.tbl_prestudent pss
|
||||||
|
JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||||
|
WHERE person_id = p.person_id
|
||||||
|
AND studiensemester_kurzbz = (
|
||||||
|
SELECT studiensemester_kurzbz
|
||||||
|
FROM public.tbl_prestudentstatus
|
||||||
|
WHERE prestudent_id = tbl_prestudent.prestudent_id
|
||||||
|
AND status_kurzbz = 'Interessent'
|
||||||
|
LIMIT 1
|
||||||
|
)
|
||||||
|
AND status_kurzbz = 'Interessent'
|
||||||
|
) prest
|
||||||
|
WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
|
||||||
|
AND priorisierung <= tbl_prestudent.priorisierung
|
||||||
|
) || ' (' || COALESCE(tbl_prestudent.priorisierung::text, ' '::text) || ')' AS priorisierung_relativ", false); // TODO(chris): overwrite in fetchStudents
|
||||||
|
$this->addSelect('mentor');
|
||||||
|
$this->addSelect('b.aktiv AS bnaktiv');
|
||||||
|
$this->addSelect('unruly');
|
||||||
|
|
||||||
|
// Add default JOINs
|
||||||
|
$this->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
|
||||||
|
$this->addJoin('public.tbl_person p', 'person_id');
|
||||||
|
$this->addJoin('public.tbl_student s', 'prestudent_id', 'LEFT'); // TODO(chris): overwrite in fetchStudents
|
||||||
|
$this->addJoin('public.tbl_prestudentstatus pls', '
|
||||||
|
pls.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL)
|
||||||
|
AND pls.prestudent_id=tbl_prestudent.prestudent_id
|
||||||
|
AND pls.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, NULL)
|
||||||
|
AND pls.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)', 'LEFT');
|
||||||
|
$this->addJoin('lehre.tbl_studienplan sp', 'studienplan_id', 'LEFT');
|
||||||
|
$this->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid', 'LEFT');
|
||||||
|
$this->addJoin("v", "", ""); // Will be replaced later
|
||||||
|
$this->addJoin("ps", "", ""); // Will be replaced later
|
||||||
|
if (defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED) {
|
||||||
|
$this->_ci->load->config('stv');
|
||||||
|
$tags = $this->_ci->config->item('stv_prestudent_tags');
|
||||||
|
|
||||||
|
$whereTags = '';
|
||||||
|
if (is_array($tags) && !isEmptyArray($tags)) {
|
||||||
|
$tags = array_keys($tags);
|
||||||
|
|
||||||
|
foreach ($tags as $key => $tag) {
|
||||||
|
$tags[$key] = $this->_ci->PrestudentModel->escape($tag);
|
||||||
|
}
|
||||||
|
$whereTags = " AND nt.typ_kurzbz IN (" . implode(",", $tags) . ")";
|
||||||
|
}
|
||||||
|
$subQueryTag = "(
|
||||||
|
SELECT
|
||||||
|
tag.prestudent_id,
|
||||||
|
COALESCE(json_agg(tag ORDER BY tag.done), '[]'::json) AS tags
|
||||||
|
FROM (
|
||||||
|
SELECT DISTINCT ON (n.notiz_id)
|
||||||
|
n.notiz_id AS id,
|
||||||
|
nt.typ_kurzbz,
|
||||||
|
array_to_json(nt.bezeichnung_mehrsprachig)->>0 AS beschreibung,
|
||||||
|
n.text AS notiz,
|
||||||
|
nt.style,
|
||||||
|
n.erledigt AS done,
|
||||||
|
nz.prestudent_id
|
||||||
|
FROM public.tbl_notizzuordnung AS nz
|
||||||
|
JOIN public.tbl_notiz AS n ON nz.notiz_id = n.notiz_id
|
||||||
|
JOIN public.tbl_notiz_typ AS nt ON n.typ = nt.typ_kurzbz " . $whereTags . "
|
||||||
|
) AS tag
|
||||||
|
GROUP BY tag.prestudent_id
|
||||||
|
) AS tag_data_agg";
|
||||||
|
|
||||||
|
$this->addJoin($subQueryTag, 'tag_data_agg.prestudent_id = tbl_prestudent.prestudent_id', 'LEFT');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Public methods
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a SELECT statement to the query.
|
||||||
|
*
|
||||||
|
* @param string|array $select
|
||||||
|
* @param boolean $escape (optional)
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addSelect($select, $escape = true)
|
||||||
|
{
|
||||||
|
if (is_array($select)) {
|
||||||
|
foreach ($select as $s)
|
||||||
|
$this->addSelect($s, $escape);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$alias = $this->getAliasFromSelect($select);
|
||||||
|
$this->_selects[$alias] = [$select, $escape];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Joins a table to the query.
|
||||||
|
*
|
||||||
|
* @param string $table
|
||||||
|
* @param string $cond
|
||||||
|
* @param string $type (optional)
|
||||||
|
* @param string $position (optional)
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addJoin($table, $cond, $type = '', $position = 'end')
|
||||||
|
{
|
||||||
|
$alias = $this->getAliasFromTable($table);
|
||||||
|
|
||||||
|
if ($position == 'end') {
|
||||||
|
return $this->_joins[$alias] = [$table, $cond, $type];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($position == 'start') {
|
||||||
|
return $this->_joins = [$alias => [$table, $cond, $type]] + $this->_joins;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (substr($position, 0, 7) == 'before_') {
|
||||||
|
$ref = substr($position, 7);
|
||||||
|
$index = 0;
|
||||||
|
} elseif (substr($position, 0, 6) == 'after_') {
|
||||||
|
$ref = substr($position, 6);
|
||||||
|
$index = 1;
|
||||||
|
} else {
|
||||||
|
return $this->addJoin($table, $cond, $type);
|
||||||
|
}
|
||||||
|
if (!isset($this->_joins[$ref]))
|
||||||
|
return $this->addJoin($table, $cond, $type);
|
||||||
|
|
||||||
|
$key_indeces = array_flip(array_keys($this->_joins));
|
||||||
|
$index += $key_indeces[$ref];
|
||||||
|
|
||||||
|
if (!$index)
|
||||||
|
return $this->addJoin($table, $cond, $type, 'start');
|
||||||
|
|
||||||
|
$front_part = array_slice($this->_joins, 0, $index, true);
|
||||||
|
$back_part = array_slice($this->_joins, $index, null, true);
|
||||||
|
|
||||||
|
if (isset($front_part[$alias])) {
|
||||||
|
unset($front_part[$alias]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_joins = $front_part + [$alias => [$table, $cond, $type]] + $back_part;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a WHERE clause to the query.
|
||||||
|
*
|
||||||
|
* @param string|array $key
|
||||||
|
* @param string|array $value
|
||||||
|
* @param boolean $escape
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addWhere($key, $value = null, $escape = true)
|
||||||
|
{
|
||||||
|
if (!is_array($key) && is_array($value)) {
|
||||||
|
$this->_ci->PrestudentModel->db->where_in($key, $value, $escape);
|
||||||
|
} else {
|
||||||
|
$this->_ci->PrestudentModel->db->where($key, $value, $escape);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a OR WHERE clause to the query.
|
||||||
|
*
|
||||||
|
* @param string|array $key
|
||||||
|
* @param string|array $value
|
||||||
|
* @param boolean $escape
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addOrWhere($key, $value = null, $escape = true)
|
||||||
|
{
|
||||||
|
if (!is_array($key) && is_array($value)) {
|
||||||
|
$this->_ci->PrestudentModel->db->or_where_in($key, $value, $escape);
|
||||||
|
} else {
|
||||||
|
$this->_ci->PrestudentModel->db->or_where($key, $value, $escape);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates the query and executes it.
|
||||||
|
*
|
||||||
|
* @param string|null $studiensemester_kurzbz
|
||||||
|
*
|
||||||
|
* @return stdClass result of the query
|
||||||
|
*/
|
||||||
|
public function execute($studiensemester_kurzbz)
|
||||||
|
{
|
||||||
|
$stdsemEsc = $studiensemester_kurzbz ? $this->_ci->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL';
|
||||||
|
|
||||||
|
|
||||||
|
$this->addSelect(
|
||||||
|
"public.get_rolle_prestudent(
|
||||||
|
public.tbl_prestudent.prestudent_id,
|
||||||
|
" . $this->_ci->PrestudentModel->escape($studiensemester_kurzbz) . "
|
||||||
|
) AS statusofsemester"
|
||||||
|
);
|
||||||
|
$this->addJoin(
|
||||||
|
'public.tbl_studentlehrverband v',
|
||||||
|
'v.student_uid=s.student_uid AND v.studiensemester_kurzbz' . ($studiensemester_kurzbz ? '=' . $stdsemEsc : ' IS NULL'),
|
||||||
|
'LEFT'
|
||||||
|
);
|
||||||
|
$this->addJoin(
|
||||||
|
'public.tbl_prestudentstatus ps',
|
||||||
|
'ps.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
|
||||||
|
AND ps.prestudent_id=tbl_prestudent.prestudent_id
|
||||||
|
AND ps.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
|
||||||
|
AND ps.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
|
||||||
|
',
|
||||||
|
'LEFT'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addWhere('tbl_prestudent.studiengang_kz', $this->_allowedStgs);
|
||||||
|
|
||||||
|
foreach ($this->_joins as $join)
|
||||||
|
$this->_ci->PrestudentModel->addJoin($join[0], $join[1], $join[2]);
|
||||||
|
|
||||||
|
foreach ($this->_selects as $select)
|
||||||
|
$this->_ci->PrestudentModel->addSelect($select[0], $select[1]);
|
||||||
|
|
||||||
|
$this->_ci->PrestudentModel->addOrder('nachname');
|
||||||
|
$this->_ci->PrestudentModel->addOrder('vorname');
|
||||||
|
|
||||||
|
return $this->_ci->PrestudentModel->load();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Protected methods
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get alias of a table or select statement
|
||||||
|
*
|
||||||
|
* @param string $select
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
final protected function getAliasFromSelect($select)
|
||||||
|
{
|
||||||
|
if (strpos($select, ' ') !== false) {
|
||||||
|
return trim(strrchr($select, ' '));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($select, '.') !== false) {
|
||||||
|
return substr(strrchr($select, '.'), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $select;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get alias of a table or select statement
|
||||||
|
*
|
||||||
|
* @param string|array $table
|
||||||
|
*
|
||||||
|
* @return string|array
|
||||||
|
*/
|
||||||
|
final protected function getAliasFromTable($table)
|
||||||
|
{
|
||||||
|
if (strpos($table, ' ') !== false) {
|
||||||
|
return trim(strrchr($table, ' '));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $table;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -40,7 +40,9 @@ abstract class AbstractBestandteil implements IValidation
|
|||||||
|
|
||||||
if( is_bool($new_value) && ($old_value !== $new_value) ) {
|
if( is_bool($new_value) && ($old_value !== $new_value) ) {
|
||||||
$this->modifiedcolumns[$columnname] = $columnname;
|
$this->modifiedcolumns[$columnname] = $columnname;
|
||||||
} else if($old_value != $new_value) {
|
} else if(is_null($old_value) xor is_null($new_value)) {
|
||||||
|
$this->modifiedcolumns[$columnname] = $columnname;
|
||||||
|
} else if($old_value != $new_value) {
|
||||||
$this->modifiedcolumns[$columnname] = $columnname;
|
$this->modifiedcolumns[$columnname] = $columnname;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,19 +137,25 @@ EOTXT;
|
|||||||
return parent::__toString() . $txt;
|
return parent::__toString() . $txt;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* public function validate()
|
public function validate()
|
||||||
{
|
{
|
||||||
if( !(filter_var($this->tage, FILTER_VALIDATE_INT,
|
$value = $this->vordienstzeit;
|
||||||
array(
|
|
||||||
'options' => array(
|
if ($value === null || $value === '') {
|
||||||
'min_range' => 1,
|
$result = null; // allow null value
|
||||||
'max_range' => 50
|
} else {
|
||||||
)
|
$result = filter_var($value, FILTER_VALIDATE_INT, [
|
||||||
)
|
'options' => [
|
||||||
)) ) {
|
'min_range' => 0,
|
||||||
$this->validationerrors[] = 'Urlaubsanspruch muss eine Tagesanzahl im Bereich 1 bis 50 sein.';
|
'max_range' => 100
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($result === false) {
|
||||||
|
$this->validationerrors[] = 'Vordienstjahre muss eine ganze Zahl (0 bis 100) enthalten oder leer sein.';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return parent::validate();
|
return parent::validate();
|
||||||
} */
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,10 +79,10 @@ class Paabgabe_model extends DB_Model
|
|||||||
JOIN public.tbl_benutzer ON (public.tbl_benutzer.uid = student_uid)
|
JOIN public.tbl_benutzer ON (public.tbl_benutzer.uid = student_uid)
|
||||||
JOIN public.tbl_person USING (person_id)
|
JOIN public.tbl_person USING (person_id)
|
||||||
|
|
||||||
WHERE (campus.tbl_paabgabe.insertamum >= NOW() - INTERVAL ?
|
WHERE (campus.tbl_paabgabe.insertamum::date = CURRENT_DATE - INTERVAL ?
|
||||||
OR campus.tbl_paabgabe.updateamum >= NOW() - INTERVAL ?)
|
OR campus.tbl_paabgabe.updateamum::date = CURRENT_DATE - INTERVAL ?)
|
||||||
AND campus.tbl_paabgabe.paabgabetyp_kurzbz IN ?";
|
AND campus.tbl_paabgabe.paabgabetyp_kurzbz IN ?";
|
||||||
|
|
||||||
return $this->execQuery($query, [$interval, $interval, $relevantTypes]);
|
return $this->execQuery($query, [$interval, $interval, $relevantTypes]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ class Paabgabe_model extends DB_Model
|
|||||||
JOIN public.tbl_person ON (public.tbl_benutzer.person_id = public.tbl_person.person_id)
|
JOIN public.tbl_person ON (public.tbl_benutzer.person_id = public.tbl_person.person_id)
|
||||||
|
|
||||||
WHERE campus.tbl_paabgabe.abgabedatum IS NOT NULL
|
WHERE campus.tbl_paabgabe.abgabedatum IS NOT NULL
|
||||||
AND campus.tbl_paabgabe.abgabedatum >= NOW() - INTERVAL ?";
|
AND campus.tbl_paabgabe.abgabedatum = CURRENT_DATE - INTERVAL ?";
|
||||||
|
|
||||||
if($relevantTypes !== null) {
|
if($relevantTypes !== null) {
|
||||||
$query .= " AND campus.tbl_paabgabe.paabgabetyp_kurzbz IN ?";
|
$query .= " AND campus.tbl_paabgabe.paabgabetyp_kurzbz IN ?";
|
||||||
|
|||||||
@@ -594,7 +594,10 @@ class Studiengang_model extends DB_Model
|
|||||||
$this->addSelect('p.prestudent_id');
|
$this->addSelect('p.prestudent_id');
|
||||||
$this->addSelect('pers.vorname');
|
$this->addSelect('pers.vorname');
|
||||||
$this->addSelect('pers.nachname');
|
$this->addSelect('pers.nachname');
|
||||||
$this->addSelect("CONCAT(UPPER(pers.nachname), ' ', pers.vorname, ' (', " . $this->dbTable . ".bezeichnung, ')') AS name");
|
$this->addSelect("CONCAT(UPPER(pers.nachname), ' ', pers.vorname, ' (', "
|
||||||
|
. $this->dbTable . ".bezeichnung, ', ', "
|
||||||
|
. "UPPER(" . $this->dbTable . ".typ), "
|
||||||
|
. "UPPER(" . $this->dbTable . ".kurzbz),')') AS name");
|
||||||
|
|
||||||
$this->addJoin('public.tbl_prestudent p', 'studiengang_kz');
|
$this->addJoin('public.tbl_prestudent p', 'studiengang_kz');
|
||||||
$this->addJoin(
|
$this->addJoin(
|
||||||
|
|||||||
@@ -315,22 +315,15 @@
|
|||||||
WHERE tpl.app = '.$APP.'
|
WHERE tpl.app = '.$APP.'
|
||||||
) pl USING(person_id)
|
) pl USING(person_id)
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT DISTINCT ON (tbl_rueckstellung.person_id)
|
||||||
tbl_rueckstellung.person_id,
|
tbl_rueckstellung.person_id,
|
||||||
tbl_rueckstellung.datum_bis,
|
tbl_rueckstellung.datum_bis,
|
||||||
tbl_rueckstellung.status_kurzbz,
|
tbl_rueckstellung.status_kurzbz,
|
||||||
array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung
|
array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung
|
||||||
FROM public.tbl_rueckstellung
|
FROM public.tbl_rueckstellung
|
||||||
JOIN public.tbl_rueckstellung_status USING(status_kurzbz)
|
JOIN public.tbl_rueckstellung_status USING(status_kurzbz)
|
||||||
JOIN public.tbl_person sp ON tbl_rueckstellung.person_id = sp.person_id
|
WHERE tbl_rueckstellung.datum_bis >= NOW()
|
||||||
WHERE tbl_rueckstellung.rueckstellung_id =
|
ORDER BY tbl_rueckstellung.person_id, tbl_rueckstellung.datum_bis DESC
|
||||||
(
|
|
||||||
SELECT srueck.rueckstellung_id
|
|
||||||
FROM public.tbl_rueckstellung srueck
|
|
||||||
WHERE srueck.person_id = tbl_rueckstellung.person_id
|
|
||||||
AND datum_bis >= NOW()
|
|
||||||
ORDER BY srueck.datum_bis DESC LIMIT 1
|
|
||||||
)
|
|
||||||
) rueck ON rueck.person_id = p.person_id
|
) rueck ON rueck.person_id = p.person_id
|
||||||
WHERE
|
WHERE
|
||||||
EXISTS (
|
EXISTS (
|
||||||
|
|||||||
@@ -24,22 +24,15 @@ $query = '
|
|||||||
WHERE tpl.app = '.$APP.'
|
WHERE tpl.app = '.$APP.'
|
||||||
) pl ON p.person_id = pl.person_id
|
) pl ON p.person_id = pl.person_id
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT DISTINCT ON (tbl_rueckstellung.person_id)
|
||||||
tbl_rueckstellung.person_id,
|
tbl_rueckstellung.person_id,
|
||||||
tbl_rueckstellung.datum_bis,
|
tbl_rueckstellung.datum_bis,
|
||||||
tbl_rueckstellung.status_kurzbz,
|
tbl_rueckstellung.status_kurzbz,
|
||||||
array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung
|
array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung
|
||||||
FROM public.tbl_rueckstellung
|
FROM public.tbl_rueckstellung
|
||||||
JOIN public.tbl_rueckstellung_status USING(status_kurzbz)
|
JOIN public.tbl_rueckstellung_status USING(status_kurzbz)
|
||||||
JOIN public.tbl_person sp ON tbl_rueckstellung.person_id = sp.person_id
|
WHERE tbl_rueckstellung.datum_bis >= NOW()
|
||||||
WHERE tbl_rueckstellung.rueckstellung_id =
|
ORDER BY tbl_rueckstellung.person_id, tbl_rueckstellung.datum_bis DESC
|
||||||
(
|
|
||||||
SELECT srueck.rueckstellung_id
|
|
||||||
FROM public.tbl_rueckstellung srueck
|
|
||||||
WHERE srueck.person_id = tbl_rueckstellung.person_id
|
|
||||||
AND datum_bis >= NOW()
|
|
||||||
ORDER BY srueck.datum_bis DESC LIMIT 1
|
|
||||||
)
|
|
||||||
) rueck ON rueck.person_id = p.person_id
|
) rueck ON rueck.person_id = p.person_id
|
||||||
WHERE p.person_id NOT IN (SELECT person_id FROM public.tbl_prestudent)';
|
WHERE p.person_id NOT IN (SELECT person_id FROM public.tbl_prestudent)';
|
||||||
|
|
||||||
|
|||||||
@@ -46,12 +46,13 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|||||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="../../../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="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>';
|
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>';
|
||||||
|
|
||||||
|
include('../../../include/meta/jquery.php');
|
||||||
|
include('../../../include/meta/jquery-tablesorter.php');
|
||||||
|
|
||||||
const MOODLE_ADDON_KURZBZ = 'moodle';
|
const MOODLE_ADDON_KURZBZ = 'moodle';
|
||||||
|
|
||||||
// Load Addons to get Moodle_Path
|
// Load Addons to get Moodle_Path
|
||||||
@@ -71,7 +72,7 @@ echo '
|
|||||||
$("#myTable").tablesorter(
|
$("#myTable").tablesorter(
|
||||||
{
|
{
|
||||||
sortList: [[0,0],[1,0]],
|
sortList: [[0,0],[1,0]],
|
||||||
widgets: [\'zebra\']
|
widgets: [\'zebra\',\'filter\']
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -151,8 +152,9 @@ foreach($service->result as $row)
|
|||||||
$person = new person();
|
$person = new person();
|
||||||
$person->getPersonFromBenutzer($row->operativ_uid);
|
$person->getPersonFromBenutzer($row->operativ_uid);
|
||||||
$operativ = $person->nachname.' '.$person->vorname;
|
$operativ = $person->nachname.' '.$person->vorname;
|
||||||
|
$oeBez = new organisationseinheit($row->oe_kurzbz);
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<td>',$row->oe_kurzbz,'</td>';
|
echo '<td>',$oeBez->bezeichnung,'</td>';
|
||||||
echo '<td><b>'.$row->bezeichnung.'</b></td>';
|
echo '<td><b>'.$row->bezeichnung.'</b></td>';
|
||||||
echo '<td>',$row->beschreibung,'</td>';
|
echo '<td>',$row->beschreibung,'</td>';
|
||||||
echo '<td><nobr><a href="../profile/index.php?uid='.$row->design_uid.'">',$design,'</a></nobr></td>';
|
echo '<td><nobr><a href="../profile/index.php?uid='.$row->design_uid.'">',$design,'</a></nobr></td>';
|
||||||
|
|||||||
+75
-11
@@ -80,9 +80,17 @@ echo '
|
|||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
|
<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
|
||||||
|
<link rel="stylesheet" href="../../vendor/components/jqueryui/themes/base/jquery-ui.min.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css" type="text/css"/>
|
<link rel="stylesheet" href="../../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css" type="text/css"/>
|
||||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css" />
|
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css" />
|
||||||
|
<style>
|
||||||
|
.ui-dialog-titlebar-close
|
||||||
|
{
|
||||||
|
visibility: hidden !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
|
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||||
<script type="text/javascript" src="../../vendor/twbs/bootstrap3/dist/js/bootstrap.min.js"></script>
|
<script type="text/javascript" src="../../vendor/twbs/bootstrap3/dist/js/bootstrap.min.js"></script>
|
||||||
<script language="Javascript" type="text/javascript">
|
<script language="Javascript" type="text/javascript">
|
||||||
//<![CDATA[
|
//<![CDATA[
|
||||||
@@ -131,22 +139,78 @@ echo '
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GebietStarten(bezeichnung,stunde,minute,sekunde,gebiet_id)
|
function GebietStarten(bezeichnung, stunde, minute, sekunde, gebiet_id)
|
||||||
{
|
{
|
||||||
var check = confirm(<?php echo "'".$p->t('testtool/okKlickenUmZuStarten')."'"?>+' '+stunde+'h '+minute+'m '+sekunde+'s');
|
let message = <?php echo "'".$p->t('testtool/okKlickenUmZuStarten')."'"?> + ' ' + stunde + 'h ' + minute + 'm ' + sekunde + 's';
|
||||||
if (check == true) {
|
let title = <?php echo "'".$p->t('testtool/startGebiet')."'"?>;
|
||||||
var sprache_user = <?php echo "'".$sprache_user."'"?>;
|
let abbrechen = <?php echo "'".$p->t('testtool/abbrechen')."'"?>;
|
||||||
document.location.href = 'frage.php?gebiet_id='+gebiet_id+'&start=true';
|
|
||||||
}
|
if ($('#gebiet-dialog').length === 0)
|
||||||
else {
|
{
|
||||||
return false;
|
$('body').append(
|
||||||
|
'<div id="gebiet-dialog" title="' + title + '">' +
|
||||||
|
'<p id="gebiet-dialog-msg">' + message + '</p>' +
|
||||||
|
'</div>'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('#gebiet-dialog').dialog({
|
||||||
|
modal: true,
|
||||||
|
width: 400,
|
||||||
|
resizable: false,
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
text: 'OK',
|
||||||
|
click: function() {
|
||||||
|
$(this).dialog('close');
|
||||||
|
document.location.href = 'frage.php?gebiet_id=' + gebiet_id + '&start=true';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: abbrechen,
|
||||||
|
click: function() {
|
||||||
|
$(this).dialog('close');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let letzteFrageBestaetigt = false;
|
||||||
|
|
||||||
function letzteFrage()
|
function letzteFrage()
|
||||||
{
|
{
|
||||||
alert(<?php echo "'".$p->t("testtool/alleFragenBeantwortet")."'"?>);
|
if (letzteFrageBestaetigt)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
let message = <?php echo "'".$p->t("testtool/alleFragenBeantwortet")."'"?>;
|
||||||
|
|
||||||
|
if ($('#fertig-dialog').length === 0)
|
||||||
|
{
|
||||||
|
$('body').append(
|
||||||
|
'<div id="fertig-dialog">' +
|
||||||
|
'<p>' + message + '</p>' +
|
||||||
|
'</div>'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#fertig-dialog').dialog({
|
||||||
|
modal: true,
|
||||||
|
width: 400,
|
||||||
|
resizable: false,
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
text: 'OK',
|
||||||
|
click: function() {
|
||||||
|
$(this).dialog('close');
|
||||||
|
letzteFrageBestaetigt = true;
|
||||||
|
$('[name="submitantwort"]').click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
@@ -647,7 +711,7 @@ if($frage->frage_id!='')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$letzte = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo);
|
$letzte = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo);
|
||||||
echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$frage->frage_id\" method=\"POST\" ".(!$letzte && !$levelgebiet?"onsubmit=\"letzteFrage()\"":"").">";
|
echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$frage->frage_id\" method=\"POST\" ".(!$letzte && !$levelgebiet?"onsubmit=\"return letzteFrage()\"":"").">";
|
||||||
echo '
|
echo '
|
||||||
<div class="row text-center">
|
<div class="row text-center">
|
||||||
<table class="table" style="width: 600px; margin-left: auto; margin-right: auto;">
|
<table class="table" style="width: 600px; margin-left: auto; margin-right: auto;">
|
||||||
|
|||||||
@@ -44,6 +44,27 @@ if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
|||||||
$sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE;
|
$sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE;
|
||||||
$p = new phrasen($sprache_user);
|
$p = new phrasen($sprache_user);
|
||||||
|
|
||||||
|
$showInfo = false;
|
||||||
|
if (isset($_SESSION['alleGebiete']))
|
||||||
|
{
|
||||||
|
$alleGebiete = array_map('intval', $_SESSION['alleGebiete']);
|
||||||
|
$pruefling_id = $_SESSION['pruefling_id'];
|
||||||
|
|
||||||
|
$qry = "SELECT COUNT(DISTINCT gebiet_id) as anzahl
|
||||||
|
FROM testtool.tbl_pruefling_frage
|
||||||
|
JOIN testtool.tbl_frage USING(frage_id)
|
||||||
|
WHERE gebiet_id IN (". implode(',', $alleGebiete) .")
|
||||||
|
AND pruefling_id = ". $pruefling_id ."
|
||||||
|
";
|
||||||
|
|
||||||
|
$result = $db->db_query($qry);
|
||||||
|
$anzahlGebiete = $db->db_fetch_object($result);
|
||||||
|
|
||||||
|
|
||||||
|
if ((int)$anzahlGebiete->anzahl === count($alleGebiete))
|
||||||
|
$showInfo = true;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
@@ -69,6 +90,7 @@ $p = new phrasen($sprache_user);
|
|||||||
<body>
|
<body>
|
||||||
<br><br><br><br><br>
|
<br><br><br><br><br>
|
||||||
<center><h2><?php echo $p->t('testtool/zeitAbgelaufen');?></h2>
|
<center><h2><?php echo $p->t('testtool/zeitAbgelaufen');?></h2>
|
||||||
|
<h3><?php echo ($showInfo ? ($p->t('testtool/alleGebietGestartet') . "<br />" . $p->t('testtool/alleGebieteGestartetInfo')) : ''); ?></h3>
|
||||||
</center>
|
</center>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+11
-2
@@ -142,7 +142,9 @@ if (isset($_REQUEST['prestudent']))
|
|||||||
}
|
}
|
||||||
if ($reihungstest_id != '' && $rt->load($reihungstest_id))
|
if ($reihungstest_id != '' && $rt->load($reihungstest_id))
|
||||||
{
|
{
|
||||||
if ($rt->freigeschaltet)
|
$pruefling_exist = new Pruefling();
|
||||||
|
$alreadyInRT = $pruefling_exist->personAlreadyInRT($ps->person_id, $rt->reihungstest_id, $ps->prestudent_id);
|
||||||
|
if ($rt->freigeschaltet && !$alreadyInRT)
|
||||||
{
|
{
|
||||||
// regenerate Session ID after Login
|
// regenerate Session ID after Login
|
||||||
session_regenerate_id();
|
session_regenerate_id();
|
||||||
@@ -282,7 +284,14 @@ if (isset($_REQUEST['prestudent']))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</div>';
|
if ($alreadyInRT)
|
||||||
|
{
|
||||||
|
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestNichtRegistriert').'</div>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</div>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
+25
-1
@@ -187,6 +187,7 @@ else if (isset($_SESSION['pruefling_id']))
|
|||||||
}
|
}
|
||||||
|
|
||||||
$qry .= "
|
$qry .= "
|
||||||
|
AND ps_status.bewerbung_abgeschicktamum IS NOT NULL
|
||||||
|
|
||||||
/* Order to get last semester when using distinct on */
|
/* Order to get last semester when using distinct on */
|
||||||
ORDER BY
|
ORDER BY
|
||||||
@@ -293,7 +294,7 @@ else if (isset($_SESSION['pruefling_id']))
|
|||||||
}
|
}
|
||||||
$lastsemester = $row->semester;
|
$lastsemester = $row->semester;
|
||||||
|
|
||||||
echo '<table border="0" cellspacing="0" cellpadding="0" id="Gebiet" style="display: visible; border-collapse: separate; border-spacing: 0 3px;">';
|
echo '<table border="0" cellspacing="0" cellpadding="0" id="Gebiet" style="display: visible; border-collapse: separate; border-spacing: 0 3px; margin-top: 5px;">';
|
||||||
echo '<tr><td class="HeaderTesttool">'. ($row->semester == '1' ? $p->t('testtool/basisgebiete') : $p->t('testtool/quereinstiegsgebiete')).'</td></tr>';
|
echo '<tr><td class="HeaderTesttool">'. ($row->semester == '1' ? $p->t('testtool/basisgebiete') : $p->t('testtool/quereinstiegsgebiete')).'</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -405,6 +406,29 @@ else if (isset($_SESSION['pruefling_id']))
|
|||||||
echo '</table>';
|
echo '</table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($_SESSION['pruefling_id']) && !empty($_SESSION['alleGebiete']))
|
||||||
|
{
|
||||||
|
$alleGebiete = array_map('intval', $_SESSION['alleGebiete']);
|
||||||
|
$pruefling_id = (int)$_SESSION['pruefling_id'];
|
||||||
|
|
||||||
|
$qry = "SELECT COUNT(DISTINCT gebiet_id) AS anzahl
|
||||||
|
FROM testtool.tbl_pruefling_frage
|
||||||
|
JOIN testtool.tbl_frage USING(frage_id)
|
||||||
|
WHERE gebiet_id IN (". implode(',', $alleGebiete) .")
|
||||||
|
AND pruefling_id = ". $pruefling_id;
|
||||||
|
|
||||||
|
$result_check = $db->db_query($qry);
|
||||||
|
$row_check = $db->db_fetch_object($result_check);
|
||||||
|
|
||||||
|
if ((int)$row_check->anzahl === count($alleGebiete))
|
||||||
|
{
|
||||||
|
echo '<tr><td>
|
||||||
|
<div class="alert alert-success small" style="margin-left: 20px; width: 170px; margin-top: 3px;" role="alert">
|
||||||
|
<strong>'.$p->t('testtool/alleGebietGestartet').'</strong>
|
||||||
|
</div>
|
||||||
|
</td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
// Link zum Logout
|
// Link zum Logout
|
||||||
|
|
||||||
echo '<tr><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
echo '<tr><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
||||||
|
|||||||
@@ -342,6 +342,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
|||||||
<vbox>
|
<vbox>
|
||||||
<checkbox id="mitarbeiter-entwicklungsteam-detail-checkbox-neu" checked="true" hidden="true" />
|
<checkbox id="mitarbeiter-entwicklungsteam-detail-checkbox-neu" checked="true" hidden="true" />
|
||||||
<textbox id="mitarbeiter-entwicklungsteam-detail-textbox-studiengang" hidden="true" />
|
<textbox id="mitarbeiter-entwicklungsteam-detail-textbox-studiengang" hidden="true" />
|
||||||
|
<textbox id="mitarbeiter-entwicklungsteam-detail-entwicklungsteam_id" hidden="true" />
|
||||||
|
|
||||||
<groupbox id="mitarbeiter-entwicklungsteam-detail-groupbox" flex="1">
|
<groupbox id="mitarbeiter-entwicklungsteam-detail-groupbox" flex="1">
|
||||||
<caption label="Details" />
|
<caption label="Details" />
|
||||||
<grid id="mitarbeiter-entwicklungsteam-detail-grid" style="margin:4px;" flex="1">
|
<grid id="mitarbeiter-entwicklungsteam-detail-grid" style="margin:4px;" flex="1">
|
||||||
|
|||||||
@@ -1708,6 +1708,7 @@ function MitarbeiterEntwicklungsteamSelect()
|
|||||||
document.getElementById('mitarbeiter-entwicklungsteam-detail-textbox-studiengang').value=studiengang_kz;
|
document.getElementById('mitarbeiter-entwicklungsteam-detail-textbox-studiengang').value=studiengang_kz;
|
||||||
document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-beginn').value=beginn;
|
document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-beginn').value=beginn;
|
||||||
document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-ende').value=ende;
|
document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-ende').value=ende;
|
||||||
|
document.getElementById('mitarbeiter-entwicklungsteam-detail-entwicklungsteam_id').value=entwicklungsteam_id;
|
||||||
MitarbeiterEntwicklungsteamDetailDisableFields(false);
|
MitarbeiterEntwicklungsteamDetailDisableFields(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1725,6 +1726,7 @@ function MitarbeiterEntwicklungsteamSpeichern()
|
|||||||
studiengang_kz_old = document.getElementById('mitarbeiter-entwicklungsteam-detail-textbox-studiengang').value;
|
studiengang_kz_old = document.getElementById('mitarbeiter-entwicklungsteam-detail-textbox-studiengang').value;
|
||||||
beginn = document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-beginn').value;
|
beginn = document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-beginn').value;
|
||||||
ende = document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-ende').value;
|
ende = document.getElementById('mitarbeiter-entwicklungsteam-detail-datum-ende').value;
|
||||||
|
entwicklungsteam_id = document.getElementById('mitarbeiter-entwicklungsteam-detail-entwicklungsteam_id').value;
|
||||||
|
|
||||||
if(studiengang_kz=='')
|
if(studiengang_kz=='')
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -95,37 +95,37 @@ foreach ($result_student as $row)
|
|||||||
if ($uids == '')
|
if ($uids == '')
|
||||||
die('Es befinden sich keine Studierende in diesem Semester');
|
die('Es befinden sich keine Studierende in diesem Semester');
|
||||||
|
|
||||||
$qry = "SELECT
|
$qry = "SELECT
|
||||||
lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, ects
|
lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, ects
|
||||||
FROM
|
FROM
|
||||||
lehre.tbl_lehrveranstaltung
|
lehre.tbl_lehrveranstaltung
|
||||||
WHERE
|
WHERE
|
||||||
lehrveranstaltung_id IN
|
lehrveranstaltung_id IN (
|
||||||
(
|
SELECT
|
||||||
SELECT
|
DISTINCT lehrveranstaltung_id
|
||||||
distinct lehrveranstaltung_id
|
FROM
|
||||||
FROM
|
campus.vw_student_lehrveranstaltung
|
||||||
campus.vw_student_lehrveranstaltung, public.tbl_studentlehrverband
|
JOIN public.tbl_studentlehrverband ON(student_uid = uid)
|
||||||
WHERE
|
WHERE
|
||||||
tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
|
tbl_studentlehrverband.studiengang_kz = ".$db->db_add_param($studiengang_kz, FHC_INTEGER)."
|
||||||
tbl_studentlehrverband.semester=".$db->db_add_param($semester, FHC_INTEGER)." AND
|
AND tbl_studentlehrverband.semester = ".$db->db_add_param($semester, FHC_INTEGER)."
|
||||||
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND
|
AND vw_student_lehrveranstaltung.studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)."
|
||||||
uid=student_uid AND
|
AND vw_student_lehrveranstaltung.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz
|
||||||
vw_student_lehrveranstaltung.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz
|
|
||||||
)
|
)
|
||||||
AND studiengang_kz<>0
|
AND studiengang_kz != 0
|
||||||
AND zeugnis
|
AND zeugnis
|
||||||
UNION
|
UNION
|
||||||
SELECT
|
SELECT
|
||||||
lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, ects
|
lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, ects
|
||||||
FROM
|
FROM
|
||||||
lehre.tbl_lehrveranstaltung JOIN lehre.tbl_zeugnisnote USING(lehrveranstaltung_id)
|
lehre.tbl_lehrveranstaltung
|
||||||
WHERE
|
JOIN lehre.tbl_zeugnisnote USING(lehrveranstaltung_id)
|
||||||
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
|
WHERE
|
||||||
tbl_zeugnisnote.student_uid in($uids) AND
|
tbl_lehrveranstaltung.studiengang_kz = ".$db->db_add_param($studiengang_kz, FHC_INTEGER)."
|
||||||
tbl_zeugnisnote.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND
|
AND tbl_zeugnisnote.student_uid IN ($uids)
|
||||||
zeugnis
|
AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)."
|
||||||
ORDER BY bezeichnung";
|
AND zeugnis
|
||||||
|
ORDER BY bezeichnung";
|
||||||
|
|
||||||
if (!$result_lva = $db->db_query($qry))
|
if (!$result_lva = $db->db_query($qry))
|
||||||
die('Fehler beim Ermitteln der Lehrveranstaltungen');
|
die('Fehler beim Ermitteln der Lehrveranstaltungen');
|
||||||
@@ -338,6 +338,10 @@ if ($typ == 'xls')
|
|||||||
}
|
}
|
||||||
$anzahl_lvspalten = $spalte - 2;
|
$anzahl_lvspalten = $spalte - 2;
|
||||||
|
|
||||||
|
$worksheet->write($zeile, ++$spalte, 'ECTS Summe zugeteilt', $format_bold);
|
||||||
|
$maxlength[$spalte] = 20;
|
||||||
|
$worksheet->write($zeile, ++$spalte, 'ECTS Summe gewichtet', $format_bold);
|
||||||
|
$maxlength[$spalte] = 20;
|
||||||
$worksheet->write($zeile, ++$spalte, 'Notendurchschnitt', $format_bold);
|
$worksheet->write($zeile, ++$spalte, 'Notendurchschnitt', $format_bold);
|
||||||
$maxlength[$spalte] = 15;
|
$maxlength[$spalte] = 15;
|
||||||
$worksheet->write($zeile, ++$spalte, "Gewichteter\nNotendurchschnitt", $format_bold_wrap);
|
$worksheet->write($zeile, ++$spalte, "Gewichteter\nNotendurchschnitt", $format_bold_wrap);
|
||||||
@@ -372,9 +376,12 @@ if ($typ == 'xls')
|
|||||||
$worksheet->write($zeile, ++$spalte, $row_student->gruppe, $format_bold_left);
|
$worksheet->write($zeile, ++$spalte, $row_student->gruppe, $format_bold_left);
|
||||||
$worksheet->write($zeile, ++$spalte, $row_student->matrikelnr, $format_bold);
|
$worksheet->write($zeile, ++$spalte, $row_student->matrikelnr, $format_bold);
|
||||||
|
|
||||||
//Alle Zeugnisnoten des Studierenden holen
|
// Alle Zeugnisnoten des Studierenden holen
|
||||||
$noten = array();
|
$noten = array();
|
||||||
$qry = "SELECT * FROM lehre.tbl_zeugnisnote WHERE student_uid=".$db->db_add_param($row_student->uid)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell);
|
$qry = "SELECT lehrveranstaltung_id, note
|
||||||
|
FROM lehre.tbl_zeugnisnote
|
||||||
|
WHERE student_uid = ".$db->db_add_param($row_student->uid)."
|
||||||
|
AND studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell);
|
||||||
if ($result = $db->db_query($qry))
|
if ($result = $db->db_query($qry))
|
||||||
while ($row = $db->db_fetch_object($result))
|
while ($row = $db->db_fetch_object($result))
|
||||||
$noten[$row->lehrveranstaltung_id] = $row->note;
|
$noten[$row->lehrveranstaltung_id] = $row->note;
|
||||||
@@ -382,15 +389,16 @@ if ($typ == 'xls')
|
|||||||
//Zu jeder Lehrveranstaltungsnote Prüfungstyp (Anzahl der Antritte) holen
|
//Zu jeder Lehrveranstaltungsnote Prüfungstyp (Anzahl der Antritte) holen
|
||||||
$pruefungstypen = array();
|
$pruefungstypen = array();
|
||||||
$qry = "SELECT tbl_lehrveranstaltung.lehrveranstaltung_id, pruefungstyp_kurzbz, sort, datum
|
$qry = "SELECT tbl_lehrveranstaltung.lehrveranstaltung_id, pruefungstyp_kurzbz, sort, datum
|
||||||
FROM
|
FROM
|
||||||
lehre.tbl_pruefung
|
lehre.tbl_pruefung
|
||||||
JOIN
|
JOIN
|
||||||
lehre.tbl_lehreinheit using(lehreinheit_id)
|
lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||||
JOIN
|
JOIN
|
||||||
lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id)
|
lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||||
WHERE
|
WHERE
|
||||||
student_uid=".$db->db_add_param($row_student->uid)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
|
student_uid = ".$db->db_add_param($row_student->uid)."
|
||||||
ORDER BY lehrveranstaltung_id, sort, datum";
|
AND studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)."
|
||||||
|
ORDER BY lehrveranstaltung_id, sort, datum";
|
||||||
if ($result = $db->db_query($qry))
|
if ($result = $db->db_query($qry))
|
||||||
{
|
{
|
||||||
while ($row = $db->db_fetch_object($result))
|
while ($row = $db->db_fetch_object($result))
|
||||||
@@ -399,15 +407,14 @@ if ($typ == 'xls')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Alle LVs holen zu denen der Studierende zugeteilt ist
|
// Alle LVs holen zu denen der Studierende zugeteilt ist
|
||||||
$zugeteilte_lvs = array();
|
$zugeteilte_lvs = array();
|
||||||
$qry = "SELECT distinct lehrveranstaltung_id
|
$qry = "SELECT DISTINCT lehrveranstaltung_id
|
||||||
FROM
|
FROM
|
||||||
campus.vw_student_lehrveranstaltung
|
campus.vw_student_lehrveranstaltung
|
||||||
WHERE
|
WHERE
|
||||||
uid=".$db->db_add_param($row_student->uid)." AND
|
uid = ".$db->db_add_param($row_student->uid)."
|
||||||
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell);
|
AND studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell);
|
||||||
|
|
||||||
if ($result = $db->db_query($qry))
|
if ($result = $db->db_query($qry))
|
||||||
while ($row = $db->db_fetch_object($result))
|
while ($row = $db->db_fetch_object($result))
|
||||||
$zugeteilte_lvs[] = $row->lehrveranstaltung_id;
|
$zugeteilte_lvs[] = $row->lehrveranstaltung_id;
|
||||||
@@ -416,17 +423,20 @@ if ($typ == 'xls')
|
|||||||
$summe = 0;
|
$summe = 0;
|
||||||
$rowcount = 0;
|
$rowcount = 0;
|
||||||
$summeects = 0;
|
$summeects = 0;
|
||||||
|
$total_ects = 0;
|
||||||
$gewichtetenote = 0;
|
$gewichtetenote = 0;
|
||||||
|
|
||||||
while ($rowcount < $db->db_num_rows($result_lva))
|
while ($rowcount < $db->db_num_rows($result_lva))
|
||||||
{
|
{
|
||||||
$row_lva = $db->db_fetch_object($result_lva, $rowcount);
|
$row_lva = $db->db_fetch_object($result_lva, $rowcount);
|
||||||
$rowcount++;
|
$rowcount++;
|
||||||
|
|
||||||
//wenn es eine Note gibt
|
//wenn es eine Note gibt
|
||||||
if (isset($noten[$row_lva->lehrveranstaltung_id]))
|
if (isset($noten[$row_lva->lehrveranstaltung_id]))
|
||||||
{
|
{
|
||||||
$note = $noten[$row_lva->lehrveranstaltung_id];
|
$note = $noten[$row_lva->lehrveranstaltung_id];
|
||||||
$format = 0;
|
$format = 0;
|
||||||
|
$total_ects += $row_lva->ects;
|
||||||
|
|
||||||
//wenn für die LV der Studierende eine Nachprüfung hat (z.B. 2 Termin, kommissionelle...)
|
//wenn für die LV der Studierende eine Nachprüfung hat (z.B. 2 Termin, kommissionelle...)
|
||||||
if (isset($pruefungstypen[$row_lva->lehrveranstaltung_id]))
|
if (isset($pruefungstypen[$row_lva->lehrveranstaltung_id]))
|
||||||
@@ -472,6 +482,7 @@ if ($typ == 'xls')
|
|||||||
//Keine Note fuer diese LV vorhanden
|
//Keine Note fuer diese LV vorhanden
|
||||||
if (in_array($row_lva->lehrveranstaltung_id, $zugeteilte_lvs))
|
if (in_array($row_lva->lehrveranstaltung_id, $zugeteilte_lvs))
|
||||||
{
|
{
|
||||||
|
$total_ects += $row_lva->ects;
|
||||||
$worksheet->write($zeile, ++$spalte, '', $format_colored_nichteingetragen);
|
$worksheet->write($zeile, ++$spalte, '', $format_colored_nichteingetragen);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -489,6 +500,8 @@ if ($typ == 'xls')
|
|||||||
if ($summeects != 0)
|
if ($summeects != 0)
|
||||||
$gewichtetenote /= $summeects;
|
$gewichtetenote /= $summeects;
|
||||||
|
|
||||||
|
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $total_ects), $format_number);
|
||||||
|
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $summeects), $format_number);
|
||||||
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $schnitt), $format_number);
|
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $schnitt), $format_number);
|
||||||
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $gewichtetenote), $format_number);
|
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $gewichtetenote), $format_number);
|
||||||
if ($gewichtetenote != 0)
|
if ($gewichtetenote != 0)
|
||||||
@@ -529,6 +542,8 @@ if ($typ == 'xls')
|
|||||||
$schnitt = $summe_schnitt / $anzahl_schnitt;
|
$schnitt = $summe_schnitt / $anzahl_schnitt;
|
||||||
else
|
else
|
||||||
$schnitt = 0;
|
$schnitt = 0;
|
||||||
|
$worksheet->write($zeile, ++$spalte, '-', $format_bold_center);
|
||||||
|
$worksheet->write($zeile, ++$spalte, '-', $format_bold_center);
|
||||||
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $schnitt), $format_number);
|
$worksheet->write($zeile, ++$spalte, sprintf("%.2f", $schnitt), $format_number);
|
||||||
if ($anzahlgewichtet != 0)
|
if ($anzahlgewichtet != 0)
|
||||||
$summegewichtet = $summegewichtet / $anzahlgewichtet;
|
$summegewichtet = $summegewichtet / $anzahlgewichtet;
|
||||||
|
|||||||
@@ -3555,6 +3555,14 @@ function StudentZeugnisDokumentArchivieren()
|
|||||||
case 'microcredential_2':
|
case 'microcredential_2':
|
||||||
case 'microcredential_3':
|
case 'microcredential_3':
|
||||||
case 'microcredential_4':
|
case 'microcredential_4':
|
||||||
|
case 'microdegree_1':
|
||||||
|
case 'microdegree_2':
|
||||||
|
case 'microdegree_3':
|
||||||
|
case 'microdegree_4':
|
||||||
|
case 'microdegreeabschluss_1':
|
||||||
|
case 'microdegreeabschluss_2':
|
||||||
|
case 'microdegreeabschluss_3':
|
||||||
|
case 'microdegreeabschluss_4':
|
||||||
xml = 'microcredential.xml.php';
|
xml = 'microcredential.xml.php';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -364,9 +364,10 @@ class entwicklungsteam extends basis_db
|
|||||||
$bismeldung_jahr = $datetime->format('Y');
|
$bismeldung_jahr = $datetime->format('Y');
|
||||||
|
|
||||||
//laden des Datensatzes
|
//laden des Datensatzes
|
||||||
$qry = "SELECT *
|
$qry = "SELECT tbl_entwicklungsteam.*, tbl_besqual.*, tbl_studiengang.studiengang_kz, tbl_studiengang.melderelevant
|
||||||
FROM bis.tbl_entwicklungsteam
|
FROM bis.tbl_entwicklungsteam
|
||||||
JOIN bis.tbl_besqual USING(besqualcode)
|
JOIN bis.tbl_besqual USING(besqualcode)
|
||||||
|
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||||
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)."
|
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)."
|
||||||
AND (beginn is NULL OR beginn <= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 12, 31))
|
AND (beginn is NULL OR beginn <= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 12, 31))
|
||||||
AND (ende is NULL OR ende >= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 1, 1))";
|
AND (ende is NULL OR ende >= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 1, 1))";
|
||||||
@@ -394,6 +395,7 @@ class entwicklungsteam extends basis_db
|
|||||||
$obj->insertvon = $row->insertvon;
|
$obj->insertvon = $row->insertvon;
|
||||||
$obj->ext_id = $row->ext_id;
|
$obj->ext_id = $row->ext_id;
|
||||||
$obj->besqual = $row->besqualbez;
|
$obj->besqual = $row->besqualbez;
|
||||||
|
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||||
|
|
||||||
$this->result[] = $obj;
|
$this->result[] = $obj;
|
||||||
}
|
}
|
||||||
|
|||||||
+49
-1
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||||
require_once(dirname(__FILE__).'/'.EXT_FKT_PATH.'/generateZahlungsreferenz.inc.php');
|
require_once(dirname(__FILE__).'/'.EXT_FKT_PATH.'/generateZahlungsreferenz.inc.php');
|
||||||
|
require_once(dirname(__FILE__).'/variable.class.php');
|
||||||
|
|
||||||
class konto extends basis_db
|
class konto extends basis_db
|
||||||
{
|
{
|
||||||
@@ -432,6 +433,8 @@ class konto extends basis_db
|
|||||||
|
|
||||||
$qry.=" ORDER BY beschreibung";
|
$qry.=" ORDER BY beschreibung";
|
||||||
|
|
||||||
|
$oehBeitrag = $this->_getOEHBeitrag();
|
||||||
|
|
||||||
if($this->db_query($qry))
|
if($this->db_query($qry))
|
||||||
{
|
{
|
||||||
while($row = $this->db_fetch_object())
|
while($row = $this->db_fetch_object())
|
||||||
@@ -440,7 +443,15 @@ class konto extends basis_db
|
|||||||
|
|
||||||
$typ->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
|
$typ->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
|
||||||
$typ->beschreibung = $row->beschreibung;
|
$typ->beschreibung = $row->beschreibung;
|
||||||
$typ->standardbetrag = $row->standardbetrag;
|
if (strtolower($typ->buchungstyp_kurzbz) === 'oeh' && $oehBeitrag)
|
||||||
|
{
|
||||||
|
$typ->standardbetrag = $oehBeitrag;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$typ->standardbetrag = $row->standardbetrag;
|
||||||
|
}
|
||||||
|
|
||||||
$typ->standardtext = $row->standardtext;
|
$typ->standardtext = $row->standardtext;
|
||||||
$typ->credit_points = $row->credit_points;
|
$typ->credit_points = $row->credit_points;
|
||||||
$typ->aktiv = $this->db_parse_bool($row->aktiv);
|
$typ->aktiv = $this->db_parse_bool($row->aktiv);
|
||||||
@@ -990,6 +1001,43 @@ class konto extends basis_db
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function _getOEHBeitrag()
|
||||||
|
{
|
||||||
|
if(!is_user_logged_in())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$variablen_obj = new variable();
|
||||||
|
$variablen_obj->loadVariables(get_uid());
|
||||||
|
|
||||||
|
$qry = "WITH semstart AS (
|
||||||
|
SELECT start FROM public.tbl_studiensemester
|
||||||
|
WHERE studiensemester_kurzbz = '". $this->db_escape($variablen_obj->variable->semester_aktuell) . "'
|
||||||
|
)
|
||||||
|
SELECT * FROM bis.tbl_oehbeitrag oehb
|
||||||
|
JOIN public.tbl_studiensemester semvon ON oehb.von_studiensemester_kurzbz = semvon.studiensemester_kurzbz
|
||||||
|
LEFT JOIN public.tbl_studiensemester sembis ON oehb.bis_studiensemester_kurzbz = sembis.studiensemester_kurzbz
|
||||||
|
JOIN semstart ON semstart.start::date >= semvon.start::date AND (sembis.studiensemester_kurzbz IS NULL OR semstart.start::date <= sembis.start::date)
|
||||||
|
ORDER BY semvon.start
|
||||||
|
LIMIT 1";
|
||||||
|
|
||||||
|
if ($this->db_query($qry))
|
||||||
|
{
|
||||||
|
if($row = $this->db_fetch_object())
|
||||||
|
{
|
||||||
|
$summe = ($row->studierendenbeitrag + $row->versicherung) * -1;
|
||||||
|
return number_format((float)$summe, 2, '.', '');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -584,8 +584,9 @@ class lehreinheitmitarbeiter extends basis_db
|
|||||||
|
|
||||||
$qry = '
|
$qry = '
|
||||||
WITH semester_sws_tbl AS (
|
WITH semester_sws_tbl AS (
|
||||||
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden,
|
SELECT
|
||||||
stg.studiengang_kz, stg.melde_studiengang_kz, stg.lgartcode
|
DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden,
|
||||||
|
stg.studiengang_kz, stg.melde_studiengang_kz, stg.lgartcode, stg.melderelevant
|
||||||
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||||
@@ -598,6 +599,7 @@ class lehreinheitmitarbeiter extends basis_db
|
|||||||
AND ss.studiensemester_kurzbz IN ('.$this->implode4SQL($studiensemester_kurzbz_arr).')
|
AND ss.studiensemester_kurzbz IN ('.$this->implode4SQL($studiensemester_kurzbz_arr).')
|
||||||
-- nur lehre, die bisgemeldet wird
|
-- nur lehre, die bisgemeldet wird
|
||||||
AND lema.bismelden
|
AND lema.bismelden
|
||||||
|
AND stg.melderelevant
|
||||||
-- keine lehreinheiten ohne semesterstunden
|
-- keine lehreinheiten ohne semesterstunden
|
||||||
AND lema.semesterstunden != 0
|
AND lema.semesterstunden != 0
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -584,6 +584,32 @@ class pruefling extends basis_db
|
|||||||
|
|
||||||
$qry .= " LIMIT 1";
|
$qry .= " LIMIT 1";
|
||||||
|
|
||||||
|
if($result = $this->db_query($qry))
|
||||||
|
{
|
||||||
|
if ($this->db_num_rows($result) == 0)
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public function personAlreadyInRT($person_id, $reihungstest_id, $prestudent_id)
|
||||||
|
{
|
||||||
|
$qry = "SELECT tbl_prestudent.prestudent_id
|
||||||
|
FROM public.tbl_rt_person
|
||||||
|
JOIN public.tbl_prestudent ON tbl_prestudent.person_id = tbl_rt_person.person_id
|
||||||
|
JOIN public.tbl_prestudentstatus ON tbl_prestudent.prestudent_id = tbl_prestudentstatus.prestudent_id AND status_kurzbz = 'Bewerber'
|
||||||
|
AND tbl_prestudentstatus.studienplan_id = tbl_rt_person.studienplan_id
|
||||||
|
WHERE tbl_rt_person.person_id = " . $this->db_add_param($person_id) . "
|
||||||
|
AND tbl_rt_person.rt_id = " . $this->db_add_param($reihungstest_id) . "
|
||||||
|
AND tbl_prestudent.prestudent_id != " . $this->db_add_param($prestudent_id) . "
|
||||||
|
AND get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL) = 'Bewerber'
|
||||||
|
LIMIT 1";
|
||||||
|
|
||||||
if($result = $this->db_query($qry))
|
if($result = $this->db_query($qry))
|
||||||
{
|
{
|
||||||
if ($this->db_num_rows($result) == 0)
|
if ($this->db_num_rows($result) == 0)
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ $this->phrasen['testtool/basic']='Basic';
|
|||||||
$this->phrasen['testtool/basisgebiete']='Basisgebiete';
|
$this->phrasen['testtool/basisgebiete']='Basisgebiete';
|
||||||
$this->phrasen['testtool/semester']='Semester';
|
$this->phrasen['testtool/semester']='Semester';
|
||||||
$this->phrasen['testtool/reihungstestNichtFreigeschalten']='Der zuteilte Reihungstest ist noch nicht freigeschaltet';
|
$this->phrasen['testtool/reihungstestNichtFreigeschalten']='Der zuteilte Reihungstest ist noch nicht freigeschaltet';
|
||||||
|
$this->phrasen['testtool/reihungstestNichtRegistriert']='Sie sind für den Reihungstest nicht registriert';
|
||||||
$this->phrasen['testtool/reihungstestKannNichtGeladenWerden']='Der Reihungstest dem Sie zugeteilt sind, kann nicht geladen werden. Melden Sie sich bitte bei der Reihungstestaufsicht.';
|
$this->phrasen['testtool/reihungstestKannNichtGeladenWerden']='Der Reihungstest dem Sie zugeteilt sind, kann nicht geladen werden. Melden Sie sich bitte bei der Reihungstestaufsicht.';
|
||||||
$this->phrasen['testtool/geburtsdatumStimmtNichtUeberein']='Ihr Geburtsdatum stimmt nicht mit unseren Daten überein. Bitte wenden Sie sich an die Aufsichtsperson';
|
$this->phrasen['testtool/geburtsdatumStimmtNichtUeberein']='Ihr Geburtsdatum stimmt nicht mit unseren Daten überein. Bitte wenden Sie sich an die Aufsichtsperson';
|
||||||
$this->phrasen['testtool/home']='Home';
|
$this->phrasen['testtool/home']='Home';
|
||||||
@@ -31,10 +32,14 @@ $this->phrasen['testtool/keineAntwort']='Keine Antwort';
|
|||||||
$this->phrasen['testtool/speichernUndWeiter']='Speichern und weiter';
|
$this->phrasen['testtool/speichernUndWeiter']='Speichern und weiter';
|
||||||
$this->phrasen['testtool/alleFragenBeantwortet']='GLÜCKWUNSCH! \n\nSie haben alle Fragen in der zur Verfügung stehenden Zeit beantwortet. \nNutzen Sie die verbleibende Zeit, um Ihre Antworten zu kontrollieren oder fahren Sie mit dem nächsten Teilgebiet fort.';
|
$this->phrasen['testtool/alleFragenBeantwortet']='GLÜCKWUNSCH! \n\nSie haben alle Fragen in der zur Verfügung stehenden Zeit beantwortet. \nNutzen Sie die verbleibende Zeit, um Ihre Antworten zu kontrollieren oder fahren Sie mit dem nächsten Teilgebiet fort.';
|
||||||
$this->phrasen['testtool/zeitAbgelaufen']='Die Maximalzeit für dieses Gebiet ist abgelaufen, oder alle Fragen wurden beantwortet';
|
$this->phrasen['testtool/zeitAbgelaufen']='Die Maximalzeit für dieses Gebiet ist abgelaufen, oder alle Fragen wurden beantwortet';
|
||||||
|
$this->phrasen['testtool/alleGebietGestartet']='Sie haben alle Gebiete bearbeitet.';
|
||||||
|
$this->phrasen['testtool/alleGebieteGestartetInfo']='Sie können sich nun ausloggen und den Browser schließen.';
|
||||||
$this->phrasen['testtool/spracheDerTestfragen']='Gewünschte Sprache der Testfragen';
|
$this->phrasen['testtool/spracheDerTestfragen']='Gewünschte Sprache der Testfragen';
|
||||||
$this->phrasen['testtool/einleitung']='Einleitung';
|
$this->phrasen['testtool/einleitung']='Einleitung';
|
||||||
$this->phrasen['testtool/blaettern']='Blättern';
|
$this->phrasen['testtool/blaettern']='Blättern';
|
||||||
$this->phrasen['testtool/demo']='Demobeispiel ansehen';
|
$this->phrasen['testtool/demo']='Demobeispiel ansehen';
|
||||||
|
$this->phrasen['testtool/abbrechen']='Abbrechen';
|
||||||
|
$this->phrasen['testtool/startGebiet']='Gebiet starten';
|
||||||
$this->phrasen['testtool/okKlickenUmZuStarten']='Klicken Sie OK um dieses Gebiet zu starten. \nSie haben für die Bearbeitung ein Zeitlimit von';
|
$this->phrasen['testtool/okKlickenUmZuStarten']='Klicken Sie OK um dieses Gebiet zu starten. \nSie haben für die Bearbeitung ein Zeitlimit von';
|
||||||
$this->phrasen['testtool/bitteZuerstAnmelden']='Bitte zuerst anmelden!';
|
$this->phrasen['testtool/bitteZuerstAnmelden']='Bitte zuerst anmelden!';
|
||||||
$this->phrasen['testtool/fehlerBeimGenerierenDesFragenpools']='Fehler beim generieren des Fragenpools';
|
$this->phrasen['testtool/fehlerBeimGenerierenDesFragenpools']='Fehler beim generieren des Fragenpools';
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ $this->phrasen['testtool/basic']='Basic';
|
|||||||
$this->phrasen['testtool/basisgebiete']='Basic test';
|
$this->phrasen['testtool/basisgebiete']='Basic test';
|
||||||
$this->phrasen['testtool/semester']='Semester';
|
$this->phrasen['testtool/semester']='Semester';
|
||||||
$this->phrasen['testtool/reihungstestNichtFreigeschalten']='The entrance examination assigned has not yet been activated.';
|
$this->phrasen['testtool/reihungstestNichtFreigeschalten']='The entrance examination assigned has not yet been activated.';
|
||||||
|
$this->phrasen['testtool/reihungstestNichtRegistriert']='You are not registered for the placement test.';
|
||||||
$this->phrasen['testtool/reihungstestKannNichtGeladenWerden']='The placement test you are assigned to could not be loaded. Please contact the placement test supervisior.';
|
$this->phrasen['testtool/reihungstestKannNichtGeladenWerden']='The placement test you are assigned to could not be loaded. Please contact the placement test supervisior.';
|
||||||
$this->phrasen['testtool/geburtsdatumStimmtNichtUeberein']='Your date of birth does not correspond to the data we have. Please speak to the supervisor. ';
|
$this->phrasen['testtool/geburtsdatumStimmtNichtUeberein']='Your date of birth does not correspond to the data we have. Please speak to the supervisor. ';
|
||||||
$this->phrasen['testtool/home']='Home';
|
$this->phrasen['testtool/home']='Home';
|
||||||
@@ -31,10 +32,14 @@ $this->phrasen['testtool/keineAntwort']='No Answer';
|
|||||||
$this->phrasen['testtool/speichernUndWeiter']='Save and next';
|
$this->phrasen['testtool/speichernUndWeiter']='Save and next';
|
||||||
$this->phrasen['testtool/alleFragenBeantwortet']='CONGRATULATIONS!\n\nYou have answered all the questions in the time allowed.\n Use the remaining time to check your answers or continue to the next section.';
|
$this->phrasen['testtool/alleFragenBeantwortet']='CONGRATULATIONS!\n\nYou have answered all the questions in the time allowed.\n Use the remaining time to check your answers or continue to the next section.';
|
||||||
$this->phrasen['testtool/zeitAbgelaufen']='The time for this part has expired or you have answered all the questions.';
|
$this->phrasen['testtool/zeitAbgelaufen']='The time for this part has expired or you have answered all the questions.';
|
||||||
|
$this->phrasen['testtool/alleGebietGestartet']='You have worked on all sections.';
|
||||||
|
$this->phrasen['testtool/alleGebieteGestartetInfo']='You can now log out and close the browser.';
|
||||||
$this->phrasen['testtool/spracheDerTestfragen']='Desired language of questions';
|
$this->phrasen['testtool/spracheDerTestfragen']='Desired language of questions';
|
||||||
$this->phrasen['testtool/einleitung']='Introduction';
|
$this->phrasen['testtool/einleitung']='Introduction';
|
||||||
$this->phrasen['testtool/blaettern']='Browse';
|
$this->phrasen['testtool/blaettern']='Browse';
|
||||||
$this->phrasen['testtool/demo']='See an example';
|
$this->phrasen['testtool/demo']='See an example';
|
||||||
|
$this->phrasen['testtool/abbrechen']='Cancel';
|
||||||
|
$this->phrasen['testtool/startGebiet']='Start the section';
|
||||||
$this->phrasen['testtool/okKlickenUmZuStarten']='Click OK to start this section. \nYou have a timelimit of';
|
$this->phrasen['testtool/okKlickenUmZuStarten']='Click OK to start this section. \nYou have a timelimit of';
|
||||||
$this->phrasen['testtool/bitteZuerstAnmelden']='Please log in first!';
|
$this->phrasen['testtool/bitteZuerstAnmelden']='Please log in first!';
|
||||||
$this->phrasen['testtool/fehlerBeimGenerierenDesFragenpools']='Error in generating the pool of questions.';
|
$this->phrasen['testtool/fehlerBeimGenerierenDesFragenpools']='Error in generating the pool of questions.';
|
||||||
|
|||||||
@@ -197,10 +197,6 @@ html.fs_huge {
|
|||||||
margin-bottom: -1px;
|
margin-bottom: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tiny-90 div.tox.tox-tinymce {
|
|
||||||
height: 90% !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* slim begin */
|
/* slim begin */
|
||||||
.stv .form-label {
|
.stv .form-label {
|
||||||
margin-bottom: .15rem;
|
margin-bottom: .15rem;
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
insert(params) {
|
insert(params) {
|
||||||
|
if(params.betrag)
|
||||||
|
{
|
||||||
|
params.betrag = params.betrag.replace(',', '.');
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: 'api/frontend/v1/stv/konto/insert',
|
url: 'api/frontend/v1/stv/konto/insert',
|
||||||
@@ -52,6 +56,10 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
edit(params) {
|
edit(params) {
|
||||||
|
if(params.betrag)
|
||||||
|
{
|
||||||
|
params.betrag = params.betrag.replace(',', '.');
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: 'api/frontend/v1/stv/konto/update',
|
url: 'api/frontend/v1/stv/konto/update',
|
||||||
@@ -65,10 +73,14 @@ export default {
|
|||||||
params: { buchungsnr }
|
params: { buchungsnr }
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
getBuchungstypen() {
|
getBuchungstypen(studiensemester_kurzbz) {
|
||||||
|
let url = 'api/frontend/v1/stv/konto/getBuchungstypen'
|
||||||
|
if (!!studiensemester_kurzbz)
|
||||||
|
url = url + '/' + encodeURIComponent(studiensemester_kurzbz);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: 'api/frontend/v1/stv/konto/getBuchungstypen'
|
url: url
|
||||||
};
|
};
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -136,18 +136,6 @@ const app = Vue.createApp({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
|
||||||
isMobile() {
|
|
||||||
const smallScreen = window.matchMedia("(max-width: 767px)").matches;
|
|
||||||
const touchCapable = ("ontouchstart" in window) || navigator.maxTouchPoints > 0;
|
|
||||||
return smallScreen;// && touchCapable;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
provide() {
|
|
||||||
return {
|
|
||||||
isMobile: this.isMobile
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
searchfunction: function(searchsettings) {
|
searchfunction: function(searchsettings) {
|
||||||
return this.$api.call(ApiSearchbar.searchCis(searchsettings));
|
return this.$api.call(ApiSearchbar.searchCis(searchsettings));
|
||||||
|
|||||||
@@ -238,13 +238,13 @@ const app = Vue.createApp({
|
|||||||
const smallScreen = window.matchMedia("(max-width: 767px)").matches;
|
const smallScreen = window.matchMedia("(max-width: 767px)").matches;
|
||||||
const touchCapable = ("ontouchstart" in window) || navigator.maxTouchPoints > 0;
|
const touchCapable = ("ontouchstart" in window) || navigator.maxTouchPoints > 0;
|
||||||
return smallScreen;// && touchCapable;
|
return smallScreen;// && touchCapable;
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
provide() {
|
provide() {
|
||||||
return { // provide injectable & watchable language property
|
return { // provide injectable & watchable language property
|
||||||
language: Vue.computed(() => this.$p.user_language),
|
language: Vue.computed(() => this.$p.user_language),
|
||||||
renderers: Vue.computed(() => this.renderers),
|
renderers: Vue.computed(() => this.renderers),
|
||||||
isMobile: this.isMobile,
|
isMobile: this.isMobile
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ export default {
|
|||||||
menuOpen:true,
|
menuOpen:true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
inject: ["isMobile"],
|
|
||||||
provide(){
|
provide(){
|
||||||
return{
|
return{
|
||||||
setActiveEntry: this.setActiveEntry,
|
setActiveEntry: this.setActiveEntry,
|
||||||
@@ -59,7 +58,7 @@ export default {
|
|||||||
},
|
},
|
||||||
site_url(){
|
site_url(){
|
||||||
return FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
|
return FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
fetchMenu() {
|
fetchMenu() {
|
||||||
@@ -113,26 +112,10 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
template: /*html*/`
|
template: /*html*/`
|
||||||
<div
|
<button id="nav-main-btn" class="navbar-toggler rounded-0" type="button" data-bs-toggle="offcanvas" data-bs-target="#nav-main" aria-controls="nav-main" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
id="header-options-collapsible"
|
<span class="navbar-toggler-icon"></span>
|
||||||
class="collapse multi-collapse collapse-horizontal show"
|
</button>
|
||||||
>
|
<fhc-searchbar ref="searchbar" id="nav-search" class="fhc-searchbar w-100 py-1 py-lg-2" :searchoptions="searchbaroptions" :searchfunction="searchfunction"></fhc-searchbar>
|
||||||
<div class="d-flex flex-row align-items-center gap-2 h-100" style="width: 79px">
|
|
||||||
<button id="nav-main-btn" class="navbar-toggler rounded-0 px-2 border-0" type="button" data-bs-toggle="offcanvas" data-bs-target="#nav-main" aria-controls="nav-main" aria-expanded="false" aria-label="Toggle navigation">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<span v-if="isMobile" class="d-flex flex-row align-items-center">
|
|
||||||
<theme-switch></theme-switch>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<fhc-searchbar
|
|
||||||
:searchoptions="searchbaroptions"
|
|
||||||
:searchfunction="searchfunction"
|
|
||||||
ref="searchbar"
|
|
||||||
id="nav-search"
|
|
||||||
class="fhc-searchbar w-100 py-1 py-lg-2"
|
|
||||||
></fhc-searchbar>
|
|
||||||
<div id="nav-logo" class="d-none d-lg-block">
|
<div id="nav-logo" class="d-none d-lg-block">
|
||||||
<div class="d-flex h-100 justify-content-between">
|
<div class="d-flex h-100 justify-content-between">
|
||||||
<a :href="rootUrl">
|
<a :href="rootUrl">
|
||||||
@@ -141,32 +124,22 @@ export default {
|
|||||||
<theme-switch></theme-switch>
|
<theme-switch></theme-switch>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="nav-user">
|
||||||
<div
|
<button id="nav-user-btn" class="btn btn-link rounded-0" type="button" data-bs-toggle="collapse" data-bs-target="#nav-user-menu" aria-expanded="false" aria-controls="nav-user-menu">
|
||||||
id="header-usermenu-collapsible"
|
<img :src="avatarUrl" :alt="$p.t('profilUpdate/profilBild')" class="bg-dark avatar rounded-circle border border-dark"/>
|
||||||
class="collapse multi-collapse collapse-horizontal show"
|
</button>
|
||||||
>
|
<ul ref="navUserDropdown"
|
||||||
<div
|
@[\`shown.bs.collapse\`]="handleShowNavUser"
|
||||||
:style="!isMobile ? '' : 'width: 51px'"
|
@[\`hide.bs.collapse\`]="handleHideNavUser"
|
||||||
id="nav-user"
|
id="nav-user-menu" class="top-100 end-0 collapse list-unstyled" aria-labelledby="nav-user-btn">
|
||||||
>
|
<li><a class="fhc-dark-bg btn rounded-0 d-block" :href="site_url + '/Cis/Profil'" id="menu-profil">Profil</a></li>
|
||||||
<button id="nav-user-btn" class="btn btn-link rounded-0" type="button" data-bs-toggle="collapse" data-bs-target="#nav-user-menu" aria-expanded="false" aria-controls="nav-user-menu">
|
<li >
|
||||||
<img :src="avatarUrl" :alt="$p.t('profilUpdate/profilBild')" class="bg-dark avatar rounded-circle border border-dark"/>
|
<cis-sprachen @languageChanged="fetchMenu"></cis-sprachen>
|
||||||
</button>
|
</li>
|
||||||
<ul ref="navUserDropdown"
|
<li><hr class="dropdown-divider m-0 "></li>
|
||||||
@[\`shown.bs.collapse\`]="handleShowNavUser"
|
<li ><a class="fhc-dark-bg btn rounded-0 d-block" :href="logoutUrl">Logout</a></li>
|
||||||
@[\`hide.bs.collapse\`]="handleHideNavUser"
|
</ul>
|
||||||
id="nav-user-menu" class="top-100 end-0 collapse list-unstyled" aria-labelledby="nav-user-btn">
|
|
||||||
<li><a class="fhc-dark-bg btn rounded-0 d-block" :href="site_url + '/Cis/Profil'" id="menu-profil">Profil</a></li>
|
|
||||||
<li >
|
|
||||||
<cis-sprachen @languageChanged="fetchMenu"></cis-sprachen>
|
|
||||||
</li>
|
|
||||||
<li><hr class="dropdown-divider m-0 "></li>
|
|
||||||
<li ><a class="fhc-dark-bg btn rounded-0 d-block" :href="logoutUrl">Logout</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav id="nav-main" class="offcanvas offcanvas-start" tabindex="-1" aria-labelledby="nav-main-btn" data-bs-backdrop="false">
|
<nav id="nav-main" class="offcanvas offcanvas-start" tabindex="-1" aria-labelledby="nav-main-btn" data-bs-backdrop="false">
|
||||||
<div id="nav-main-sticky">
|
<div id="nav-main-sticky">
|
||||||
<div id="nav-main-toggle" class="position-static d-none d-lg-block ">
|
<div id="nav-main-toggle" class="position-static d-none d-lg-block ">
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ export default {
|
|||||||
const vm = this;
|
const vm = this;
|
||||||
tinymce.init({
|
tinymce.init({
|
||||||
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
||||||
//height: 800,
|
min_height: 300,
|
||||||
//plugins: ['lists'],
|
//plugins: ['lists'],
|
||||||
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
||||||
plugins: 'link',
|
plugins: 'link',
|
||||||
@@ -313,7 +313,7 @@ export default {
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<form-form class="row g-3 mt-2 h-100" ref="formMessage">
|
<form-form class="row g-3 mt-2 align-content-start" ref="formMessage">
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
|
|
||||||
@@ -338,7 +338,7 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Tiny MCE-->
|
<!--Tiny MCE-->
|
||||||
<div class="row mb-3 h-100 tiny-90">
|
<div class="row mb-3 tiny-90">
|
||||||
<form-input
|
<form-input
|
||||||
ref="editor"
|
ref="editor"
|
||||||
:label="$p.t('global','nachricht') + ' *'"
|
:label="$p.t('global','nachricht') + ' *'"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ export default {
|
|||||||
const vm = this;
|
const vm = this;
|
||||||
tinymce.init({
|
tinymce.init({
|
||||||
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
||||||
//height: 800,
|
min_height: 300,
|
||||||
//plugins: ['lists'],
|
//plugins: ['lists'],
|
||||||
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
||||||
plugins: 'link',
|
plugins: 'link',
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ export default {
|
|||||||
personId: null,
|
personId: null,
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: '400',
|
height: '400',
|
||||||
|
arePhrasesLoaded: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -195,7 +196,7 @@ export default {
|
|||||||
],
|
],
|
||||||
formatter: (cell, formatterParams) => {
|
formatter: (cell, formatterParams) => {
|
||||||
const key = formatterParams[cell.getValue()];
|
const key = formatterParams[cell.getValue()];
|
||||||
return this.$p.t('messages', key);
|
return this.$p?.t?.('messages', key) || key;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -305,8 +306,6 @@ export default {
|
|||||||
{
|
{
|
||||||
event: 'tableBuilt',
|
event: 'tableBuilt',
|
||||||
handler: async() => {
|
handler: async() => {
|
||||||
await this.$p.loadCategory(['global', 'person', 'stv', 'messages', 'ui', 'notiz']);
|
|
||||||
|
|
||||||
const setHeader = (field, text) => {
|
const setHeader = (field, text) => {
|
||||||
const col = this.$refs.table.tabulator.getColumn(field);
|
const col = this.$refs.table.tabulator.getColumn(field);
|
||||||
if (!col) return;
|
if (!col) return;
|
||||||
@@ -357,6 +356,12 @@ export default {
|
|||||||
});*/
|
});*/
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
|
this.$p
|
||||||
|
.loadCategory(['global', 'person', 'stv', 'messages', 'ui', 'notiz'])
|
||||||
|
.then(() => {
|
||||||
|
this.arePhrasesLoaded = true;
|
||||||
|
});
|
||||||
|
|
||||||
if(this.typeId != 'person_id' && Array.isArray(this.id) && this.id.length === 1) {
|
if(this.typeId != 'person_id' && Array.isArray(this.id) && this.id.length === 1) {
|
||||||
const params = {
|
const params = {
|
||||||
id: this.id,
|
id: this.id,
|
||||||
@@ -381,6 +386,7 @@ export default {
|
|||||||
<!--table-->
|
<!--table-->
|
||||||
<div class="col-sm-6 pt-1">
|
<div class="col-sm-6 pt-1">
|
||||||
<core-filter-cmpt
|
<core-filter-cmpt
|
||||||
|
v-if="arePhrasesLoaded"
|
||||||
ref="table"
|
ref="table"
|
||||||
:tabulator-options="tabulatorOptions"
|
:tabulator-options="tabulatorOptions"
|
||||||
:tabulator-events="tabulatorEvents"
|
:tabulator-events="tabulatorEvents"
|
||||||
@@ -413,6 +419,7 @@ export default {
|
|||||||
<div class="col-sm-12 pt-6">
|
<div class="col-sm-12 pt-6">
|
||||||
<core-filter-cmpt
|
<core-filter-cmpt
|
||||||
ref="table"
|
ref="table"
|
||||||
|
v-if="arePhrasesLoaded"
|
||||||
:tabulator-options="tabulatorOptions"
|
:tabulator-options="tabulatorOptions"
|
||||||
:tabulator-events="tabulatorEvents"
|
:tabulator-events="tabulatorEvents"
|
||||||
table-only
|
table-only
|
||||||
|
|||||||
@@ -84,6 +84,14 @@ export default {
|
|||||||
'microcredential_2',
|
'microcredential_2',
|
||||||
'microcredential_3',
|
'microcredential_3',
|
||||||
'microcredential_4',
|
'microcredential_4',
|
||||||
|
'microdegree_1',
|
||||||
|
'microdegree_2',
|
||||||
|
'microdegree_3',
|
||||||
|
'microdegree_4',
|
||||||
|
'microdegreeabschluss_1',
|
||||||
|
'microdegreeabschluss_2',
|
||||||
|
'microdegreeabschluss_3',
|
||||||
|
'microdegreeabschluss_4',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
documentDropdownObject: {}
|
documentDropdownObject: {}
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
open() {
|
open() {
|
||||||
|
|
||||||
|
this.getBuchungstypen(this.currentSemester);
|
||||||
this.data = {
|
this.data = {
|
||||||
buchungstyp_kurzbz: '',
|
buchungstyp_kurzbz: '',
|
||||||
betrag: '-0.00',
|
betrag: '-0.00',
|
||||||
@@ -105,7 +107,7 @@ export default {
|
|||||||
const text = typ.standardtext || '';
|
const text = typ.standardtext || '';
|
||||||
const creditpoints = typ.credit_points || '';
|
const creditpoints = typ.credit_points || '';
|
||||||
|
|
||||||
if (!this.data.betrag || this.data.betrag == '-0.00')
|
if (!this.data.betrag || this.data.betrag == '-0.00' || this.data.betrag !== amount)
|
||||||
this.data.betrag = amount;
|
this.data.betrag = amount;
|
||||||
|
|
||||||
if (!this.data.buchungstext)
|
if (!this.data.buchungstext)
|
||||||
@@ -113,7 +115,18 @@ export default {
|
|||||||
|
|
||||||
if (this.config.showCreditpoints && (this.data.credit_points == '0.00' || this.data.credit_points === null))
|
if (this.config.showCreditpoints && (this.data.credit_points == '0.00' || this.data.credit_points === null))
|
||||||
this.data.credit_points = creditpoints;
|
this.data.credit_points = creditpoints;
|
||||||
}
|
},
|
||||||
|
getBuchungstypen(studiensemester_kurzbz)
|
||||||
|
{
|
||||||
|
this.$api
|
||||||
|
.call(ApiKonto.getBuchungstypen(studiensemester_kurzbz))
|
||||||
|
.then(result => {
|
||||||
|
this.lists.buchungstypen = result.data;
|
||||||
|
if (this.data.buchungstyp_kurzbz)
|
||||||
|
this.checkDefaultBetrag(this.data.buchungstyp_kurzbz);
|
||||||
|
})
|
||||||
|
.catch(this.$fhcAlert.handleSystemError);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
template: `
|
template: `
|
||||||
<core-form ref="form" class="stv-details-konto-edit" @submit.prevent="save">
|
<core-form ref="form" class="stv-details-konto-edit" @submit.prevent="save">
|
||||||
@@ -166,6 +179,7 @@ export default {
|
|||||||
<form-input
|
<form-input
|
||||||
type="select"
|
type="select"
|
||||||
v-model="data.studiensemester_kurzbz"
|
v-model="data.studiensemester_kurzbz"
|
||||||
|
@change="getBuchungstypen(data.studiensemester_kurzbz)"
|
||||||
name="studiensemester_kurzbz"
|
name="studiensemester_kurzbz"
|
||||||
:label="$p.t('lehre/studiensemester')"
|
:label="$p.t('lehre/studiensemester')"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ export default {
|
|||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Typ", field: "type"},
|
{title: "Typ", field: "type", headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "Betrag", field: "betrag",
|
{title: "Betrag", field: "betrag", headerFilter: true,
|
||||||
formatter: function(cell) {
|
formatter: function(cell) {
|
||||||
let value = cell.getValue();
|
let value = cell.getValue();
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
@@ -51,14 +51,14 @@ export default {
|
|||||||
return parseFloat(value).toFixed(2);
|
return parseFloat(value).toFixed(2);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "Bezeichnung", field: "bezeichnung"},
|
{title: "Bezeichnung", field: "bezeichnung", headerFilter: true},
|
||||||
{title: "Studiensemester", field: "studiensemester_kurzbz"},
|
{title: "Studiensemester", field: "studiensemester_kurzbz", headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "Pruefung_id", field: "pruefung_id", visible: false},
|
{title: "Pruefung_id", field: "pruefung_id", visible: false, headerFilter: true},
|
||||||
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false},
|
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false, headerFilter: true},
|
||||||
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false},
|
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false, headerFilter: true},
|
||||||
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true},
|
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true, headerFilter: true},
|
||||||
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false},
|
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "vertrag_id", field: "vertrag_id", visible: false}, //just for testing
|
{title: "vertrag_id", field: "vertrag_id", visible: false, headerFilter: true}, //just for testing
|
||||||
{
|
{
|
||||||
title: 'Aktionen', field: 'actions',
|
title: 'Aktionen', field: 'actions',
|
||||||
minWidth: 50,
|
minWidth: 50,
|
||||||
@@ -110,10 +110,10 @@ export default {
|
|||||||
],
|
],
|
||||||
layout: 'fitColumns',
|
layout: 'fitColumns',
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: '200',
|
height: '250',
|
||||||
selectableRowsRangeMode: 'click',
|
selectableRowsRangeMode: 'click',
|
||||||
selectableRows: true,
|
selectableRows: true,
|
||||||
persistenceID: 'core-contracts-details-2026021701'
|
persistenceID: 'core-contracts-details-2026050501'
|
||||||
},
|
},
|
||||||
tabulatorEvents: [
|
tabulatorEvents: [
|
||||||
{
|
{
|
||||||
@@ -137,7 +137,7 @@ export default {
|
|||||||
|
|
||||||
setHeader('type', this.$p.t('global', 'typ'));
|
setHeader('type', this.$p.t('global', 'typ'));
|
||||||
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
||||||
setHeader('lehreinheit_id', this.$p.t('ui', 'lehreinheit_id'));
|
setHeader('lehreinheit_id', this.$p.t('lehre', 'lehreinheit_id'));
|
||||||
setHeader('betrag', this.$p.t('ui', 'betrag'));
|
setHeader('betrag', this.$p.t('ui', 'betrag'));
|
||||||
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
||||||
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
||||||
|
|||||||
@@ -47,12 +47,13 @@ export default {
|
|||||||
this.endpoint.getStatiOfContract(this.person_id, this.vertrag_id)
|
this.endpoint.getStatiOfContract(this.person_id, this.vertrag_id)
|
||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
persistenceID: 'core-contracts-status-2026021701',
|
persistenceID: 'core-contracts-status-2026050501',
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Status", field: "bezeichnung"},
|
{title: "Status", field: "bezeichnung", headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{
|
{
|
||||||
title: "Datum",
|
title: "Datum",
|
||||||
field: "datum",
|
field: "datum",
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr); // Convert to Date object
|
const date = new Date(dateStr); // Convert to Date object
|
||||||
@@ -66,14 +67,15 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "vertrag_id", field: "vertrag_id", visible: false},
|
{title: "vertrag_id", field: "vertrag_id", visible: false, headerFilter: true},
|
||||||
{title: "Vertragsstatus", field: "vertragsstatus_kurzbz", visible: false},
|
{title: "Vertragsstatus", field: "vertragsstatus_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "User", field: "mitarbeiter_uid", visible: false},
|
{title: "User", field: "mitarbeiter_uid", visible: false, headerFilter: true},
|
||||||
{title: "insertvon", field: "insertvon", visible: false},
|
{title: "insertvon", field: "insertvon", visible: false, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: "insertamum",
|
title: "insertamum",
|
||||||
field: "insertamum",
|
field: "insertamum",
|
||||||
visible: false,
|
visible: false,
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
@@ -87,11 +89,12 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "updatevon", field: "updatevon", visible: false},
|
{title: "updatevon", field: "updatevon", visible: false, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: "updateamum",
|
title: "updateamum",
|
||||||
field: "updateamum",
|
field: "updateamum",
|
||||||
visible: false,
|
visible: false,
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
@@ -148,7 +151,7 @@ export default {
|
|||||||
],
|
],
|
||||||
layout: 'fitColumns',
|
layout: 'fitColumns',
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: '200',
|
height: '250',
|
||||||
selectableRowsRangeMode: 'click',
|
selectableRowsRangeMode: 'click',
|
||||||
selectableRows: true,
|
selectableRows: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -30,10 +30,11 @@ export default {
|
|||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Typ", field: "type", width: 100},
|
{title: "Typ", field: "type", width: 100, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{
|
{
|
||||||
title: "Betrag",
|
title: "Betrag",
|
||||||
field: "betrag1",
|
field: "betrag1",
|
||||||
|
headerFilter: true,
|
||||||
formatter: function(cell) {
|
formatter: function(cell) {
|
||||||
let value = cell.getValue();
|
let value = cell.getValue();
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
@@ -41,28 +42,29 @@ export default {
|
|||||||
}
|
}
|
||||||
return parseFloat(value).toFixed(2);
|
return parseFloat(value).toFixed(2);
|
||||||
}},
|
}},
|
||||||
{title: "Bezeichnung", field: "bezeichnung", width: 150},
|
{title: "Bezeichnung", field: "bezeichnung", width: 150, headerFilter: true},
|
||||||
{title: "Studiensemester", field: "studiensemester_kurzbz", width: 160},
|
{title: "Studiensemester", field: "studiensemester_kurzbz", width: 160, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false},
|
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false, headerFilter: true},
|
||||||
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false},
|
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false, headerFilter: true},
|
||||||
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true},
|
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true, headerFilter: true},
|
||||||
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false},
|
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "Vertragsstunden", field: "vertragsstunden", visible: false},
|
{title: "Vertragsstunden", field: "vertragsstunden", visible: false, headerFilter: true},
|
||||||
{title: "vertrag_id", field: "vertrag_id", visible: false}, //just for testing
|
{title: "vertrag_id", field: "vertrag_id", visible: false, headerFilter: true}, //just for testing
|
||||||
{
|
{
|
||||||
title: "VertragsstundenStudiensemester",
|
title: "VertragsstundenStudiensemester",
|
||||||
field: "vertragsstunden_studiensemester_kurzbz",
|
field: "vertragsstunden_studiensemester_kurzbz",
|
||||||
visible: false
|
visible: false,
|
||||||
|
headerFilter: true
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
layout: 'fitColumns',
|
layout: 'fitColumns',
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: 150,
|
height: 250,
|
||||||
selectableRowsRangeMode: 'click',
|
selectableRowsRangeMode: 'click',
|
||||||
selectableRows: true,
|
selectableRows: true,
|
||||||
selectableRowsRollingSelection: false, //only allow multiselect with STRG
|
selectableRowsRollingSelection: false, //only allow multiselect with STRG
|
||||||
index: "lehreinheit_id",
|
index: "lehreinheit_id",
|
||||||
persistenceID: 'core-contracts-unassigned-2026021701'
|
persistenceID: 'core-contracts-unassigned-2026050501'
|
||||||
},
|
},
|
||||||
tabulatorEvents: [
|
tabulatorEvents: [
|
||||||
{
|
{
|
||||||
@@ -100,7 +102,7 @@ export default {
|
|||||||
|
|
||||||
setHeader('type', this.$p.t('global', 'typ'));
|
setHeader('type', this.$p.t('global', 'typ'));
|
||||||
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
||||||
setHeader('lehreinheit_id', this.$p.t('ui', 'lehreinheit_id'));
|
setHeader('lehreinheit_id', this.$p.t('lehre', 'lehreinheit_id'));
|
||||||
setHeader('betrag1', this.$p.t('ui', 'betrag'));
|
setHeader('betrag1', this.$p.t('ui', 'betrag'));
|
||||||
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
||||||
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ export default {
|
|||||||
ContractStati
|
ContractStati
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
/* cisRoot: {
|
|
||||||
from: 'cisRoot'
|
|
||||||
},*/
|
|
||||||
hasSchreibrechte: {
|
hasSchreibrechte: {
|
||||||
from: 'hasSchreibrechte',
|
from: 'hasSchreibrechte',
|
||||||
default: false
|
default: false
|
||||||
@@ -54,9 +51,9 @@ export default {
|
|||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Bezeichnung", field: "bezeichnung", width: 300},
|
{title: "Bezeichnung", field: "bezeichnung", width: 300, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: "Betrag", field: "betrag", width: 100,
|
title: "Betrag", field: "betrag", width: 100, headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
let value = cell.getValue();
|
let value = cell.getValue();
|
||||||
|
|
||||||
@@ -66,12 +63,13 @@ export default {
|
|||||||
return parseFloat(value).toFixed(2);
|
return parseFloat(value).toFixed(2);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "Vertragstyp", field: "vertragstyp_bezeichnung", width: 125},
|
{title: "Vertragstyp", field: "vertragstyp_bezeichnung", width: 125, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "Status", field: "status", width: 100},
|
{title: "Status", field: "status", width: 100, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{
|
{
|
||||||
title: "Vertragsdatum",
|
title: "Vertragsdatum",
|
||||||
field: "vertragsdatum",
|
field: "vertragsdatum",
|
||||||
width: 128,
|
width: 128,
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
@@ -82,11 +80,11 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "VertragId", field: "vertrag_id", visible: false},
|
{title: "VertragId", field: "vertrag_id", visible: false, headerFilter: true},
|
||||||
{title: "Vertragsstunden", field: "vertragsstunden", visible: false},
|
{title: "Vertragsstunden", field: "vertragsstunden", visible: false, headerFilter: true},
|
||||||
{title: "VertragsstundenStudiensemester", field: "vertragsstunden_studiensemester_kurzbz", visible: false},
|
{title: "VertragsstundenStudiensemester", field: "vertragsstunden_studiensemester_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "Anmerkung", field: "anmerkung", visible: false},
|
{title: "Anmerkung", field: "anmerkung", visible: false, headerFilter: true},
|
||||||
{title: "isAbgerechnet", field: "isabgerechnet", visible: false},
|
{title: "isAbgerechnet", field: "isabgerechnet", visible: false, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: 'Aktionen', field: 'actions',
|
title: 'Aktionen', field: 'actions',
|
||||||
minWidth: 150,
|
minWidth: 150,
|
||||||
@@ -140,11 +138,13 @@ export default {
|
|||||||
columns: true,
|
columns: true,
|
||||||
filter: false //to avoids js errors
|
filter: false //to avoids js errors
|
||||||
},
|
},
|
||||||
persistenceID: 'core-contracts-2026021701',
|
persistenceID: 'core-contracts-2026050501',
|
||||||
};
|
};
|
||||||
return options;
|
return options;
|
||||||
},
|
},
|
||||||
tabulatorEvents() {
|
tabulatorEvents() {
|
||||||
|
const vm = this;
|
||||||
|
|
||||||
const events = [
|
const events = [
|
||||||
{
|
{
|
||||||
event: 'tableBuilt',
|
event: 'tableBuilt',
|
||||||
@@ -177,28 +177,11 @@ export default {
|
|||||||
setHeader('actions', this.$p.t('global', 'aktionen'));
|
setHeader('actions', this.$p.t('global', 'aktionen'));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/* {
|
|
||||||
//is just enabled for ADDON Injection KU: MultiprintHonorarvertrag
|
|
||||||
//(maybe enable also for ADDON FH Burgenland: MultiAccept later)
|
|
||||||
event: 'rowClick',
|
|
||||||
handler: (e, row) => {
|
|
||||||
if (this.dataPrintHonorar != null && this.dataPrintHonorar.multiselect != null) {
|
|
||||||
const selectedContract = row.getData().vertrag_id;
|
|
||||||
const status = row.getData().status;
|
|
||||||
const bezeichnung = row.getData().bezeichnung;
|
|
||||||
|
|
||||||
this.toggleRowClick(selectedContract, status, bezeichnung);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},*/
|
|
||||||
{
|
{
|
||||||
event: 'rowClick',
|
event: 'rowClick',
|
||||||
handler: (e, row) => {
|
handler: function (e, row) {
|
||||||
if (!this.dataPrintHonorar?.multiselect) return;
|
|
||||||
|
|
||||||
const { vertrag_id, status, bezeichnung, vertragstyp_bezeichnung } = row.getData();
|
const { vertrag_id, status, bezeichnung, vertragstyp_bezeichnung } = row.getData();
|
||||||
|
vm.toggleRowClick(e, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung);
|
||||||
this.toggleRowClick(e, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -242,8 +225,6 @@ export default {
|
|||||||
person_id() {
|
person_id() {
|
||||||
this.$refs.table.reloadTable();
|
this.$refs.table.reloadTable();
|
||||||
this.arraySelectedContracts = [];
|
this.arraySelectedContracts = [];
|
||||||
/* if(this.dataPrintHonorar?.multiselect)
|
|
||||||
this.dataPrintHonorar.multiselect = [];*/
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -270,7 +251,6 @@ export default {
|
|||||||
)
|
)
|
||||||
.then(result => {
|
.then(result => {
|
||||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||||
//window.scrollTo(0, 0);
|
|
||||||
this.reload();
|
this.reload();
|
||||||
this.contractSelected.vertrag_id = null;
|
this.contractSelected.vertrag_id = null;
|
||||||
})
|
})
|
||||||
@@ -518,19 +498,9 @@ export default {
|
|||||||
'content/pdfExport.php?xml=' + this.dataPrintHonorar.xml + '&xsl=' + this.dataPrintHonorar.xsl + '&mitarbeiter_uid=' + this.mitarbeiter_uid + vertragString + '&output=pdf&uid=' + this.mitarbeiter_uid;
|
'content/pdfExport.php?xml=' + this.dataPrintHonorar.xml + '&xsl=' + this.dataPrintHonorar.xsl + '&mitarbeiter_uid=' + this.mitarbeiter_uid + vertragString + '&output=pdf&uid=' + this.mitarbeiter_uid;
|
||||||
window.open(linkToPdf, '_blank');
|
window.open(linkToPdf, '_blank');
|
||||||
},
|
},
|
||||||
/* toggleRowClick(contractId, status, bezeichnung) {
|
|
||||||
const index = this.arraySelectedContracts.findIndex(
|
|
||||||
([id]) => id === contractId
|
|
||||||
);
|
|
||||||
if (index !== -1) {
|
|
||||||
this.arraySelectedContracts.splice(index, 1);
|
|
||||||
} else {
|
|
||||||
this.arraySelectedContracts.push([contractId, status, bezeichnung]);
|
|
||||||
}
|
|
||||||
},*/
|
|
||||||
toggleRowClick(event, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung) {
|
toggleRowClick(event, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung) {
|
||||||
if (!this.dataPrintHonorar?.multiselect) return;
|
|
||||||
|
|
||||||
|
const isMulti = this.dataPrintHonorar?.multiselect === true;
|
||||||
const isCtrl = event.ctrlKey || event.metaKey;
|
const isCtrl = event.ctrlKey || event.metaKey;
|
||||||
|
|
||||||
const entry = {
|
const entry = {
|
||||||
@@ -540,28 +510,29 @@ export default {
|
|||||||
vertragstyp_bezeichnung
|
vertragstyp_bezeichnung
|
||||||
};
|
};
|
||||||
|
|
||||||
// Single click
|
// allow MultiSelect just in case event multiActionPrintHonorarvertrag
|
||||||
if (!isCtrl) {
|
const allowMultiClick = isMulti && isCtrl;
|
||||||
|
|
||||||
|
if (!allowMultiClick) {
|
||||||
this.arraySelectedContracts = [entry];
|
this.arraySelectedContracts = [entry];
|
||||||
|
|
||||||
|
//just mark last selected row as selected
|
||||||
|
this.$refs.table.tabulator.deselectRow();
|
||||||
|
this.$refs.table.tabulator.selectRow(vertrag_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// CTRL / CMD → toggle
|
|
||||||
const index = this.arraySelectedContracts.findIndex(
|
const index = this.arraySelectedContracts.findIndex(
|
||||||
e => e.vertrag_id === vertrag_id
|
e => e.vertrag_id === vertrag_id
|
||||||
);
|
);
|
||||||
|
|
||||||
if (index === -1) {
|
if (index === -1) {
|
||||||
this.arraySelectedContracts.push(entry);
|
this.arraySelectedContracts.push(entry);
|
||||||
//this.arraySelectedContracts.push([entry.vertrag_id, entry.status, entry.bezeichnung, entry.vertragstyp_bezeichnung]);
|
|
||||||
} else {
|
} else {
|
||||||
this.arraySelectedContracts.splice(index, 1);
|
this.arraySelectedContracts.splice(index, 1);
|
||||||
}
|
}
|
||||||
},
|
|
||||||
/* clearSelection(){
|
}
|
||||||
this.arraySelectedContracts = [];
|
|
||||||
this.$refs.table.tabulator.deselectRow();
|
|
||||||
}*/
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
Promise.all([
|
Promise.all([
|
||||||
@@ -587,88 +558,6 @@ export default {
|
|||||||
});
|
});
|
||||||
this.getFormattedDate();
|
this.getFormattedDate();
|
||||||
},
|
},
|
||||||
/*
|
|
||||||
TODO(Manu) delete after check
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="DatePicker"
|
|
||||||
:label="$p.t('vertrag/datum_vertrag')"
|
|
||||||
name="vertragsdatum"
|
|
||||||
v-model="formData.vertragsdatum"
|
|
||||||
auto-apply
|
|
||||||
:enable-time-picker="false"
|
|
||||||
format="dd.MM.yyyy"
|
|
||||||
preview-format="dd.MM.yyyy"
|
|
||||||
:teleport="true"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="text"
|
|
||||||
:label="$p.t('ui/bezeichnung')"
|
|
||||||
name="bezeichnung"
|
|
||||||
v-model="formData.bezeichnung"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="select"
|
|
||||||
:label="$p.t('global/typ')"
|
|
||||||
v-model="formData.vertragstyp_kurzbz"
|
|
||||||
name="vertragstyp_kurzbz"
|
|
||||||
>
|
|
||||||
<option :value="null">-- {{$p.t('fehlermonitoring', 'keineAuswahl')}} --</option>
|
|
||||||
<option
|
|
||||||
v-for="entry in listContractTypes"
|
|
||||||
:key="entry.vertragstyp_kurzbz"
|
|
||||||
:value="entry.vertragstyp_kurzbz"
|
|
||||||
>
|
|
||||||
{{entry.bezeichnung}}
|
|
||||||
</option>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
:label="$p.t('ui/betrag')"
|
|
||||||
name="betrag"
|
|
||||||
v-model="formData.betrag"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3" v-if="!statusNew">
|
|
||||||
<form-input
|
|
||||||
type="text"
|
|
||||||
:label="$p.t('ui/stunden') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
|
||||||
name="vertragsstunden"
|
|
||||||
v-model="formData.vertragsstunden"
|
|
||||||
disabled
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3" v-if="!statusNew">
|
|
||||||
<form-input
|
|
||||||
type="text"
|
|
||||||
:label="$p.t('lehre/studiensemester') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
|
||||||
name="vertragsstunden_studiensemester_kurzbz"
|
|
||||||
v-model="formData.vertragsstunden_studiensemester_kurzbz"
|
|
||||||
disabled
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="textarea"
|
|
||||||
:label="$p.t('global/anmerkung')"
|
|
||||||
name="anmerkung"
|
|
||||||
v-model="formData.anmerkung"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
*/
|
|
||||||
template: `
|
template: `
|
||||||
<div class="core-contracts h-100 d-flex flex-column">
|
<div class="core-contracts h-100 d-flex flex-column">
|
||||||
|
|
||||||
|
|||||||
@@ -21,71 +21,69 @@ export default {
|
|||||||
dms,
|
dms,
|
||||||
cms,
|
cms,
|
||||||
mergedStudent,
|
mergedStudent,
|
||||||
mergedPerson,
|
mergedPerson
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
searchoptions: {
|
searchoptions: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true,
|
required: true
|
||||||
},
|
},
|
||||||
searchfunction: {
|
searchfunction: {
|
||||||
type: Function,
|
type: Function,
|
||||||
required: true,
|
required: true
|
||||||
},
|
},
|
||||||
showBtnSubmit: Boolean,
|
showBtnSubmit: Boolean
|
||||||
},
|
},
|
||||||
provide() {
|
provide() {
|
||||||
return {
|
return {
|
||||||
query: Vue.computed(() => this.lastQuery),
|
query: Vue.computed(() => this.lastQuery)
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
inject: ["isMobile"],
|
data: function() {
|
||||||
data: function () {
|
return {
|
||||||
return {
|
searchtimer: null,
|
||||||
searchtimer: null,
|
hidetimer: null,
|
||||||
hidetimer: null,
|
searchsettings: {
|
||||||
searchsettings: {
|
searchstr: this.getSearchStr(),
|
||||||
searchstr: this.getSearchStr(),
|
types: this.getInitiallySelectedTypes(),
|
||||||
types: this.getInitiallySelectedTypes(),
|
},
|
||||||
},
|
searchresult: [],
|
||||||
searchresult: [],
|
searchmode: '',
|
||||||
searchmode: "",
|
showresult: false,
|
||||||
showresult: false,
|
searching: false,
|
||||||
searching: false,
|
error: null,
|
||||||
error: null,
|
abortController: null,
|
||||||
abortController: null,
|
|
||||||
settingsDropdown: null,
|
settingsDropdown: null,
|
||||||
lastQuery: "",
|
lastQuery: ''
|
||||||
isSearchShownInMobileView: false,
|
};
|
||||||
};
|
},
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
searchTypesPlaceholder() {
|
searchTypesPlaceholder() {
|
||||||
if (!this.searchsettings.types.length) {
|
if (!this.searchsettings.types.length) {
|
||||||
return Object.values(this.typeLabels).join(" / ");
|
return Object.values(this.typeLabels).join(' / ');
|
||||||
}
|
}
|
||||||
return this.searchsettings.types
|
return this.searchsettings.types.map(type => this.typeLabels[type]).join(' / ');
|
||||||
.map((type) => this.typeLabels[type])
|
|
||||||
.join(" / ");
|
|
||||||
},
|
},
|
||||||
types() {
|
types() {
|
||||||
if (!this.searchoptions.types) return [];
|
if (!this.searchoptions.types)
|
||||||
|
return [];
|
||||||
if (Array.isArray(this.searchoptions.types))
|
if (Array.isArray(this.searchoptions.types))
|
||||||
return this.searchoptions.types;
|
return this.searchoptions.types;
|
||||||
return Object.keys(this.searchoptions.types);
|
return Object.keys(this.searchoptions.types);
|
||||||
},
|
},
|
||||||
typeLabels() {
|
typeLabels() {
|
||||||
if (!this.searchoptions.types) return {};
|
if (!this.searchoptions.types)
|
||||||
|
return {};
|
||||||
if (Array.isArray(this.searchoptions.types)) {
|
if (Array.isArray(this.searchoptions.types)) {
|
||||||
return this.searchoptions.types.reduce((res, type) => {
|
return this.searchoptions.types.reduce((res, type) => {
|
||||||
res[type] = type;
|
res[type] = type;
|
||||||
return res;
|
return res
|
||||||
}, {});
|
}, {});
|
||||||
}
|
}
|
||||||
return this.searchoptions.types;
|
return this.searchoptions.types;
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
template: /*html*/ `
|
template: /*html*/`
|
||||||
<form
|
<form
|
||||||
ref="searchform"
|
ref="searchform"
|
||||||
class="d-flex me-3"
|
class="d-flex me-3"
|
||||||
@@ -94,91 +92,80 @@ export default {
|
|||||||
@focusin="searchfocusin"
|
@focusin="searchfocusin"
|
||||||
@focusout="searchfocusout"
|
@focusout="searchfocusout"
|
||||||
>
|
>
|
||||||
<span
|
|
||||||
v-if="isMobile"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target=".multi-collapse"
|
|
||||||
aria-controls="header-searchbar-collapsible header-options-collapsible header-usermenu-collapsible"
|
|
||||||
aria-expanded="false"
|
|
||||||
class="d-flex flex-row align-items-center ps-3 pe-1"
|
|
||||||
>
|
|
||||||
<i v-if="isSearchShownInMobileView" class="fa-solid fa-chevron-left"></i>
|
|
||||||
<i v-else class="fa-solid fa-magnifying-glass"></i>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
:class="{'flex-grow-1': !isMobile, 'collapse multi-collapse collapse-horizontal': isMobile}"
|
ref="searchbox"
|
||||||
id="header-searchbar-collapsible"
|
class="h-100 input-group me-2 searchbar_searchbox"
|
||||||
@[\`show.bs.collapse\`]="isSearchShownInMobileView = true"
|
:class="showresult ? 'open' : 'closed'"
|
||||||
@[\`hidden.bs.collapse\`]="isSearchShownInMobileView = false"
|
|
||||||
>
|
>
|
||||||
<div
|
<span class="input-group-text">
|
||||||
:class="{open: showresult, closed: showresult, 'px-3': isMobile}"
|
<i class="fa-solid fa-magnifying-glass"></i>
|
||||||
ref="searchbox"
|
</span>
|
||||||
class="h-100 input-group me-2 searchbar_searchbox"
|
<input
|
||||||
:style="isMobile ? 'width: ' + getMaxWidthOfSearchbarInMobileView() : ''"
|
ref="input"
|
||||||
|
@keyup="search"
|
||||||
|
@focus="showsearchresult"
|
||||||
|
v-model="searchsettings.searchstr"
|
||||||
|
class="form-control searchbar_input"
|
||||||
|
type="search"
|
||||||
|
:placeholder="$p.t('search/input_search_label', { types: searchTypesPlaceholder })"
|
||||||
|
:aria-label="$p.t('search/input_search_label', { types: searchTypesPlaceholder })"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
v-if="searchsettings.searchstr"
|
||||||
|
type="button"
|
||||||
|
class="searchbar_input_clear btn btn-outline-secondary"
|
||||||
|
@click="clearInput"
|
||||||
|
@focusin.stop
|
||||||
>
|
>
|
||||||
<span class="input-group-text">
|
<i class="fas fa-close"></i>
|
||||||
<i class="fa-solid fa-magnifying-glass color-white"></i>
|
</button>
|
||||||
</span>
|
<button
|
||||||
<input
|
v-if="showBtnSubmit"
|
||||||
ref="input"
|
type="submit"
|
||||||
@keyup="search"
|
class="btn btn-primary"
|
||||||
@focus="showsearchresult"
|
:title="$p.t('search/submit')"
|
||||||
v-model="searchsettings.searchstr"
|
:aria-label="$p.t('search/submit')"
|
||||||
class="form-control searchbar_input"
|
>
|
||||||
type="search"
|
<i class="fas fa-search"></i>
|
||||||
:placeholder="$p.t('search/input_search_label', { types: searchTypesPlaceholder })"
|
</button>
|
||||||
:aria-label="$p.t('search/input_search_label', { types: searchTypesPlaceholder })"
|
<button
|
||||||
>
|
data-bs-toggle="collapse"
|
||||||
<button
|
data-bs-target="#searchSettings"
|
||||||
v-if="showBtnSubmit"
|
aria-expanded="false"
|
||||||
type="submit"
|
aria-controls="searchSettings"
|
||||||
class="btn btn-primary"
|
ref="settingsbutton"
|
||||||
:title="$p.t('search/submit')"
|
class="searchbar_setting_btn btn btn-secondary"
|
||||||
:aria-label="$p.t('search/submit')"
|
type="button"
|
||||||
>
|
:title="$p.t('search/button_filter_label')"
|
||||||
<i class="fas fa-search"></i>
|
:aria-label="$p.t('search/button_filter_label')"
|
||||||
</button>
|
>
|
||||||
<button
|
<i class="fas fa-cog"></i>
|
||||||
data-bs-toggle="collapse"
|
</button>
|
||||||
data-bs-target="#searchSettings"
|
</div>
|
||||||
aria-expanded="false"
|
|
||||||
aria-controls="searchSettings"
|
<div v-show="showresult"
|
||||||
ref="settingsbutton"
|
class="searchbar_results" tabindex="-1">
|
||||||
class="searchbar_setting_btn btn btn-secondary"
|
<div class="searchbar_results_scroller" ref="result">
|
||||||
type="button"
|
<div class="searchbar_results_wrapper" ref="results">
|
||||||
:title="$p.t('search/button_filter_label')"
|
<div v-if="searching">
|
||||||
:aria-label="$p.t('search/button_filter_label')"
|
<i class="fas fa-spinner fa-spin fa-2x"></i>
|
||||||
>
|
</div>
|
||||||
<i class="fas fa-filter"></i>
|
<div v-else-if="this.error !== null">{{ error }}</div>
|
||||||
</button>
|
<div v-else-if="searchresult.length < 1">{{ $p.t('search/error_no_results') }}</div>
|
||||||
</div>
|
<template v-else v-for="res in searchresult">
|
||||||
<div v-show="showresult"
|
<component
|
||||||
class="searchbar_results" tabindex="-1">
|
v-if="isValidRenderer(res.renderer)"
|
||||||
<div class="searchbar_results_scroller" ref="result">
|
:is="res.renderer"
|
||||||
<div class="searchbar_results_wrapper" ref="results">
|
:mode="searchmode"
|
||||||
<div v-if="searching">
|
:res="res"
|
||||||
<i class="fas fa-spinner fa-spin fa-2x"></i>
|
:actions="getActions(res)"
|
||||||
</div>
|
@actionexecuted="hideresult"
|
||||||
<div v-else-if="this.error !== null">{{ error }}</div>
|
></component>
|
||||||
<div v-else-if="searchresult.length < 1">{{ $p.t('search/error_no_results') }}</div>
|
<div v-else class="searchbar-result text-danger fw-bold">{{ $p.t('search/error_unknown_type', res) }}</div>
|
||||||
<template v-else v-for="res in searchresult">
|
</template>
|
||||||
<component
|
</div>
|
||||||
v-if="isValidRenderer(res.renderer)"
|
</div>
|
||||||
:is="res.renderer"
|
</div>
|
||||||
:mode="searchmode"
|
|
||||||
:res="res"
|
|
||||||
:actions="getActions(res)"
|
|
||||||
@actionexecuted="hideresult"
|
|
||||||
></component>
|
|
||||||
<div v-else class="searchbar-result text-danger fw-bold">{{ $p.t('search/error_unknown_type', res) }}</div>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
id="searchSettings"
|
id="searchSettings"
|
||||||
@@ -220,42 +207,34 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
`,
|
`,
|
||||||
watch: {
|
watch:{
|
||||||
"searchsettings.searchstr": function (newSearchValue) {
|
'searchsettings.searchstr': function (newSearchValue) {
|
||||||
if (this.searchoptions.origin) {
|
if(this.searchoptions.origin){
|
||||||
sessionStorage.setItem(
|
sessionStorage.setItem(`${this.searchoptions.origin}_searchstr`,newSearchValue);
|
||||||
`${this.searchoptions.origin}_searchstr`,
|
|
||||||
newSearchValue,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"searchsettings.types"(newValue) {
|
'searchsettings.types'(newValue) {
|
||||||
if (Array.isArray(newValue) && newValue.length === 0) {
|
if (Array.isArray(newValue) && newValue.length === 0) {
|
||||||
this.searchsettings.types = [...this.types];
|
this.searchsettings.types = [...this.types];
|
||||||
}
|
}
|
||||||
// stores the search types in the localstorage, only if the newValue is also an array
|
// stores the search types in the localstorage, only if the newValue is also an array
|
||||||
if (Array.isArray(newValue) && this.searchoptions.origin) {
|
if (Array.isArray(newValue) && this.searchoptions.origin) {
|
||||||
localStorage.setItem(
|
localStorage.setItem(`${this.searchoptions.origin}_searchtypes`, JSON.stringify(newValue));
|
||||||
`${this.searchoptions.origin}_searchtypes`,
|
|
||||||
JSON.stringify(newValue),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
this.search();
|
this.search();
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted(){
|
||||||
this.settingsDropdown = new bootstrap.Collapse(this.$refs.settings, {
|
this.settingsDropdown = new bootstrap.Collapse(this.$refs.settings, {
|
||||||
toggle: false,
|
toggle: false
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!this.searchoptions.origin) {
|
if (!this.searchoptions.origin){
|
||||||
console.warn(
|
console.warn("No origin defined in the searchoptions for the searchbar, please define the origin property in the searchbaroptions to allow reliable storage of searchstr and searchtypes accross applications.");
|
||||||
"No origin defined in the searchoptions for the searchbar, please define the origin property in the searchbaroptions to allow reliable storage of searchstr and searchtypes accross applications.",
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updated() {
|
updated() {
|
||||||
if (this.showresult) {
|
if(this.showresult) {
|
||||||
Vue.nextTick(() => {
|
Vue.nextTick(() => {
|
||||||
this.calcSearchResultHeight();
|
this.calcSearchResultHeight();
|
||||||
});
|
});
|
||||||
@@ -270,34 +249,32 @@ export default {
|
|||||||
getInitiallySelectedTypes() {
|
getInitiallySelectedTypes() {
|
||||||
let result = false;
|
let result = false;
|
||||||
if (this.searchoptions.origin) {
|
if (this.searchoptions.origin) {
|
||||||
let localStorageValue = localStorage.getItem(
|
let localStorageValue = localStorage.getItem(`${this.searchoptions.origin}_searchtypes`);
|
||||||
`${this.searchoptions.origin}_searchtypes`,
|
|
||||||
);
|
|
||||||
if (localStorageValue) {
|
if (localStorageValue) {
|
||||||
result = JSON.parse(localStorageValue);
|
result = JSON.parse(localStorageValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (result) return result;
|
if (result)
|
||||||
if (!this.searchoptions.types) return [];
|
return result;
|
||||||
|
if (!this.searchoptions.types)
|
||||||
|
return [];
|
||||||
if (Array.isArray(this.searchoptions.types))
|
if (Array.isArray(this.searchoptions.types))
|
||||||
return [...this.searchoptions.types];
|
return [...this.searchoptions.types];
|
||||||
return Object.keys(this.searchoptions.types);
|
return Object.keys(this.searchoptions.types);
|
||||||
},
|
},
|
||||||
getSearchStr: function () {
|
getSearchStr: function(){
|
||||||
if (!this.searchoptions.origin) return "";
|
if (!this.searchoptions.origin)
|
||||||
return (
|
return '';
|
||||||
sessionStorage.getItem(
|
return sessionStorage.getItem(`${this.searchoptions.origin}_searchstr`) ?? '';
|
||||||
`${this.searchoptions.origin}_searchstr`,
|
|
||||||
) ?? ""
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
checkSettingsVisibility: function (event) {
|
checkSettingsVisibility: function(event) {
|
||||||
// hides the settings collapsible if the user clicks somewhere else
|
// hides the settings collapsible if the user clicks somewhere else
|
||||||
if (!this.$refs.settings.contains(event.target)) {
|
if (!this.$refs.settings.contains(event.target))
|
||||||
|
{
|
||||||
this.settingsDropdown.hide();
|
this.settingsDropdown.hide();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleShowSettings: function () {
|
handleShowSettings: function() {
|
||||||
// adds the event listener checkSettingsVisibility only when the collapsible is shown
|
// adds the event listener checkSettingsVisibility only when the collapsible is shown
|
||||||
document.addEventListener("click", this.checkSettingsVisibility);
|
document.addEventListener("click", this.checkSettingsVisibility);
|
||||||
},
|
},
|
||||||
@@ -305,208 +282,183 @@ export default {
|
|||||||
// removes the event listener checkSettingsVisibility when the collapsible is hidden
|
// removes the event listener checkSettingsVisibility when the collapsible is hidden
|
||||||
document.removeEventListener("click", this.checkSettingsVisibility);
|
document.removeEventListener("click", this.checkSettingsVisibility);
|
||||||
},
|
},
|
||||||
calcSearchResultHeight: function () {
|
calcSearchResultHeight: function() {
|
||||||
const rect = this.$refs.results.getBoundingClientRect();
|
const rect = this.$refs.results.getBoundingClientRect();
|
||||||
if (rect.height > 0 && rect.height < window.innerHeight * 0.8) {
|
if( rect.height > 0 && rect.height < (window.innerHeight * 0.8) ) {
|
||||||
this.$refs.result.style.height =
|
this.$refs.result.style.height = Math.ceil(rect.height + 16) + 'px';
|
||||||
Math.ceil(rect.height + 16) + "px";
|
|
||||||
} else {
|
} else {
|
||||||
this.$refs.result.style.height =
|
this.$refs.result.style.height = Math.floor(window.innerHeight * 0.8) + 'px';
|
||||||
Math.floor(window.innerHeight * 0.8) + "px";
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
calcSearchResultExtent: function () {
|
calcSearchResultExtent: function() {
|
||||||
if (!this.showresult) {
|
if(!this.showresult) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (
|
if(this.searchoptions?.calcheightonly === undefined
|
||||||
this.searchoptions?.calcheightonly === undefined ||
|
|| this.searchoptions.calcheightonly === false) {
|
||||||
this.searchoptions.calcheightonly === false
|
|
||||||
) {
|
|
||||||
var rect = this.$refs.searchbox.getBoundingClientRect();
|
var rect = this.$refs.searchbox.getBoundingClientRect();
|
||||||
this.$refs.result.style.top =
|
this.$refs.result.style.top = Math.floor(rect.bottom + 3) + 'px';
|
||||||
Math.floor(rect.bottom + 3) + "px";
|
this.$refs.result.style.right = Math.floor(rect.right) + 'px';
|
||||||
this.$refs.result.style.right = Math.floor(rect.right) + "px";
|
this.$refs.result.style.width = Math.floor(rect.width) + 'px';
|
||||||
this.$refs.result.style.width = Math.floor(rect.width) + "px";
|
|
||||||
}
|
}
|
||||||
this.calcSearchResultHeight();
|
this.calcSearchResultHeight();
|
||||||
},
|
},
|
||||||
search: function () {
|
search: function() {
|
||||||
if (this.searchoptions?.nolivesearch === true) return;
|
if(this.searchoptions?.nolivesearch === true) return;
|
||||||
|
|
||||||
this.abort();
|
this.abort();
|
||||||
if (this.searchsettings.searchstr.length >= 2) {
|
if( this.searchsettings.searchstr.length >= 2 ) {
|
||||||
|
this.calcSearchResultExtent();
|
||||||
|
this.searchtimer = setTimeout(
|
||||||
|
this.callsearchapi,
|
||||||
|
500
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.showresult = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
abort() {
|
||||||
|
if (this.searchtimer !== null) {
|
||||||
|
clearTimeout(this.searchtimer);
|
||||||
|
}
|
||||||
|
if (this.abortController) {
|
||||||
|
this.abortController.abort();
|
||||||
|
this.abortController = null;
|
||||||
|
}
|
||||||
|
this.searchresult = [];
|
||||||
|
},
|
||||||
|
callsearchapi: function() {
|
||||||
|
this.error = null;
|
||||||
|
this.searchresult.splice(0, this.searchresult.length);
|
||||||
|
this.searching = true;
|
||||||
|
this.showsearchresult();
|
||||||
|
if(this.searchsettings.types.length === 0) {
|
||||||
|
this.error = this.$p.t('search/error_missing_type');
|
||||||
|
this.searching = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.abortController)
|
||||||
|
this.abortController.abort();
|
||||||
|
this.abortController = new AbortController();
|
||||||
|
|
||||||
|
this.searchfunction(this.searchsettings, { timeout: 50000, signal: this.abortController.signal })
|
||||||
|
.then(response=>{
|
||||||
|
if (!response.data) {
|
||||||
|
this.error = this.$p.t('search/error_general');
|
||||||
|
} else {
|
||||||
|
let res = response.data.map(el => el.data ? {...el, ...JSON.parse(el.data)} : el);
|
||||||
|
this.lastQuery = response.meta.searchstring;
|
||||||
|
if (this.searchoptions.mergeResults) {
|
||||||
|
let counter = 0;
|
||||||
|
let mergeTypes = [];
|
||||||
|
let mergedType = 'merged-';
|
||||||
|
let mergeKey = '';
|
||||||
|
|
||||||
|
switch (this.searchoptions.mergeResults) {
|
||||||
|
case 'student':
|
||||||
|
mergeTypes = ['student', 'prestudent'];
|
||||||
|
mergedType += this.searchoptions.mergeResults;
|
||||||
|
mergeKey = 'uid';
|
||||||
|
break;
|
||||||
|
case 'person':
|
||||||
|
mergeTypes = ['person', 'employee', 'student', 'prestudent'];
|
||||||
|
mergedType += this.searchoptions.mergeResults;
|
||||||
|
mergeKey = 'person_id';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mergeTypes.length) {
|
||||||
|
res = Object.values(res.reduce((a, c) => {
|
||||||
|
if (!mergeTypes.includes(c.renderer)) {
|
||||||
|
a['nomerge' + counter++] = c;
|
||||||
|
} else if (c[mergeKey] === null) {
|
||||||
|
a['nomerge' + counter++] = c;
|
||||||
|
} else if (a[c[mergeKey]] === undefined) {
|
||||||
|
a[c[mergeKey]] = {
|
||||||
|
rank: c.rank,
|
||||||
|
renderer: mergedType,
|
||||||
|
type: mergedType,
|
||||||
|
list: [c]
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
a[c[mergeKey]].list.push(c);
|
||||||
|
if (c.rank > a[c[mergeKey]].rank)
|
||||||
|
a[c[mergeKey]].rank = c.rank;
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
}, {})).sort((a, b) => b.rank - a.rank);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.searchresult = res;
|
||||||
|
this.searchmode = response.meta.mode;
|
||||||
|
}
|
||||||
|
this.searching = false;
|
||||||
|
this.retry = 0;
|
||||||
|
})
|
||||||
|
.catch(error=> {
|
||||||
|
if (error.code == "ERR_CANCELED") {
|
||||||
|
return this.retry = 0;
|
||||||
|
}
|
||||||
|
if (error.code == "ECONNABORTED" && this.retry) {
|
||||||
|
this.retry--;
|
||||||
|
return this.callsearchapi();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.error = this.$p.t('search/error_general', error);
|
||||||
|
this.searching = false;
|
||||||
|
this.retry = 0;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
refreshsearch: function() {
|
||||||
|
this.search();
|
||||||
|
this.togglesettings();
|
||||||
|
},
|
||||||
|
hideresult: function() {
|
||||||
|
this.showresult = false;
|
||||||
|
window.removeEventListener('resize', this.calcSearchResultExtent);
|
||||||
|
},
|
||||||
|
showsearchresult: function() {
|
||||||
|
if(this.searchoptions?.nolivesearch === true) return;
|
||||||
|
|
||||||
|
if( this.searchsettings.searchstr.length >= 2 ) {
|
||||||
|
this.showresult = true;
|
||||||
|
window.addEventListener('resize', this.calcSearchResultExtent);
|
||||||
this.calcSearchResultExtent();
|
this.calcSearchResultExtent();
|
||||||
this.searchtimer = setTimeout(this.callsearchapi, 500);
|
}
|
||||||
} else {
|
},
|
||||||
this.showresult = false;
|
searchfocusin: function(e) {
|
||||||
}
|
e.preventDefault();
|
||||||
},
|
e.stopPropagation();
|
||||||
abort() {
|
if( this.hidetimer !== null ) {
|
||||||
if (this.searchtimer !== null) {
|
clearTimeout(this.hidetimer);
|
||||||
clearTimeout(this.searchtimer);
|
}
|
||||||
}
|
if (this.searchsettings.searchstr.length >= 2
|
||||||
if (this.abortController) {
|
&& this.searchresult.length === 0) {
|
||||||
this.abortController.abort();
|
|
||||||
this.abortController = null;
|
|
||||||
}
|
|
||||||
this.searchresult = [];
|
|
||||||
},
|
|
||||||
callsearchapi: function () {
|
|
||||||
this.error = null;
|
|
||||||
this.searchresult.splice(0, this.searchresult.length);
|
|
||||||
this.searching = true;
|
|
||||||
this.showsearchresult();
|
|
||||||
if (this.searchsettings.types.length === 0) {
|
|
||||||
this.error = this.$p.t("search/error_missing_type");
|
|
||||||
this.searching = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.abortController) this.abortController.abort();
|
|
||||||
this.abortController = new AbortController();
|
|
||||||
|
|
||||||
this.searchfunction(this.searchsettings, {
|
|
||||||
timeout: 50000,
|
|
||||||
signal: this.abortController.signal,
|
|
||||||
})
|
|
||||||
.then((response) => {
|
|
||||||
if (!response.data) {
|
|
||||||
this.error = this.$p.t("search/error_general");
|
|
||||||
} else {
|
|
||||||
let res = response.data.map((el) =>
|
|
||||||
el.data ? { ...el, ...JSON.parse(el.data) } : el,
|
|
||||||
);
|
|
||||||
this.lastQuery = response.meta.searchstring;
|
|
||||||
if (this.searchoptions.mergeResults) {
|
|
||||||
let counter = 0;
|
|
||||||
let mergeTypes = [];
|
|
||||||
let mergedType = "merged-";
|
|
||||||
let mergeKey = "";
|
|
||||||
|
|
||||||
switch (this.searchoptions.mergeResults) {
|
|
||||||
case "student":
|
|
||||||
mergeTypes = ["student", "prestudent"];
|
|
||||||
mergedType +=
|
|
||||||
this.searchoptions.mergeResults;
|
|
||||||
mergeKey = "uid";
|
|
||||||
break;
|
|
||||||
case "person":
|
|
||||||
mergeTypes = [
|
|
||||||
"person",
|
|
||||||
"employee",
|
|
||||||
"student",
|
|
||||||
"prestudent",
|
|
||||||
];
|
|
||||||
mergedType +=
|
|
||||||
this.searchoptions.mergeResults;
|
|
||||||
mergeKey = "person_id";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mergeTypes.length) {
|
|
||||||
res = Object.values(
|
|
||||||
res.reduce((a, c) => {
|
|
||||||
if (!mergeTypes.includes(c.renderer)) {
|
|
||||||
a["nomerge" + counter++] = c;
|
|
||||||
} else if (c[mergeKey] === null) {
|
|
||||||
a["nomerge" + counter++] = c;
|
|
||||||
} else if (
|
|
||||||
a[c[mergeKey]] === undefined
|
|
||||||
) {
|
|
||||||
a[c[mergeKey]] = {
|
|
||||||
rank: c.rank,
|
|
||||||
renderer: mergedType,
|
|
||||||
type: mergedType,
|
|
||||||
list: [c],
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
a[c[mergeKey]].list.push(c);
|
|
||||||
if (c.rank > a[c[mergeKey]].rank)
|
|
||||||
a[c[mergeKey]].rank = c.rank;
|
|
||||||
}
|
|
||||||
return a;
|
|
||||||
}, {}),
|
|
||||||
).sort((a, b) => b.rank - a.rank);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.searchresult = res;
|
|
||||||
this.searchmode = response.meta.mode;
|
|
||||||
}
|
|
||||||
this.searching = false;
|
|
||||||
this.retry = 0;
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
if (error.code == "ERR_CANCELED") {
|
|
||||||
return (this.retry = 0);
|
|
||||||
}
|
|
||||||
if (error.code == "ECONNABORTED" && this.retry) {
|
|
||||||
this.retry--;
|
|
||||||
return this.callsearchapi();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.error = this.$p.t("search/error_general", error);
|
|
||||||
this.searching = false;
|
|
||||||
this.retry = 0;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
refreshsearch: function () {
|
|
||||||
this.search();
|
|
||||||
this.togglesettings();
|
|
||||||
},
|
|
||||||
hideresult: function () {
|
|
||||||
this.showresult = false;
|
|
||||||
window.removeEventListener("resize", this.calcSearchResultExtent);
|
|
||||||
},
|
|
||||||
showsearchresult: function () {
|
|
||||||
if (this.searchoptions?.nolivesearch === true) return;
|
|
||||||
|
|
||||||
if (this.searchsettings.searchstr.length >= 2) {
|
|
||||||
this.showresult = true;
|
|
||||||
window.addEventListener("resize", this.calcSearchResultExtent);
|
|
||||||
this.calcSearchResultExtent();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
searchfocusin: function (e) {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
if (this.hidetimer !== null) {
|
|
||||||
clearTimeout(this.hidetimer);
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
this.searchsettings.searchstr.length >= 2 &&
|
|
||||||
this.searchresult.length === 0
|
|
||||||
) {
|
|
||||||
this.search();
|
this.search();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
searchfocusout: function (e) {
|
searchfocusout: function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
this.hidetimer = setTimeout(this.hideresult, 100);
|
this.hidetimer = setTimeout(
|
||||||
},
|
this.hideresult,
|
||||||
dash2camelCase(string) {
|
100
|
||||||
return string.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
);
|
||||||
},
|
},
|
||||||
isValidRenderer(renderer) {
|
dash2camelCase(string) {
|
||||||
const camelCaseRenderer = this.dash2camelCase(renderer);
|
return string.replace(/-([a-z])/g, g => g[1].toUpperCase());
|
||||||
return Object.keys(this.$.components).includes(camelCaseRenderer);
|
},
|
||||||
},
|
isValidRenderer(renderer) {
|
||||||
|
const camelCaseRenderer = this.dash2camelCase(renderer);
|
||||||
|
return Object.keys(this.$.components).includes(camelCaseRenderer);
|
||||||
|
},
|
||||||
getActions(res) {
|
getActions(res) {
|
||||||
let actions =
|
let actions = this.searchoptions.actions[this.dash2camelCase(res.renderer)];
|
||||||
this.searchoptions.actions[this.dash2camelCase(res.renderer)];
|
|
||||||
if (actions) {
|
if (actions) {
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
return this.searchoptions.actions[res.type];
|
return this.searchoptions.actions[res.type];
|
||||||
},
|
}
|
||||||
getMaxWidthOfSearchbarInMobileView() {
|
}
|
||||||
// body width - hardcoded chevron width; necessary for accurate collapse transition transition
|
|
||||||
return (
|
|
||||||
document.querySelector("body").getBoundingClientRect().width -
|
|
||||||
27 +
|
|
||||||
"px"
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -705,7 +705,72 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
|||||||
}
|
}
|
||||||
echo ' </anrechnungen>';
|
echo ' </anrechnungen>';
|
||||||
|
|
||||||
|
//Berufliche Kompetenzen
|
||||||
|
$studienplan = new studienplan();
|
||||||
|
$studienplan->loadStudienplan($studienplan_id);
|
||||||
|
$regelstudiendauer = $studienplan->regelstudiendauer;
|
||||||
|
$studienplan_ects = $studienplan->ects_stpl;
|
||||||
|
$ects_berufliche_kompetenzen = 0;
|
||||||
|
|
||||||
|
//bei masterlehrgängen und $studienplan_ects >= 120 ECTS: Andruck der beruflichen Kompetenzen, wenn die Lv angerechnet wurde
|
||||||
|
//TODO(Manu) check if rule still valid
|
||||||
|
if ($row->typ == 'l' && $regelstudiendauer >= 4)
|
||||||
|
{
|
||||||
|
$ects_berufliche_kompetenzen = 0;
|
||||||
|
echo '<berufliche_kompetenzen>';
|
||||||
|
echo '<header_berufliche_kompetenz>Validierung von beruflich erworbenen Kompetenzen</header_berufliche_kompetenz>';
|
||||||
|
|
||||||
|
$qry_sem_0="
|
||||||
|
SELECT
|
||||||
|
lehrveranstaltung_id,
|
||||||
|
lehrform_kurzbz,
|
||||||
|
sws,
|
||||||
|
lehre.tbl_lehrveranstaltung.bezeichnung,
|
||||||
|
bezeichnung_english,
|
||||||
|
ects,
|
||||||
|
benotungsdatum,
|
||||||
|
note,
|
||||||
|
positiv,
|
||||||
|
offiziell,
|
||||||
|
note.anmerkung
|
||||||
|
FROM
|
||||||
|
lehre.tbl_zeugnisnote zeugnis
|
||||||
|
JOIN lehre.tbl_note note USING(note)
|
||||||
|
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||||
|
JOIN public.tbl_student student USING(student_uid)
|
||||||
|
WHERE
|
||||||
|
student_uid =".$db->db_add_param($uid_arr[$i])."
|
||||||
|
AND
|
||||||
|
lehre.tbl_lehrveranstaltung.semester = '0'
|
||||||
|
";
|
||||||
|
|
||||||
|
if($result_sem_0 = $db->db_query($qry_sem_0))
|
||||||
|
{
|
||||||
|
while ($row_sem_0 = $db->db_fetch_object($result_sem_0))
|
||||||
|
{
|
||||||
|
$benotungsdatum = $datum->formatDatum($row_sem_0->benotungsdatum, 'd/m/Y');
|
||||||
|
$note = $db->db_parse_bool($row_sem_0->offiziell) ? $row_sem_0->anmerkung : $row_sem_0->note;
|
||||||
|
$ects_berufliche_kompetenzen += $row_sem_0->ects;
|
||||||
|
|
||||||
|
echo '<lv_sem0>
|
||||||
|
<lv_id>' . $row_sem_0->lehrveranstaltung_id . '</lv_id>
|
||||||
|
<lehrform_kurzbz>' . $row_sem_0->lehrform_kurzbz . '</lehrform_kurzbz>
|
||||||
|
<bezeichnung><![CDATA[' . $row_sem_0->bezeichnung . ']]></bezeichnung>
|
||||||
|
<bezeichnung_englisch><![CDATA[' . $row_sem_0->bezeichnung_english . ']]></bezeichnung_englisch>
|
||||||
|
<sws_lv>'.$row_sem_0->sws.'</sws_lv>
|
||||||
|
<ects>'.$row_sem_0->ects.'</ects>
|
||||||
|
<note_positiv>'.$db->db_parse_bool($row_sem_0->positiv).'</note_positiv>
|
||||||
|
<note>'.$note.'</note>
|
||||||
|
<benotungsdatum>'.$benotungsdatum.'</benotungsdatum>
|
||||||
|
</lv_sem0>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '<ects_berufliche_kompetenz>'.$ects_berufliche_kompetenzen.'</ects_berufliche_kompetenz>';
|
||||||
|
echo '</berufliche_kompetenzen>';
|
||||||
|
}
|
||||||
|
|
||||||
echo "<studiensemester>";
|
echo "<studiensemester>";
|
||||||
|
|
||||||
for($start = $semesterNumberStart; $start <= $semesterNumberEnd; $start++)
|
for($start = $semesterNumberStart; $start <= $semesterNumberEnd; $start++)
|
||||||
{
|
{
|
||||||
$semester_ects = 0;
|
$semester_ects = 0;
|
||||||
@@ -728,6 +793,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
|||||||
AND zeugnis = true
|
AND zeugnis = true
|
||||||
AND status.ausbildungssemester = ".$db->db_add_param($start)."
|
AND status.ausbildungssemester = ".$db->db_add_param($start)."
|
||||||
AND status.status_kurzbz NOT IN('Unterbrecher', 'Interessent','Bewerber','Aufgenommener','Abgewiesener','Wartender')
|
AND status.status_kurzbz NOT IN('Unterbrecher', 'Interessent','Bewerber','Aufgenommener','Abgewiesener','Wartender')
|
||||||
|
--AND lehre.tbl_lehrveranstaltung.semester != '0'
|
||||||
ORDER BY datum ASC";
|
ORDER BY datum ASC";
|
||||||
|
|
||||||
$semester_kurzbz = array();
|
$semester_kurzbz = array();
|
||||||
@@ -776,6 +842,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
|||||||
WHERE
|
WHERE
|
||||||
student_uid = ".$db->db_add_param($uid_arr[$i])."
|
student_uid = ".$db->db_add_param($uid_arr[$i])."
|
||||||
AND zeugnis = true
|
AND zeugnis = true
|
||||||
|
AND lehre.tbl_lehrveranstaltung.semester != '0'
|
||||||
AND studiensemester_kurzbz in (".$sqlStudent->implode4SQL($aktuellesSemester).")";
|
AND studiensemester_kurzbz in (".$sqlStudent->implode4SQL($aktuellesSemester).")";
|
||||||
|
|
||||||
if (defined('ZEUGNISNOTE_NICHT_ANZEIGEN'))
|
if (defined('ZEUGNISNOTE_NICHT_ANZEIGEN'))
|
||||||
@@ -1134,10 +1201,19 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<ects_gesamt>'.$semester_ects.'</ects_gesamt>';
|
echo '<ects_gesamt>'.$semester_ects.'</ects_gesamt>';
|
||||||
echo '<ects_gesamt_positiv>'.$semester_ects_positiv.'</ects_gesamt_positiv>';
|
echo '<ects_gesamt_positiv>'.$semester_ects_positiv.'</ects_gesamt_positiv>';
|
||||||
echo "</semesters>";
|
echo "</semesters>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO(Manu) check if rule still valid
|
||||||
|
if ($row->typ == 'l' && $regelstudiendauer >= 4)
|
||||||
|
{
|
||||||
|
$ects_total += $ects_berufliche_kompetenzen;
|
||||||
|
$ects_total_positiv += $ects_berufliche_kompetenzen;
|
||||||
|
}
|
||||||
|
|
||||||
echo "</studiensemester>";
|
echo "</studiensemester>";
|
||||||
echo " <ects_total>$ects_total</ects_total>";
|
echo " <ects_total>$ects_total</ects_total>";
|
||||||
echo " <ects_total_positiv>$ects_total_positiv</ects_total_positiv>";
|
echo " <ects_total_positiv>$ects_total_positiv</ects_total_positiv>";
|
||||||
|
|||||||
+3
-3
@@ -450,18 +450,18 @@ td.MarkLine
|
|||||||
td.HeaderTesttool /*fuer die Button-Optik beim Testtool*/
|
td.HeaderTesttool /*fuer die Button-Optik beim Testtool*/
|
||||||
{
|
{
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
background-color: #00639C;
|
background-color: #71787D;
|
||||||
white-space:nowrap;
|
white-space:nowrap;
|
||||||
line-height: 25px;
|
line-height: 25px;
|
||||||
box-shadow: inset 0 0 2px #FFFFFF;
|
box-shadow: inset 0 0 2px #FFFFFF;
|
||||||
padding: 10px;
|
padding: 0 10px;
|
||||||
width: 170px;
|
width: 170px;
|
||||||
}
|
}
|
||||||
td.HeaderTesttoolSTG /*fuer die Button-Optik der Quereinstiegs-Studiengänge beim Testtool*/
|
td.HeaderTesttoolSTG /*fuer die Button-Optik der Quereinstiegs-Studiengänge beim Testtool*/
|
||||||
{
|
{
|
||||||
color: white;
|
color: white;
|
||||||
border: 2px solid #73a9d6;
|
border: 2px solid #73a9d6;
|
||||||
padding: 10px;
|
padding: 0 10px;
|
||||||
max-width: 100px;
|
max-width: 100px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ require_once('dbupdate_3.4/71399_dashboard_update_widget_paths.php');
|
|||||||
require_once('dbupdate_3.4/71645_studvw_messagetab_ladezeit.php');
|
require_once('dbupdate_3.4/71645_studvw_messagetab_ladezeit.php');
|
||||||
require_once('dbupdate_3.4/71566_studienordnungsdokument_neuer_organisationseinheitstyp_programm.php');
|
require_once('dbupdate_3.4/71566_studienordnungsdokument_neuer_organisationseinheitstyp_programm.php');
|
||||||
require_once('dbupdate_3.4/70376_lohnguide.php');
|
require_once('dbupdate_3.4/70376_lohnguide.php');
|
||||||
|
require_once('dbupdate_3.4/75888_reihungstest_mehrfachdurchfuehrung.php');
|
||||||
|
|
||||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_lohnguide_jobfamilie TO vilesc
|
|||||||
|
|
||||||
INSERT INTO hr.tbl_lohnguide_jobfamilie(jobfamilie_kurzbz, bezeichnung,aktiv, sort, insertvon, insertamum) VALUES
|
INSERT INTO hr.tbl_lohnguide_jobfamilie(jobfamilie_kurzbz, bezeichnung,aktiv, sort, insertvon, insertamum) VALUES
|
||||||
('FÜHRUNG','Führung',true,1,'system',NOW()),
|
('FÜHRUNG','Führung',true,1,'system',NOW()),
|
||||||
('ALLGEMEIN','Allgemein',true,2,'system',NOW()),
|
('AKADEMIA','Akademia',true,2,'system',NOW()),
|
||||||
('TECHNIK','Technik',true,3,'system',NOW()),
|
('VERWALTUNG','Verwaltung',true,3,'system',NOW()),
|
||||||
('IT','IT',true,4,'system',NOW()),
|
('TECHNIK','Technik',true,4,'system',NOW()),
|
||||||
('PRODUKTION','Produktion',true,5,'system',NOW()),
|
('IT_SOFTWARE','IT & Software',true,5,'system',NOW()),
|
||||||
('HANDW_IH_LOG','Handwerk, Instandhaltung + Logistik',true,6,'system',NOW())
|
('TECHN_DIENSTE','Technische Dienste',true,6,'system',NOW())
|
||||||
ON CONFLICT (jobfamilie_kurzbz) DO NOTHING;
|
ON CONFLICT (jobfamilie_kurzbz) DO NOTHING;
|
||||||
";
|
";
|
||||||
|
|
||||||
@@ -59,38 +59,33 @@ CREATE TABLE IF NOT EXISTS hr.tbl_lohnguide_modellfunktion (
|
|||||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_lohnguide_modellfunktion TO vilesci;
|
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_lohnguide_modellfunktion TO vilesci;
|
||||||
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellfunktion(modellfunktion_kurzbz, bezeichnung, jobfamilie_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
INSERT INTO hr.tbl_lohnguide_modellfunktion(modellfunktion_kurzbz, bezeichnung, jobfamilie_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
||||||
('FÜHRUNG_I','Führung I','FÜHRUNG',true,1,'system',NOW()),
|
('ABTEILUNGSLEITUNG','Abteilungsleitung','FÜHRUNG',true,1,'system',NOW()),
|
||||||
('FÜHRUNG_II','Führung I','FÜHRUNG',true,2,'system',NOW()),
|
('GF','Geschäftsführung','FÜHRUNG',true,2,'system',NOW()),
|
||||||
('FÜHRUNG_III','Führung I','FÜHRUNG',true,3,'system',NOW()),
|
('KOMPETENZFELDLEITER','Kompetenzfeldleiter*in','FÜHRUNG',true,3,'system',NOW()),
|
||||||
('GF','Geschäftsführung','FÜHRUNG',true,4,'system',NOW()),
|
('DEPARTMENTSLEITER','Departmentsleiter*in','FÜHRUNG',true,4,'system',NOW()),
|
||||||
/* Allgemein */
|
('FAKULTÄTSLEITER','Fakultätsleiter*in','FÜHRUNG',true,5,'system',NOW()),
|
||||||
('FK_ALLGM','Fachkraft Allgemein','ALLGEMEIN',true,5,'system',NOW()),
|
/* Akademia */
|
||||||
('SFK_ALLGM','Spezial-Fachkraft Allgemein','ALLGEMEIN',true,6,'system',NOW()),
|
('STUDENTISCHE_MA','Studentische MA','AKADEMIA',true,6,'system',NOW()),
|
||||||
('SP_ALLGM','Spezialist:in Allgemein','ALLGEMEIN',true,7,'system',NOW()),
|
('JUNIOR_LEC_RES','Junior Lecturer/Researcher','AKADEMIA',true,7,'system',NOW()),
|
||||||
('EXP_ALLGM','Expert:in Allgemein','ALLGEMEIN',true,8,'system',NOW()),
|
('LEC_RES','Lecturer/Researcher','AKADEMIA',true,8,'system',NOW()),
|
||||||
('TOP_EXP_ALLGM','Top-Expert:in Allgemein','ALLGEMEIN',true,9,'system',NOW()),
|
('SEN_LEC_RES','Senior Lecturer/Researcher','AKADEMIA',true,9,'system',NOW()),
|
||||||
|
('STUDIENGANGSLEITUNG','Studiengangsleitung','AKADEMIA',true,10,'system',NOW()),
|
||||||
|
/* Verwaltung */
|
||||||
|
('FK_VERWALTUNG','Fachkraft Verwaltung','VERWALTUNG',true,11,'system',NOW()),
|
||||||
|
('SFK_VERWALTUNG','Spezial-Fachkraft Verwaltung','VERWALTUNG',true,12,'system',NOW()),
|
||||||
|
('SP_VERWALTUNG','Spezialist:in Verwaltung','VERWALTUNG',true,13,'system',NOW()),
|
||||||
|
('EXP_VERWALTUNG','Expert:in Verwaltung','VERWALTUNG',true,14,'system',NOW()),
|
||||||
/* Technik */
|
/* Technik */
|
||||||
('FK_TECH','Fachkraft Technik','TECHNIK',true,10,'system',NOW()),
|
('FK_TECHNIK','Fachkraft Technik','TECHNIK',true,15,'system',NOW()),
|
||||||
('SFK_TECH','Spezial-Fachkraft Technik','TECHNIK',true,11,'system',NOW()),
|
/* IT & Software */
|
||||||
('SP_TECH','Spezialist:in Technik','TECHNIK',true,12,'system',NOW()),
|
('FK_IT','Fachkraft IT & Software','IT_SOFTWARE',true,16,'system',NOW()),
|
||||||
('EXP_TECH','Expert:in Technik','TECHNIK',true,13,'system',NOW()),
|
('SFK_IT','Spezial-Fachkraft IT & Software','IT_SOFTWARE',true,17,'system',NOW()),
|
||||||
('TOP_EXP_TECH','Top-Expert:in Technik','TECHNIK',true,14,'system',NOW()),
|
('SP_IT','Spezialist:in IT & Software','IT_SOFTWARE',true,18,'system',NOW()),
|
||||||
/* IT */
|
('EXP_IT','Expert:in IT & Software','IT_SOFTWARE',true,19,'system',NOW()),
|
||||||
('FK_IT','Fachkraft IT','IT',true,15,'system',NOW()),
|
/* Technische Dienste */
|
||||||
('SFK_IT','Spezial-Fachkraft IT','IT',true,16,'system',NOW()),
|
('HK_TECHN_DIENSTE','Hilfskraft Technische Dienste','TECHN_DIENSTE',true,20,'system',NOW()),
|
||||||
('SP_IT','Spezialist:in IT','IT',true,17,'system',NOW()),
|
('FK_TECHN_DIENSTE','Fachkraft Technische Dienste','TECHN_DIENSTE',true,21,'system',NOW()),
|
||||||
('EXP_IT','Expert:in IT','IT',true,18,'system',NOW()),
|
('SFK_TECHN_DIENSTE','Spezial-Fachkraft Technische Dienste','TECHN_DIENSTE',true,22,'system',NOW())
|
||||||
('TOP_EXP_IT','Top-Expert:in IT','IT',true,19,'system',NOW()),
|
|
||||||
/* Produktion */
|
|
||||||
('HK_PROD','Hilfskraft Produktion','PRODUKTION',true,20,'system',NOW()),
|
|
||||||
('FK_PROD','Fachkraft Produktion','PRODUKTION',true,21,'system',NOW()),
|
|
||||||
('SFK_PROD','Spezial-Fachkraft Produktion','PRODUKTION',true,22,'system',NOW()),
|
|
||||||
('SP_PROD','Spezialist:in Produktion','PRODUKTION',true,23,'system',NOW()),
|
|
||||||
/* Handwerk, Instandhaltung, Logistik */
|
|
||||||
('HK_HIL','Hilfskraft Handwerk, Instandhaltung + Logistik','HANDW_IH_LOG',true,24,'system',NOW()),
|
|
||||||
('FK_HIL','Fachkraft Handwerk, Instandhaltung + Logistik','HANDW_IH_LOG',true,25,'system',NOW()),
|
|
||||||
('SFK_HIL','Spezial-Fachkraft Handwerk, Instandhaltung + Logistik','HANDW_IH_LOG',true,26,'system',NOW()),
|
|
||||||
('SP_HIL','Spezialist:in Handwerk, Instandhaltung + Logistik','HANDW_IH_LOG',true,27,'system',NOW())
|
|
||||||
ON CONFLICT (modellfunktion_kurzbz) DO NOTHING;
|
ON CONFLICT (modellfunktion_kurzbz) DO NOTHING;
|
||||||
|
|
||||||
|
|
||||||
@@ -111,6 +106,7 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table
|
|||||||
CREATE TABLE IF NOT EXISTS hr.tbl_lohnguide_modellstelle (
|
CREATE TABLE IF NOT EXISTS hr.tbl_lohnguide_modellstelle (
|
||||||
modellstelle_kurzbz character varying(32) NOT NULL,
|
modellstelle_kurzbz character varying(32) NOT NULL,
|
||||||
bezeichnung varchar(128) NOT NULL,
|
bezeichnung varchar(128) NOT NULL,
|
||||||
|
code character varying(32) NOT NULL,
|
||||||
grade int NOT NULL,
|
grade int NOT NULL,
|
||||||
modellfunktion_kurzbz character varying(32) NOT NULL,
|
modellfunktion_kurzbz character varying(32) NOT NULL,
|
||||||
aktiv boolean DEFAULT FALSE,
|
aktiv boolean DEFAULT FALSE,
|
||||||
@@ -125,132 +121,94 @@ CREATE TABLE IF NOT EXISTS hr.tbl_lohnguide_modellstelle (
|
|||||||
|
|
||||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_lohnguide_modellstelle TO vilesci;
|
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_lohnguide_modellstelle TO vilesci;
|
||||||
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('111','Führung III 1/5',9,'FÜHRUNG_III',true,13,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('112','Führung III 2/5',10,'FÜHRUNG_III',true,14,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('113','Führung III 3/5',11,'FÜHRUNG_III',true,15,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('114','Führung III 4/5',12,'FÜHRUNG_III',true,16,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('115','Führung III 5/5',13,'FÜHRUNG_III',true,17,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('121','Führung II 1/4',14,'FÜHRUNG_II',true,7,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('122a','Führung II 2a/4',15,'FÜHRUNG_II',true,8,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('122b','Führung II 2b/4',15,'FÜHRUNG_II',true,9,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('123a','Führung II 3a/4',16,'FÜHRUNG_II',true,10,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('123b','Führung II 3b/4',16,'FÜHRUNG_II',true,11,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('124','Führung II 4/4',17,'FÜHRUNG_II',true,12,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('131','Führung I 1/4',18,'FÜHRUNG_I',true,1,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('132a','Führung I 2a/4',19,'FÜHRUNG_I',true,2,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('132b','Führung I 2b/4',19,'FÜHRUNG_I',true,3,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('133a','Führung I 3a/4',20,'FÜHRUNG_I',true,4,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('133b','Führung I 3b/4',20,'FÜHRUNG_I',true,5,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('134','Führung I 4/4',21,'FÜHRUNG_I',true,6,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
|
|
||||||
-- GF
|
-- FÜHRUNG
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('141','Geschäftsführung 1/5',22,'GF',true,18,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz,bezeichnung, code, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('142a','Geschäftsführung 2a/5',23,'GF',true,19,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('ABTL_1_4', 'Abteilungsleitung 1/4', '111', 16, 'ABTEILUNGSLEITUNG', true, 1, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('142b','Geschäftsführung 2b/5',23,'GF',true,20,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('ABTL_2A_4', 'Abteilungsleitung 2a/4', '112a', 17, 'ABTEILUNGSLEITUNG', true, 2, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('143a','Geschäftsführung 3a/5',24,'GF',true,21,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('ABTL_2B_4', 'Abteilungsleitung 2b/4', '112b', 17, 'ABTEILUNGSLEITUNG', true, 3, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('143b','Geschäftsführung 3b/5',24,'GF',true,22,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('ABTL_3A_4', 'Abteilungsleitung 3a/4', '113a', 18, 'ABTEILUNGSLEITUNG', true, 4, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('144a','Geschäftsführung 4a/5',25,'GF',true,23,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('ABTL_3B_4', 'Abteilungsleitung 3b/4', '113b', 18, 'ABTEILUNGSLEITUNG', true, 5, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('144b','Geschäftsführung 4b/5',25,'GF',true,24,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('ABTL_4_4', 'Abteilungsleitung 4/4', '114', 19, 'ABTEILUNGSLEITUNG', true, 6, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('145','Geschäftsführung 5/5',26,'GF',true,25,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('GF_1_2', 'Geschäftsführung 1/2', '121', 22, 'GF', true, 7, 'system', NOW()),
|
||||||
|
('GF_2_2', 'Geschäftsführung 2/2', '122', 23, 'GF', true, 8, 'system', NOW()),
|
||||||
|
('KOMFL_1_1', 'Kompetenzfeldleiter*in 1/1', '131', 15, 'KOMPETENZFELDLEITER', true, 9, 'system', NOW()),
|
||||||
|
('DEPL_1_1', 'Departmentleiter*in 1/1', '141', 18, 'DEPARTMENTSLEITER', true, 10, 'system', NOW()),
|
||||||
|
('FAKL_1_1', 'Fakultätsleiter*in 1/1', '151', 20, 'FAKULTÄTSLEITER', true, 11, 'system', NOW())
|
||||||
|
ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
||||||
|
|
||||||
-- Allgemein
|
-- AKADEMIA
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('211','Fachkraft Allgemein 1/3',4,'FK_ALLGM',true,26,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, code, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('212a','Fachkraft Allgemein 2a/3',5,'FK_ALLGM',true,27,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('STUDENTISCHE_MA_1_1', 'Studentische MA 1/1', '211', 5, 'STUDENTISCHE_MA', true, 12, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('212b','Fachkraft Allgemein 2b/3',5,'FK_ALLGM',true,28,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('JUNIOR_LEC_RES_1_2', 'Junior Lecturer/Researcher 1/2', '221', 8, 'JUNIOR_LEC_RES', true, 13, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('213','Fachkraft Allgemein 3/3',6,'FK_ALLGM',true,29,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('JUNIOR_LEC_RES_2_2', 'Junior Lecturer/Researcher 2/2', '222', 9, 'JUNIOR_LEC_RES', true, 14, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('221','Spezial-Fachkraft Allgemein 1/4', 7,'SFK_ALLGM',true,30,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('LEC_RES_1_2', 'Lecturer/Researcher 1/2', '231', 11, 'LEC_RES', true, 15, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('222a','Spezial-Fachkraft Allgemein 2a/4',8,'SFK_ALLGM',true,31,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('LEC_RES_2_2', 'Lecturer/Researcher 2/2', '232', 12, 'LEC_RES', true, 16, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('222b','Spezial-Fachkraft Allgemein 2b/4',8,'SFK_ALLGM',true,32,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SEN_LEC_RES_1_2', 'Senior Lecturer/Researcher 1/2', '241', 13, 'SEN_LEC_RES', true, 17, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('223a','Spezial-Fachkraft Allgemein 3a/4',9,'SFK_ALLGM',true,33,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SEN_LEC_RES_2_2', 'Senior Lecturer/Researcher 2/2', '242', 14, 'SEN_LEC_RES', true, 18, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('223b','Spezial-Fachkraft Allgemein 3b/4',9,'SFK_ALLGM',true,34,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('STGL_1_2', 'Studiengangsleitung 1/2', '251', 15, 'STUDIENGANGSLEITUNG', true, 19, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('224','Spezial-Fachkraft Allgemein 4/4',10,'SFK_ALLGM',true,35,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('STGL_2_2', 'Studiengangsleitung 2/2', '252', 16, 'STUDIENGANGSLEITUNG', true, 20, 'system', NOW())
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('231','Spezialist:in Allgemein 1/4',11,'SP_ALLGM',true,36,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('232a','Spezialist:in Allgemein 2a/4',12,'SP_ALLGM',true,37,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('232b','Spezialist:in Allgemein 2b/4',12,'SP_ALLGM',true,38,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('233a','Spezialist:in Allgemein 3a/4',13,'SP_ALLGM',true,39,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('233b','Spezialist:in Allgemein 3b/4',13,'SP_ALLGM',true,40,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('234','Spezialist:in Allgemein 4/4',14,'SP_ALLGM',true,41,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('241','Expert:in Allgemein 1/4',15,'EXP_ALLGM',true,42,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('242a','Expert:in Allgemein 2a/4',16,'EXP_ALLGM',true,43,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('242b','Expert:in Allgemein 2b/4',16,'EXP_ALLGM',true,44,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('243a','Expert:in Allgemein 3a/4',17,'EXP_ALLGM',true,45,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('243b','Expert:in Allgemein 3b/4',17,'EXP_ALLGM',true,46,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('244','Expert:in Allgemein 4/4',18,'EXP_ALLGM',true,47,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('251','Top-Expert:in Allgemein 1/1',19,'TOP_EXP_ALLGM',true,48,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
|
|
||||||
-- Technik
|
-- VERWALTUNG
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('311','Fachkraft Technik 1/3',4,'FK_TECH',true,49,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, code, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('312a','Fachkraft Technik 2a/3',5,'FK_TECH',true,50,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_VERWALTUNG_1_3', 'Fachkraft Verwaltung 1/3', '311', 4, 'FK_VERWALTUNG', true, 21, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('312b','Fachkraft Technik 2b/3',5,'FK_TECH',true,51,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_VERWALTUNG_2A_3', 'Fachkraft Verwaltung 2a/3', '312a', 5, 'FK_VERWALTUNG', true, 22, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('313','Fachkraft Technik 3/3',6,'FK_TECH',true,52,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_VERWALTUNG_2B_3', 'Fachkraft Verwaltung 2b/3', '312b', 5, 'FK_VERWALTUNG', true, 23, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('321','Spezial-Fachkraft Technik 1/4',7,'SFK_TECH',true,53,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_VERWALTUNG_3_3', 'Fachkraft Verwaltung 3/3', '313', 6, 'FK_VERWALTUNG', true, 24, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('322a','Spezial-Fachkraft Technik 2a/4',8,'SFK_TECH',true,54,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_VERWALTUNG_1_4', 'Spezial-Fachkraft Verwaltung 1/4', '321', 7, 'SFK_VERWALTUNG', true, 25, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('322b','Spezial-Fachkraft Technik 2b/4',8,'SFK_TECH',true,55,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_VERWALTUNG_2A_4', 'Spezial-Fachkraft Verwaltung 2a/4', '322a', 8, 'SFK_VERWALTUNG', true, 26, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('323a','Spezial-Fachkraft Technik 3a/4',9,'SFK_TECH',true,56,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_VERWALTUNG_2B_4', 'Spezial-Fachkraft Verwaltung 2b/4', '322b', 8, 'SFK_VERWALTUNG', true, 27, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('323b','Spezial-Fachkraft Technik 3b/4',9,'SFK_TECH',true,57,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_VERWALTUNG_3A_4', 'Spezial-Fachkraft Verwaltung 3a/4', '323a', 9, 'SFK_VERWALTUNG', true, 28, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('324','Spezial-Fachkraft Technik 4/4',10,'SFK_TECH',true,58,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_VERWALTUNG_3B_4', 'Spezial-Fachkraft Verwaltung 3b/4', '323b', 9, 'SFK_VERWALTUNG', true, 29, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('331','Spezialist:in Technik 1/4',11,'SP_TECH',true,59,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_VERWALTUNG_4_4', 'Spezial-Fachkraft Verwaltung 4/4', '324', 10, 'SFK_VERWALTUNG', true, 30, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('332a','Spezialist:in Technik 2a/4',12,'SP_TECH',true,60,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_VERWATLTUNG_1_4', 'Spezialist:in Verwaltung 1/4', '331', 11, 'SP_VERWALTUNG', true, 31, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('332b','Spezialist:in Technik 2b/4',12,'SP_TECH',true,61,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_VERWATLTUNG_2A_4', 'Spezialist:in Verwaltung 2a/4', '332a', 12, 'SP_VERWALTUNG', true, 32, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('333a','Spezialist:in Technik 3a/4',13,'SP_TECH',true,62,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_VERWATLTUNG_2B_4', 'Spezialist:in Verwaltung 2b/4', '332b', 12, 'SP_VERWALTUNG', true, 33, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('333b','Spezialist:in Technik 3b/4',13,'SP_TECH',true,63,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_VERWATLTUNG_3A_4', 'Spezialist:in Verwaltung 3a/4', '333a', 13, 'SP_VERWALTUNG', true, 34, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('334','Spezialist:in Technik 4/4',14,'SP_TECH',true,64,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_VERWATLTUNG_3B_4', 'Spezialist:in Verwaltung 3b/4', '333b', 13, 'SP_VERWALTUNG', true, 35, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('341','Expert:in Technik 1/4',15,'EXP_TECH',true,65,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_VERWATLTUNG_4_4', 'Spezialist:in Verwaltung 4/4', '334', 14, 'SP_VERWALTUNG', true, 36, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('342a','Expert:in Technik 2a/4',16,'EXP_TECH',true,66,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('EXP_VERWALTUNG_1_1', 'Expert:in Verwaltung 1/1', '341', 15, 'EXP_VERWALTUNG', true, 37, 'system', NOW())
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('342b','Expert:in Technik 2b/4',16,'EXP_TECH',true,67,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('343a','Expert:in Technik 3a/4',17,'EXP_TECH',true,68,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('343b','Expert:in Technik 3b/4',17,'EXP_TECH',true,69,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('344','Expert:in Technik 4/4',18,'EXP_TECH',true,70,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('351','Top-Expert:in Technik 1/1',19,'TOP_EXP_TECH',true,71,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
|
|
||||||
-- IT
|
-- TECHNIK
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('411','Fachkraft IT 1/2',5,'FK_IT',true,72,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, code, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('412','Fachkraft IT 2/2',6,'FK_IT',true,73,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_TECHNIK_1_3', 'Fachkraft Technik 1/3', '311', 4, 'FK_TECHNIK', true, 38, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('421','Spezial-Fachkraft IT 1/4',7,'SFK_IT',true,74,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_TECHNIK_2a_3', 'Fachkraft Technik 2a/3', '312a', 5, 'FK_TECHNIK', true, 39, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('422','Spezial-Fachkraft IT 2/4',8,'SFK_IT',true,75,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_TECHNIK_2b_3','Fachkraft Technik 2b/3', '312b', 5, 'FK_TECHNIK', true, 40, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('423','Spezial-Fachkraft IT 3/4',9,'SFK_IT',true,76,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_TECHNIK_3_3', 'Fachkraft Technik 3/3', '313', 6, 'FK_TECHNIK', true, 41, 'system', NOW())
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('424','Spezial-Fachkraft IT 4/4',10,'SFK_IT',true,77,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('431','Spezialist:in IT 1/4',11,'SP_IT',true,78,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('432a','Spezialist:in IT 2a/4',12,'SP_IT',true,79,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('432b','Spezialist:in IT 2b/4',12,'SP_IT',true,80,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('433a','Spezialist:in IT 3a/4',13,'SP_IT',true,81,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('433b','Spezialist:in IT 3b/4',13,'SP_IT',true,82,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('434','Spezialist:in IT 4/4',14,'SP_IT',true,83,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('441','Expert:in IT 1/4',15,'EXP_IT',true,84,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('442','Expert:in IT 2/4',16,'EXP_IT',true,85,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('443','Expert:in IT 3/4',17,'EXP_IT',true,86,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('444','Expert:in IT 4/4',18,'EXP_IT',true,87,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('451','Top-Expert:in IT 1/1',19,'TOP_EXP_IT',true,88,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
|
|
||||||
-- Produktion
|
-- IT & Software
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('511','Hilfskraft Produktion 1/4',1,'HK_PROD',true,89,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, code, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('512','Hilfskraft Produktion 2/4',2,'HK_PROD',true,90,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_IT_1_2', 'Fachkraft IT & Software 1/2', '411', 5, 'FK_IT', true, 42, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('513','Hilfskraft Produktion 3/4',3,'HK_PROD',true,91,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_IT_2_2', 'Fachkraft IT & Software 2/2', '412', 6, 'FK_IT', true, 43, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('514','Hilfskraft Produktion 4/4',4,'HK_PROD',true,92,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_IT_1_4', 'Spezial-Fachkraft IT & Software 1/4', '421', 7, 'SFK_IT', true, 44, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('521','Fachkraft Produktion 1/2',5,'FK_PROD',true,93,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_IT_2_4', 'Spezial-Fachkraft IT & Software 2/4', '422', 8, 'SFK_IT', true, 45, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('522','Fachkraft Produktion 2/2',6,'FK_PROD',true,94,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_IT_3_4', 'Spezial-Fachkraft IT & Software 3/4', '423', 9, 'SFK_IT', true, 46, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('531','Spezial-Fachkraft Produktion 1/4',7,'SFK_PROD',true,95,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_IT_4_4', 'Spezial-Fachkraft IT & Software 4/4', '424', 10, 'SFK_IT', true, 47, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('532','Spezial-Fachkraft Produktion 2/4',8,'SFK_PROD',true,96,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_IT_1_4', 'Spezialist:in IT & Software 1/4', '431', 11, 'SP_IT', true, 48, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('533','Spezial-Fachkraft Produktion 3/4',9,'SFK_PROD',true,97,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_IT_2A_4', 'Spezialist:in IT & Software 2a/4', '432a', 12, 'SP_IT', true, 49, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('534','Spezial-Fachkraft Produktion 4/4',10,'SFK_PROD',true,98,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_IT_2B_4', 'Spezialist:in IT & Software 2b/4', '432b', 12, 'SP_IT', true, 50, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('541','Spezialist:in Produktion 1/4',11,'SP_PROD',true,99,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_IT_3A_4', 'Spezialist:in IT & Software 3a/4', '433a', 13, 'SP_IT', true, 51, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('542a','Spezialist:in Produktion 2a/4',12,'SP_PROD',true,100,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_IT_3B_4', 'Spezialist:in IT & Software 3b/4', '433b', 13, 'SP_IT', true, 52, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('542b','Spezialist:in Produktion 2b/4',12,'SP_PROD',true,101,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SP_IT_4_4', 'Spezialist:in IT & Software 4/4', '434', 14, 'SP_IT', true, 53, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('543a','Spezialist:in Produktion 3a/4',13,'SP_PROD',true,102,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('EXP_IT_1_1', 'Expert:in IT & Software 1/1', '441', 15, 'EXP_IT', true, 54, 'system', NOW())
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('543b','Spezialist:in Produktion 3b/4',13,'SP_PROD',true,103,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('544','Spezialist:in Produktion 4/4',14,'SP_PROD',true,104,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
|
||||||
|
|
||||||
-- Handwerk, Logistik, ..
|
-- TECHNISCHE DIENSTE
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('611','Hilfskraft Handwerk, Instandhaltung + Logistik 1/4',1,'HK_HIL',true,105,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, code, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('612','Hilfskraft Handwerk, Instandhaltung + Logistik 2/4',2,'HK_HIL',true,106,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('HK_TECHN_DIENSTE_1_4', 'Hilfskraft Technische Dienste 1/4', '511', 1, 'HK_TECHN_DIENSTE', true, 55, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('613','Hilfskraft Handwerk, Instandhaltung + Logistik 3/4',3,'HK_HIL',true,107,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('HK_TECHN_DIENSTE_2_4', 'Hilfskraft Technische Dienste 2/4', '512', 2, 'HK_TECHN_DIENSTE', true, 56, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('614','Hilfskraft Handwerk, Instandhaltung + Logistik 4/4',4,'HK_HIL',true,108,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('HK_TECHN_DIENSTE_3_4', 'Hilfskraft Technische Dienste 3/4', '513', 3, 'HK_TECHN_DIENSTE', true, 57, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('621','Fachkraft Handwerk, Instandhaltung + Logistik 1/2',5,'FK_HIL',true,109,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('HK_TECHN_DIENSTE_4_4', 'Hilfskraft Technische Dienste 4/4', '514', 4, 'HK_TECHN_DIENSTE', true, 58, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('622','Fachkraft Handwerk, Instandhaltung + Logistik 2/2',6,'FK_HIL',true,110,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_TECHN_DIENSTE_1_2', 'Fachkraft Technische Dienste 1/2', '521', 5, 'FK_TECHN_DIENSTE', true, 59, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('631','Spezial-Fachkraft Handwerk, Instandhaltung + Logistik 1/4',7,'SFK_HIL',true,111,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('FK_TECHN_DIENSTE_2_2', 'Fachkraft Technische Dienste 2/2', '522', 6, 'FK_TECHN_DIENSTE', true, 60, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('632','Spezial-Fachkraft Handwerk, Instandhaltung + Logistik 2/4',8,'SFK_HIL',true,112,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_TECHN_DIENSTE_1_4', 'Spezial-Fachkraft Technische Dienste 1/4', '531', 7, 'SFK_TECHN_DIENSTE', true, 61, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('633','Spezial-Fachkraft Handwerk, Instandhaltung + Logistik 3/4',9,'SFK_HIL',true,113,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_TECHN_DIENSTE_2_4', 'Spezial-Fachkraft Technische Dienste 2/4', '532', 8, 'SFK_TECHN_DIENSTE', true, 62, 'system', NOW()),
|
||||||
INSERT INTO hr.tbl_lohnguide_modellstelle(modellstelle_kurzbz, bezeichnung, grade, modellfunktion_kurzbz, aktiv, sort, insertvon, insertamum) VALUES('634','Spezial-Fachkraft Handwerk, Instandhaltung + Logistik 4/4',10,'SFK_HIL',true,114,'system',NOW()) ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
('SFK_TECHN_DIENSTE_3_4', 'Spezial-Fachkraft Technische Dienste 3/4', '533', 9, 'SFK_TECHN_DIENSTE', true, 63, 'system', NOW()),
|
||||||
|
('SFK_TECHN_DIENSTE_4_4', 'Spezial-Fachkraft Technische Dienste 4/4', '534', 10, 'SFK_TECHN_DIENSTE', true, 64, 'system', NOW())
|
||||||
|
ON CONFLICT (modellstelle_kurzbz) DO NOTHING;
|
||||||
|
|
||||||
";
|
";
|
||||||
|
|
||||||
@@ -280,16 +238,7 @@ CREATE TABLE IF NOT EXISTS hr.tbl_lohnguide_fachrichtung (
|
|||||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_lohnguide_fachrichtung TO vilesci;
|
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_lohnguide_fachrichtung TO vilesci;
|
||||||
|
|
||||||
INSERT INTO hr.tbl_lohnguide_fachrichtung(fachrichtung_kurzbz,bezeichnung,aktiv,insertvon,insertamum) VALUES
|
INSERT INTO hr.tbl_lohnguide_fachrichtung(fachrichtung_kurzbz,bezeichnung,aktiv,insertvon,insertamum) VALUES
|
||||||
('FA00','Keine Berücksichtigung',true,'system',NOW()),
|
('FA00','Keine Berücksichtigung',true,'system',NOW())
|
||||||
('FA01','Administration allgemein',true,'system',NOW()),
|
|
||||||
('FA02','Dienste Infrastruktur',true,'system',NOW()),
|
|
||||||
('FA03','Finanzwesen & Controlling',true,'system',NOW()),
|
|
||||||
('FA04','IT',true,'system',NOW()),
|
|
||||||
('FA05','Logistik',true,'system',NOW()),
|
|
||||||
('FA06','Marketing & Digitales Marketing',true,'system',NOW()),
|
|
||||||
('FA07','Produktion',true,'system',NOW()),
|
|
||||||
('FA08','Technik',true,'system',NOW()),
|
|
||||||
('FA09','Verkauf',true,'system',NOW())
|
|
||||||
ON CONFLICT (fachrichtung_kurzbz) DO NOTHING;
|
ON CONFLICT (fachrichtung_kurzbz) DO NOTHING;
|
||||||
|
|
||||||
";
|
";
|
||||||
@@ -298,6 +247,7 @@ ON CONFLICT (fachrichtung_kurzbz) DO NOTHING;
|
|||||||
echo '<strong>Lohnguide Fachrichtung: ' . $db->db_last_error() . '</strong><br>';
|
echo '<strong>Lohnguide Fachrichtung: ' . $db->db_last_error() . '</strong><br>';
|
||||||
else
|
else
|
||||||
echo 'hr.tbl_lohnguide_fachrichtung wurde neu erstellt<br>';
|
echo 'hr.tbl_lohnguide_fachrichtung wurde neu erstellt<br>';
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,8 +264,8 @@ CREATE TABLE IF NOT EXISTS hr.tbl_vertragsbestandteil_lohnguide (
|
|||||||
stellenbezeichnung varchar(255),
|
stellenbezeichnung varchar(255),
|
||||||
fachrichtung_kurzbz character varying(32) NOT NULL,
|
fachrichtung_kurzbz character varying(32) NOT NULL,
|
||||||
modellstelle_kurzbz character varying(32) NOT NULL,
|
modellstelle_kurzbz character varying(32) NOT NULL,
|
||||||
kommentar_person varchar(255),
|
kommentar_person text,
|
||||||
kommentar_modellstelle varchar(255),
|
kommentar_modellstelle text,
|
||||||
CONSTRAINT tbl_vertragsbestandteil_lohnguide_pk PRIMARY KEY (vertragsbestandteil_id),
|
CONSTRAINT tbl_vertragsbestandteil_lohnguide_pk PRIMARY KEY (vertragsbestandteil_id),
|
||||||
CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id) REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE,
|
CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id) REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||||
CONSTRAINT tbl_vertragsbestandteil_lohnguide_fachrichtung_fk FOREIGN KEY (fachrichtung_kurzbz) REFERENCES hr.tbl_lohnguide_fachrichtung (fachrichtung_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE,
|
CONSTRAINT tbl_vertragsbestandteil_lohnguide_fachrichtung_fk FOREIGN KEY (fachrichtung_kurzbz) REFERENCES hr.tbl_lohnguide_fachrichtung (fachrichtung_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||||
|
|
||||||
|
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_benutzerfunktion_uid'"))
|
||||||
|
{
|
||||||
|
if ($db->db_num_rows($result) == 0)
|
||||||
|
{
|
||||||
|
$qry = "CREATE INDEX idx_tbl_benutzerfunktion_uid ON public.tbl_benutzerfunktion USING btree (uid)";
|
||||||
|
|
||||||
|
if (! $db->db_query($qry))
|
||||||
|
echo '<strong>idx_tbl_benutzerfunktion_uid: ' . $db->db_last_error() . '</strong><br>';
|
||||||
|
else
|
||||||
|
echo 'Index idx_tbl_benutzerfunktion_uid angelegt<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41761,7 +41761,7 @@ array(
|
|||||||
array(
|
array(
|
||||||
'app' => 'core',
|
'app' => 'core',
|
||||||
'category' => 'abgabetool',
|
'category' => 'abgabetool',
|
||||||
'phrase' => 'c4fehlerAktualitaetProjektarbeit ',
|
'phrase' => 'c4fehlerAktualitaetProjektarbeit',
|
||||||
'insertvon' => 'system',
|
'insertvon' => 'system',
|
||||||
'phrases' => array(
|
'phrases' => array(
|
||||||
array(
|
array(
|
||||||
|
|||||||
@@ -742,7 +742,7 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr)
|
|||||||
$has_oe_lehrgang = !($studiengang->studiengang_kz > 0 && $studiengang->studiengang_kz < 10000);
|
$has_oe_lehrgang = !($studiengang->studiengang_kz > 0 && $studiengang->studiengang_kz < 10000);
|
||||||
|
|
||||||
// STG, die nicht BIS-bemeldet werden, ueberspringen
|
// STG, die nicht BIS-bemeldet werden, ueberspringen
|
||||||
if (in_array($studiengang->studiengang_kz, BIS_EXCLUDE_STG))
|
if (in_array($studiengang->studiengang_kz, BIS_EXCLUDE_STG) || !$studiengang->melderelevant)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -825,6 +825,7 @@ function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag)
|
|||||||
$entwicklungsteam_arr = array_filter($entwicklungsteam_arr, function ($obj) {
|
$entwicklungsteam_arr = array_filter($entwicklungsteam_arr, function ($obj) {
|
||||||
return
|
return
|
||||||
!in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) &&
|
!in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) &&
|
||||||
|
$obj->melderelevant &&
|
||||||
$obj->studiengang_kz > 0 &&
|
$obj->studiengang_kz > 0 &&
|
||||||
$obj->studiengang_kz < 10000;
|
$obj->studiengang_kz < 10000;
|
||||||
});
|
});
|
||||||
@@ -889,7 +890,7 @@ function _getLehrecontainer($sws_proStg_arr)
|
|||||||
$kennzeichen_name = $is_lehrgang ? 'LehrgangNr' : 'StgKz';
|
$kennzeichen_name = $is_lehrgang ? 'LehrgangNr' : 'StgKz';
|
||||||
|
|
||||||
// Lehreobjekt generieren
|
// Lehreobjekt generieren
|
||||||
if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->studiengang_kz, $lehre_arr))
|
if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->melde_studiengang_kz, $lehre_arr))
|
||||||
{
|
{
|
||||||
$lehre_obj = new StdClass();
|
$lehre_obj = new StdClass();
|
||||||
|
|
||||||
@@ -904,8 +905,8 @@ function _getLehrecontainer($sws_proStg_arr)
|
|||||||
}
|
}
|
||||||
else // Lehrecontainer mit STG schon vorhanden
|
else // Lehrecontainer mit STG schon vorhanden
|
||||||
{
|
{
|
||||||
$lehre_obj_arr = array_filter($lehre_arr, function (&$obj) use ($sws_proStg) {
|
$lehre_obj_arr = array_filter($lehre_arr, function (&$obj) use ($sws_proStg, $kennzeichen_name) {
|
||||||
return $obj->StgKz == $sws_proStg->studiengang_kz;
|
return isset($obj->{$kennzeichen_name}) && $obj->{$kennzeichen_name} == $sws_proStg->melde_studiengang_kz;
|
||||||
});
|
});
|
||||||
|
|
||||||
// SWS ergaenzen
|
// SWS ergaenzen
|
||||||
@@ -1359,15 +1360,15 @@ function verwendung_exists($bisverwendung, $verwendung_arr)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Prueft ob ein Studiengang bereits im Lehre Container vorhanden ist
|
* Prueft ob ein Studiengang bereits im Lehre Container vorhanden ist
|
||||||
* @param $studiengang_kz Studiengangskennzahl
|
* @param $melde_studiengang_kz Studiengangskennzahl
|
||||||
* @param $lehre_arr Array mit Lehre Objekten
|
* @param $lehre_arr Array mit Lehre Objekten
|
||||||
* @return true wenn der Studiengang bereits existiert
|
* @return true wenn der Studiengang bereits existiert
|
||||||
*/
|
*/
|
||||||
function lehre_stg_exists($studiengang_kz, $lehre_arr)
|
function lehre_stg_exists($melde_studiengang_kz, $lehre_arr)
|
||||||
{
|
{
|
||||||
foreach($lehre_arr as $row)
|
foreach($lehre_arr as $row)
|
||||||
{
|
{
|
||||||
$kennzeichenName = $row->LehrgangNr ?? $row->StgKz;
|
$kennzeichenName = isset($row->LehrgangNr) ? 'LehrgangNr' : 'StgKz';
|
||||||
if(isset($row->{$kennzeichenName}) && $row->{$kennzeichenName} == $melde_studiengang_kz)
|
if(isset($row->{$kennzeichenName}) && $row->{$kennzeichenName} == $melde_studiengang_kz)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -227,7 +227,8 @@ if (isset($_GET['sendform']))
|
|||||||
<table class="tablesorter" id="t1">
|
<table class="tablesorter" id="t1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><span class="tooltip"><img src="../../skin/images/information.png" height="20px" name="infoicon"/>
|
<th><button type="button" class="resetsaved" title="Reset Filter">Reset Filter</button>
|
||||||
|
<span class="tooltip"><img src="../../skin/images/information.png" height="20px" name="infoicon"/>
|
||||||
'.$tooltiptext.'
|
'.$tooltiptext.'
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
@@ -364,9 +365,10 @@ if (isset($_GET['sendform']))
|
|||||||
$("#t1").tablesorter(
|
$("#t1").tablesorter(
|
||||||
{
|
{
|
||||||
sortList: [[3,0]],
|
sortList: [[3,0]],
|
||||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
widgets: ["saveSort", "zebra", "filter", "stickyHeaders"],
|
||||||
headers: { 0: { filter: false, sorter: false }},
|
headers: { 0: { filter: false, sorter: false }},
|
||||||
widgetOptions : { filter_functions : {
|
widgetOptions : { filter_saveFilters : true,
|
||||||
|
filter_functions : {
|
||||||
// Add select menu to this column
|
// Add select menu to this column
|
||||||
8 : {
|
8 : {
|
||||||
"True" : function(e, n, f, i, $r, c, data) { return /t/.test(e); },
|
"True" : function(e, n, f, i, $r, c, data) { return /t/.test(e); },
|
||||||
@@ -381,6 +383,13 @@ if (isset($_GET['sendform']))
|
|||||||
"False" : function(e, n, f, i, $r, c, data) { return /f/.test(e); }
|
"False" : function(e, n, f, i, $r, c, data) { return /f/.test(e); }
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.resetsaved').click(function()
|
||||||
|
{
|
||||||
|
$("#t1").trigger("filterReset");
|
||||||
|
location.reload(forceGet);
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -588,7 +588,9 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
|
|||||||
{
|
{
|
||||||
if(is_numeric($_POST['prestudent_id']) && $_POST['prestudent_id']!='')
|
if(is_numeric($_POST['prestudent_id']) && $_POST['prestudent_id']!='')
|
||||||
{
|
{
|
||||||
$qry="SELECT nachname,vorname,person_id,prestudent_id,tbl_pruefling.pruefling_id,tbl_pruefling_frage.begintime,bezeichnung,kurzbz,tbl_frage.nummer,level, tbl_vorschlag.nummer as antwortnummer, tbl_vorschlag.punkte
|
$qry="SELECT nachname,vorname,person_id,prestudent_id,tbl_pruefling.pruefling_id,
|
||||||
|
tbl_pruefling_frage.begintime,bezeichnung,kurzbz,tbl_frage.nummer,level,
|
||||||
|
tbl_vorschlag.nummer as antwortnummer, tbl_vorschlag.punkte, tbl_frage.frage_id
|
||||||
FROM testtool.tbl_antwort
|
FROM testtool.tbl_antwort
|
||||||
JOIN testtool.tbl_vorschlag USING(vorschlag_id)
|
JOIN testtool.tbl_vorschlag USING(vorschlag_id)
|
||||||
JOIN testtool.tbl_frage USING (frage_id)
|
JOIN testtool.tbl_frage USING (frage_id)
|
||||||
@@ -615,6 +617,7 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
|
|||||||
<th>Level</th>
|
<th>Level</th>
|
||||||
<th>Antwort #</th>
|
<th>Antwort #</th>
|
||||||
<th>Punkte</th>
|
<th>Punkte</th>
|
||||||
|
<th>FrageID</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>';
|
<tbody>';
|
||||||
@@ -632,6 +635,7 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
|
|||||||
echo "<td>$row->level</td>";
|
echo "<td>$row->level</td>";
|
||||||
echo "<td>$row->antwortnummer</td>";
|
echo "<td>$row->antwortnummer</td>";
|
||||||
echo "<td>$row->punkte</td>";
|
echo "<td>$row->punkte</td>";
|
||||||
|
echo "<td>$row->frage_id</td>";
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
}
|
||||||
echo '</tbody></table>';
|
echo '</tbody></table>';
|
||||||
|
|||||||
@@ -837,6 +837,25 @@ if(isset($_GET['excel']))
|
|||||||
<script src="../../vendor/fgelinas/timepicker/jquery.ui.timepicker.js" type="text/javascript" ></script>
|
<script src="../../vendor/fgelinas/timepicker/jquery.ui.timepicker.js" type="text/javascript" ></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
$.tablesorter.addParser({
|
||||||
|
id: "customDate",
|
||||||
|
is: function(s) {
|
||||||
|
//return false;
|
||||||
|
//use the above line if you don\'t want table sorter to auto detected this parser
|
||||||
|
// match dd.mm.yyyy e.g. 01.01.2001 as regex
|
||||||
|
//return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2} .*/.test(s);
|
||||||
|
return /\d{1,2}.\d{1,2}.\d{1,4}.*/.test(s);
|
||||||
|
},
|
||||||
|
// replace regex-wildcards and return new date
|
||||||
|
format: function(s) {
|
||||||
|
s = s.replace(/\-/g," ");
|
||||||
|
s = s.replace(/:/g," ");
|
||||||
|
s = s.replace(/\./g," ");
|
||||||
|
s = s.split(" ");
|
||||||
|
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0]).getTime());
|
||||||
|
},
|
||||||
|
type: "numeric"
|
||||||
|
});
|
||||||
$(document).ready(function()
|
$(document).ready(function()
|
||||||
{
|
{
|
||||||
// Check, ob Räume zugeteilt sind oder max_teilnehmer gesetzt ist, wenn "öffentlich" gesetzt wird
|
// Check, ob Räume zugeteilt sind oder max_teilnehmer gesetzt ist, wenn "öffentlich" gesetzt wird
|
||||||
@@ -1007,7 +1026,7 @@ if(isset($_GET['excel']))
|
|||||||
{
|
{
|
||||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||||
sortList: [[2,0],[3,0]],
|
sortList: [[2,0],[3,0]],
|
||||||
headers: {0: { sorter: false}},
|
headers: {0: { sorter: false},10: { sorter: "customDate"},11: { sorter: "customDate"}},
|
||||||
widgetOptions: {filter_cssFilter: [
|
widgetOptions: {filter_cssFilter: [
|
||||||
"filter_clm_null",
|
"filter_clm_null",
|
||||||
"filter_clm_prestudent_id",
|
"filter_clm_prestudent_id",
|
||||||
@@ -1020,6 +1039,7 @@ if(isset($_GET['excel']))
|
|||||||
"filter_clm_studienplan",
|
"filter_clm_studienplan",
|
||||||
"filter_clm_einstiegssemester",
|
"filter_clm_einstiegssemester",
|
||||||
"filter_clm_geburtsdatum",
|
"filter_clm_geburtsdatum",
|
||||||
|
"filter_clm_anmeldedatum",
|
||||||
"filter_clm_email",
|
"filter_clm_email",
|
||||||
"filter_clm_absolviert"]}
|
"filter_clm_absolviert"]}
|
||||||
});
|
});
|
||||||
@@ -1072,6 +1092,7 @@ if(isset($_GET['excel']))
|
|||||||
'clm_studienplan',
|
'clm_studienplan',
|
||||||
'clm_einstiegssemester',
|
'clm_einstiegssemester',
|
||||||
'clm_geburtsdatum',
|
'clm_geburtsdatum',
|
||||||
|
"filter_clm_anmeldedatum",
|
||||||
'clm_email',
|
'clm_email',
|
||||||
'clm_absolviert'];
|
'clm_absolviert'];
|
||||||
for (var i in arr)
|
for (var i in arr)
|
||||||
@@ -2697,7 +2718,8 @@ if($reihungstest_id!='')
|
|||||||
WHERE prestudent_id = tbl_prestudent.prestudent_id
|
WHERE prestudent_id = tbl_prestudent.prestudent_id
|
||||||
AND status_kurzbz = 'Interessent'
|
AND status_kurzbz = 'Interessent'
|
||||||
) LIMIT 1
|
) LIMIT 1
|
||||||
) AS orgform_kurzbz
|
) AS orgform_kurzbz,
|
||||||
|
tbl_rt_person.anmeldedatum
|
||||||
FROM PUBLIC.tbl_rt_person
|
FROM PUBLIC.tbl_rt_person
|
||||||
JOIN PUBLIC.tbl_person USING (person_id)
|
JOIN PUBLIC.tbl_person USING (person_id)
|
||||||
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = rt.reihungstest_id)
|
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = rt.reihungstest_id)
|
||||||
@@ -2786,6 +2808,7 @@ if($reihungstest_id!='')
|
|||||||
echo '<div id="clm_studienplan" class="active" onclick="hideColumn(\'clm_studienplan\')">Studienplan</div>';
|
echo '<div id="clm_studienplan" class="active" onclick="hideColumn(\'clm_studienplan\')">Studienplan</div>';
|
||||||
echo '<div id="clm_einstiegssemester" class="active" onclick="hideColumn(\'clm_einstiegssemester\')">Einstiegssemester</div>';
|
echo '<div id="clm_einstiegssemester" class="active" onclick="hideColumn(\'clm_einstiegssemester\')">Einstiegssemester</div>';
|
||||||
echo '<div id="clm_geburtsdatum" class="active" onclick="hideColumn(\'clm_geburtsdatum\')">Geburtsdatum</div>';
|
echo '<div id="clm_geburtsdatum" class="active" onclick="hideColumn(\'clm_geburtsdatum\')">Geburtsdatum</div>';
|
||||||
|
echo '<div id="clm_anmeldedatum" class="active" onclick="hideColumn(\'clm_anmeldedatum\')">Geburtsdatum</div>';
|
||||||
echo '<div id="clm_email" class="active" onclick="hideColumn(\'clm_email\')">EMail</div>';
|
echo '<div id="clm_email" class="active" onclick="hideColumn(\'clm_email\')">EMail</div>';
|
||||||
echo '<div id="clm_absolviert" class="active" onclick="hideColumn(\'clm_absolviert\')">Absolvierte Tests <span class="wait"></span></div>';
|
echo '<div id="clm_absolviert" class="active" onclick="hideColumn(\'clm_absolviert\')">Absolvierte Tests <span class="wait"></span></div>';
|
||||||
//echo '<div id="clm_ergebnis" class="active" onclick="hideColumn(\'clm_ergebnis\')">Ergebnis <span class="wait"></span></div>';
|
//echo '<div id="clm_ergebnis" class="active" onclick="hideColumn(\'clm_ergebnis\')">Ergebnis <span class="wait"></span></div>';
|
||||||
@@ -2827,6 +2850,7 @@ if($reihungstest_id!='')
|
|||||||
<th style="display: table-cell" class="clm_studienplan">Studienplan</th>
|
<th style="display: table-cell" class="clm_studienplan">Studienplan</th>
|
||||||
<th style="display: table-cell" class="clm_einstiegssemester">Einstiegssemester</th>
|
<th style="display: table-cell" class="clm_einstiegssemester">Einstiegssemester</th>
|
||||||
<th style="display: table-cell" class="clm_geburtsdatum">Geburtsdatum</th>
|
<th style="display: table-cell" class="clm_geburtsdatum">Geburtsdatum</th>
|
||||||
|
<th style="display: table-cell" class="clm_anmeldedatum">Anmeldedatum</th>
|
||||||
<th style="display: table-cell" class="clm_email">EMail</th>
|
<th style="display: table-cell" class="clm_email">EMail</th>
|
||||||
<th style="display: table-cell" class="clm_absolviert">bereits absolvierte Verfahren</th>
|
<th style="display: table-cell" class="clm_absolviert">bereits absolvierte Verfahren</th>
|
||||||
<!--<th style="display: table-cell" class="clm_ergebnis">Ergebnis</th>
|
<!--<th style="display: table-cell" class="clm_ergebnis">Ergebnis</th>
|
||||||
@@ -2946,6 +2970,7 @@ if($reihungstest_id!='')
|
|||||||
<td style="display: table-cell" class="clm_studienplan">'.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')</td>
|
<td style="display: table-cell" class="clm_studienplan">'.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')</td>
|
||||||
<td style="display: table-cell" class="clm_einstiegssemester">'.$db->convert_html_chars($row->ausbildungssemester).'</td>
|
<td style="display: table-cell" class="clm_einstiegssemester">'.$db->convert_html_chars($row->ausbildungssemester).'</td>
|
||||||
<td style="display: table-cell" class="clm_geburtsdatum">'.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').'</td>
|
<td style="display: table-cell" class="clm_geburtsdatum">'.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').'</td>
|
||||||
|
<td style="display: table-cell" class="clm_anmeldedatum">'.$db->convert_html_chars($row->anmeldedatum!=''?$datum_obj->convertISODate($row->anmeldedatum):' ').'</td>
|
||||||
<td style="display: table-cell; text-align: center" class="clm_email"><a href="mailto:'.$db->convert_html_chars($row->email).'"><img src="../../skin/images/button_mail.gif" name="mail"></a></td>
|
<td style="display: table-cell; text-align: center" class="clm_email"><a href="mailto:'.$db->convert_html_chars($row->email).'"><img src="../../skin/images/button_mail.gif" name="mail"></a></td>
|
||||||
<td style="display: table-cell;" class="clm_absolviert">'.$rt_in_anderen_stg.'</td>
|
<td style="display: table-cell;" class="clm_absolviert">'.$rt_in_anderen_stg.'</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
@@ -3009,6 +3034,7 @@ if($reihungstest_id!='')
|
|||||||
<th style="display: table-cell" class="clm_studienplan">Studienplan</th>
|
<th style="display: table-cell" class="clm_studienplan">Studienplan</th>
|
||||||
<th style="display: table-cell" class="clm_einstiegssemester">Einstiegssemester</th>
|
<th style="display: table-cell" class="clm_einstiegssemester">Einstiegssemester</th>
|
||||||
<th style="display: table-cell" class="clm_geburtsdatum">Geburtsdatum</th>
|
<th style="display: table-cell" class="clm_geburtsdatum">Geburtsdatum</th>
|
||||||
|
<th style="display: table-cell" class="clm_anmeldedatum">Anmeldedatum</th>
|
||||||
<th style="display: table-cell" class="clm_email">EMail</th>
|
<th style="display: table-cell" class="clm_email">EMail</th>
|
||||||
<th style="display: table-cell" class="clm_absolviert">bereits absolvierte Verfahren</th>
|
<th style="display: table-cell" class="clm_absolviert">bereits absolvierte Verfahren</th>
|
||||||
<!--<th style="display: table-cell" class="clm_ergebnis">Ergebnis</th>
|
<!--<th style="display: table-cell" class="clm_ergebnis">Ergebnis</th>
|
||||||
@@ -3128,6 +3154,7 @@ if($reihungstest_id!='')
|
|||||||
<td style="display: table-cell" class="clm_studienplan">'.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')</td>
|
<td style="display: table-cell" class="clm_studienplan">'.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')</td>
|
||||||
<td style="display: table-cell" class="clm_einstiegssemester">'.$db->convert_html_chars($row->ausbildungssemester).'</td>
|
<td style="display: table-cell" class="clm_einstiegssemester">'.$db->convert_html_chars($row->ausbildungssemester).'</td>
|
||||||
<td style="display: table-cell" class="clm_geburtsdatum">'.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').'</td>
|
<td style="display: table-cell" class="clm_geburtsdatum">'.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').'</td>
|
||||||
|
<td style="display: table-cell" class="clm_anmeldedatum">'.$db->convert_html_chars($row->anmeldedatum!=''?$datum_obj->convertISODate($row->anmeldedatum):' ').'</td>
|
||||||
<td style="display: table-cell; text-align: center" class="clm_email"><a href="mailto:'.$db->convert_html_chars($row->email).'"><img src="../../skin/images/button_mail.gif" name="mail"></a></td>
|
<td style="display: table-cell; text-align: center" class="clm_email"><a href="mailto:'.$db->convert_html_chars($row->email).'"><img src="../../skin/images/button_mail.gif" name="mail"></a></td>
|
||||||
<td style="display: table-cell;" class="clm_absolviert">'.$rt_in_anderen_stg.'</td>';
|
<td style="display: table-cell;" class="clm_absolviert">'.$rt_in_anderen_stg.'</td>';
|
||||||
/*echo '<td style="display: table-cell; align: right" class="clm_ergebnis">'.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).' %</td>
|
/*echo '<td style="display: table-cell; align: right" class="clm_ergebnis">'.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).' %</td>
|
||||||
|
|||||||
Reference in New Issue
Block a user