mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-10-12 15:04:04 +00:00
Compare commits
49
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b2ca7f5f7 | ||
|
|
ce62713790 | ||
|
|
34761db664 | ||
|
|
c7131ed775 | ||
|
|
b57e1984a8 | ||
|
|
acedc11be8 | ||
|
|
15c1da74a2 | ||
|
|
d33b45d7cb | ||
|
|
b3b6d847a7 | ||
|
|
80365de28c | ||
|
|
2d74522a4f | ||
|
|
d00aef66e1 | ||
|
|
241eec3ef2 | ||
|
|
2050f5ae65 | ||
|
|
587e523990 | ||
|
|
5ec1a1c54c | ||
|
|
2c65ccc8da | ||
|
|
787308aad4 | ||
|
|
8b44e4475b | ||
|
|
d251987850 | ||
|
|
ba92eea7eb | ||
|
|
50951dfdcf | ||
|
|
be7527e994 | ||
|
|
224cef7fad | ||
|
|
0dadaece08 | ||
|
|
073160dde4 | ||
|
|
d5c511f114 | ||
|
|
5fff45e302 | ||
|
|
66e400013a | ||
|
|
3f95bfd82f | ||
|
|
c3fad93b6e | ||
|
|
9629345473 | ||
|
|
4d72b0047a | ||
|
|
dc22ac6b06 | ||
|
|
54137cd2bb | ||
|
|
96b2d88d39 | ||
|
|
474fc1fc57 | ||
|
|
3825e2fb38 | ||
|
|
1ffc040a6b | ||
|
|
dba7fd2ff4 | ||
|
|
e90e03e0cc | ||
|
|
34009ee841 | ||
|
|
b50e3bc075 | ||
|
|
c664c14afc | ||
|
|
efc67d14a5 | ||
|
|
9183c4f04c | ||
|
|
6495f741b9 | ||
|
|
d3210f0d3d | ||
|
|
a0dce925d4 |
@@ -3,3 +3,4 @@
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
$config['infocenter_studiengang_kz'] = '10021, 10027, 10002';
|
||||
$config['infocenter_qualifikationskurs_kz'] = '10002';
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
class Compat extends Auth_Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct([
|
||||
'ci' => ['basis/cis:r'],
|
||||
'legacy' => ['basis/cis:r'],
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
|
||||
/**
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ci()
|
||||
{
|
||||
$this->load->view('CisRouterView/CisRouterView.php',['route' => 'Compat']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function legacy()
|
||||
{
|
||||
$this->load->view('CisRouterView/CisRouterView.php',['route' => 'Compat']);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -67,8 +67,11 @@ class CisMenu extends FHCAPI_Controller
|
||||
|
||||
private function generateUrlForMenuItem($menuItem)
|
||||
{
|
||||
$menuItem->url = $this->menuItemUrlHelper($menuItem);
|
||||
unset($menuItem->content);
|
||||
if(!isset($menuItem->url))
|
||||
{
|
||||
$menuItem->url = $this->menuItemUrlHelper($menuItem);
|
||||
unset($menuItem->content);
|
||||
}
|
||||
|
||||
if ($menuItem->childs && count($menuItem->childs)) {
|
||||
$menuItem->childs = $this->generateUrlsForMenuItems($menuItem->childs);
|
||||
@@ -83,7 +86,7 @@ class CisMenu extends FHCAPI_Controller
|
||||
return site_url("/CisVue/Cms/content/" . $menuItem->content_id);
|
||||
}
|
||||
|
||||
if (!$menuItem->content || !mb_strlen($menuItem->content)) {
|
||||
if (!isset($menuItem->content) || !$menuItem->content || !mb_strlen($menuItem->content)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
@@ -370,6 +370,7 @@ class LvTermine extends FHCAPI_Controller
|
||||
$result->semester = $item->semester;
|
||||
$result->verband = $item->verband;
|
||||
$result->gruppe = $item->gruppe;
|
||||
$result->studiensemester_kurzbz = $item->studiensemester_kurzbz;
|
||||
return $result;
|
||||
},
|
||||
$lehrverband_query_result));
|
||||
|
||||
@@ -34,6 +34,9 @@ class InfoCenter extends Auth_Controller
|
||||
const PREV_FILTER_ID = 'prev_filter_id';
|
||||
const KEEP_TABLESORTER_FILTER = 'keepTsFilter';
|
||||
|
||||
const ONBOARDING_INSERTVON = 'onboarding';
|
||||
const ONBOARDING_KENNZEICHENTYP = 'eobRegistrierungsId';
|
||||
|
||||
private $_uid; // contains the UID of the logged user
|
||||
|
||||
// Used to log with PersonLogLib
|
||||
@@ -175,6 +178,7 @@ class InfoCenter extends Auth_Controller
|
||||
$this->load->model('person/Kontakt_model', 'KontaktModel');
|
||||
$this->load->model('person/Geschlecht_model', 'GeschlechtModel');
|
||||
$this->load->model('person/adresse_model', 'AdresseModel');
|
||||
$this->load->model('person/Kennzeichen_model', 'KennzeichenModel');
|
||||
|
||||
// Loads libraries
|
||||
$this->load->library('PersonLogLib');
|
||||
@@ -1452,6 +1456,100 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$this->outputJsonSuccess("Done!");
|
||||
}
|
||||
|
||||
public function getAbsageData()
|
||||
{
|
||||
$stg_typ = $this->getStudienArtBerechtigung(['b', 'm']);
|
||||
|
||||
if (!is_null($stg_typ))
|
||||
{
|
||||
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(array_column($stg_typ, 'typ'), $studienSemester);
|
||||
|
||||
$data = array (
|
||||
'statusgruende' => $statusgruende,
|
||||
'studiengaenge' => $studiengaenge->retval
|
||||
);
|
||||
|
||||
$this->outputJsonSuccess($data);
|
||||
}
|
||||
else
|
||||
$this->outputJsonSuccess(null);
|
||||
}
|
||||
|
||||
public function getStudienArtBerechtigung($typ = null)
|
||||
{
|
||||
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
|
||||
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, $typ);
|
||||
return getData($stg_typ);
|
||||
}
|
||||
|
||||
public function getStudienartData()
|
||||
{
|
||||
$this->outputJsonSuccess($this->getStudienArtBerechtigung(['b', 'm', 'l']));
|
||||
}
|
||||
|
||||
public function saveAbsageForAll()
|
||||
{
|
||||
$statusgrund = $this->input->post('statusgrund');
|
||||
$studiengang = $this->input->post('studiengang');
|
||||
$abgeschickt = $this->input->post('abgeschickt');
|
||||
$personen = $this->input->post('personen');
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
|
||||
if ($statusgrund === 'null' || $studiengang === 'null' || $abgeschickt === 'null' || empty($personen))
|
||||
$this->terminateWithJsonError("Bitte füllen Sie alle Felder aus");
|
||||
|
||||
if ($studiengang === 'all' && $abgeschickt === 'all')
|
||||
{
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudenten = $this->PrestudentModel->getByPersonWithoutLehrgang($person, $studienSemester);
|
||||
|
||||
if (!hasData($prestudenten))
|
||||
continue;
|
||||
|
||||
$prestudentenData = getData($prestudenten);
|
||||
|
||||
foreach ($prestudentenData as $prestudent)
|
||||
{
|
||||
$this->saveAbsage($prestudent->prestudent_id, $statusgrund);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||
|
||||
$this->StudienplanModel->addSelect('1');
|
||||
$this->StudienplanModel->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
|
||||
$escaped = $this->StudienplanModel->db->escape(strtoupper($studiengang));
|
||||
$this->StudienplanModel->db->where("UPPER(so.studiengangkurzbzlang || ':' || tbl_studienplan.orgform_kurzbz) = $escaped");
|
||||
$this->StudienplanModel->addLimit(1);
|
||||
$studiengangResult = $this->StudienplanModel->load();
|
||||
|
||||
if (hasData($studiengangResult))
|
||||
{
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt, $abgeschickt === 'all');
|
||||
|
||||
if (!hasData($prestudent))
|
||||
continue;
|
||||
|
||||
$prestudentData = getData($prestudent);
|
||||
$this->saveAbsage($prestudentData[0]->prestudent_id, $statusgrund);
|
||||
}
|
||||
}
|
||||
else
|
||||
$this->terminateWithJsonError("Falschen Studiengang übergeben!");
|
||||
|
||||
}
|
||||
|
||||
$this->outputJsonSuccess("Success");
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
@@ -1946,6 +2044,17 @@ class InfoCenter extends Auth_Controller
|
||||
show_error(getError($user_person));
|
||||
}
|
||||
|
||||
// add info about first electronig onboarding login
|
||||
$this->KennzeichenModel->addSelect('insertamum');
|
||||
$onboarding_first_login = $this->KennzeichenModel->loadWhere(
|
||||
array('person_id' => $person_id, 'kennzeichentyp_kurzbz' => self::ONBOARDING_KENNZEICHENTYP)
|
||||
);
|
||||
|
||||
if (isError($onboarding_first_login))
|
||||
{
|
||||
show_error(getError($onboarding_first_login));
|
||||
}
|
||||
|
||||
$data = array (
|
||||
'lockedby' => $lockedby,
|
||||
'lockedbyother' => $lockedbyother,
|
||||
@@ -1955,7 +2064,9 @@ class InfoCenter extends Auth_Controller
|
||||
'messages' => $messages->retval,
|
||||
'logs' => $logs,
|
||||
'notizen' => $notizen->retval,
|
||||
'notizenbewerbung' => $notizen_bewerbung->retval
|
||||
'notizenbewerbung' => $notizen_bewerbung->retval,
|
||||
'created_by_onboarding' => $stammdaten->retval->insertvon == self::ONBOARDING_INSERTVON,
|
||||
'onboarding_first_login' => hasData($onboarding_first_login) ? getData($onboarding_first_login)[0]->insertamum : null
|
||||
);
|
||||
|
||||
return $data;
|
||||
@@ -2375,97 +2486,4 @@ class InfoCenter extends Auth_Controller
|
||||
$this->loglib->logError('Studiengang has no mail for sending Freigabe mail');
|
||||
}
|
||||
}
|
||||
|
||||
public function getAbsageData()
|
||||
{
|
||||
$stg_typ = $this->getStudienArtBerechtigung(['b', 'm']);
|
||||
|
||||
if (!is_null($stg_typ))
|
||||
{
|
||||
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(array_column($stg_typ, 'typ'), $studienSemester);
|
||||
|
||||
$data = array (
|
||||
'statusgruende' => $statusgruende,
|
||||
'studiengaenge' => $studiengaenge->retval
|
||||
);
|
||||
|
||||
$this->outputJsonSuccess($data);
|
||||
}
|
||||
else
|
||||
$this->outputJsonSuccess(null);
|
||||
}
|
||||
|
||||
public function getStudienArtBerechtigung($typ = null)
|
||||
{
|
||||
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
|
||||
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, $typ);
|
||||
return getData($stg_typ);
|
||||
}
|
||||
|
||||
public function getStudienartData()
|
||||
{
|
||||
$this->outputJsonSuccess($this->getStudienArtBerechtigung(['b', 'm', 'l']));
|
||||
}
|
||||
|
||||
public function saveAbsageForAll()
|
||||
{
|
||||
$statusgrund = $this->input->post('statusgrund');
|
||||
$studiengang = $this->input->post('studiengang');
|
||||
$abgeschickt = $this->input->post('abgeschickt');
|
||||
$personen = $this->input->post('personen');
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
|
||||
if ($statusgrund === 'null' || $studiengang === 'null' || $abgeschickt === 'null' || empty($personen))
|
||||
$this->terminateWithJsonError("Bitte füllen Sie alle Felder aus");
|
||||
|
||||
if ($studiengang === 'all' && $abgeschickt === 'all')
|
||||
{
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudenten = $this->PrestudentModel->getByPersonWithoutLehrgang($person, $studienSemester);
|
||||
|
||||
if (!hasData($prestudenten))
|
||||
continue;
|
||||
|
||||
$prestudentenData = getData($prestudenten);
|
||||
|
||||
foreach ($prestudentenData as $prestudent)
|
||||
{
|
||||
$this->saveAbsage($prestudent->prestudent_id, $statusgrund);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||
|
||||
$this->StudienplanModel->addSelect('1');
|
||||
$this->StudienplanModel->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
|
||||
$escaped = $this->StudienplanModel->db->escape(strtoupper($studiengang));
|
||||
$this->StudienplanModel->db->where("UPPER(so.studiengangkurzbzlang || ':' || tbl_studienplan.orgform_kurzbz) = $escaped");
|
||||
$this->StudienplanModel->addLimit(1);
|
||||
$studiengangResult = $this->StudienplanModel->load();
|
||||
|
||||
if (hasData($studiengangResult))
|
||||
{
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt, $abgeschickt === 'all');
|
||||
|
||||
if (!hasData($prestudent))
|
||||
continue;
|
||||
|
||||
$prestudentData = getData($prestudent);
|
||||
$this->saveAbsage($prestudentData[0]->prestudent_id, $statusgrund);
|
||||
}
|
||||
}
|
||||
else
|
||||
$this->terminateWithJsonError("Falschen Studiengang übergeben!");
|
||||
|
||||
}
|
||||
|
||||
$this->outputJsonSuccess("Success");
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ class Rueckstellung extends Auth_Controller
|
||||
private $_ci; // Code igniter instance
|
||||
private $_uid;
|
||||
|
||||
const ZGV_UEBERPRUEFUNG_MAIL_VORLAGE = 'ZGVUEP';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
@@ -23,6 +25,7 @@ class Rueckstellung extends Auth_Controller
|
||||
$this->load->model('crm/RueckstellungStatus_model', 'RueckstellungStatusModel');
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
$this->load->library('PersonLogLib');
|
||||
$this->load->library('MessageLib');
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
|
||||
@@ -78,6 +81,8 @@ class Rueckstellung extends Auth_Controller
|
||||
|
||||
$this->_log($person_id, $status_kurzbz);
|
||||
|
||||
if ($status_kurzbz === 'onhold_zgv')
|
||||
$this->sendRueckstellungMessage($person_id);
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
@@ -104,6 +109,10 @@ class Rueckstellung extends Auth_Controller
|
||||
if (isError($result))
|
||||
$this->terminateWithJsonError(getError($result));
|
||||
$this->_log($person, $status_kurzbz);
|
||||
|
||||
if ($status_kurzbz === 'onhold_zgv')
|
||||
$this->sendRueckstellungMessage($person);
|
||||
|
||||
}
|
||||
$this->outputJsonSuccess("Erfolgreich gespeichert!");
|
||||
}
|
||||
@@ -160,4 +169,26 @@ class Rueckstellung extends Auth_Controller
|
||||
$this->_uid
|
||||
);
|
||||
}
|
||||
|
||||
private function sendRueckstellungMessage($person_id)
|
||||
{
|
||||
$person = $this->_ci->PersonModel->load($person_id);
|
||||
|
||||
if (hasData($person))
|
||||
{
|
||||
$person = getData($person)[0];
|
||||
|
||||
return $this->messagelib->sendMessageUserTemplate(
|
||||
$person_id,
|
||||
self::ZGV_UEBERPRUEFUNG_MAIL_VORLAGE,
|
||||
array(
|
||||
'anrede' => $person->anrede,
|
||||
'nachname' => $person->nachname
|
||||
),
|
||||
null,
|
||||
getAuthPersonId(),
|
||||
'infocenter'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -741,7 +741,7 @@ class AnrechnungLib
|
||||
$fullname = hasData($result) ? $result->retval[0]->vorname. $result->retval[0]->nachname : '';
|
||||
|
||||
// Return filename
|
||||
return 'Anrechnungsantrag'. $orgform_kurzbz .'_LV-'. $lehrveranstaltung_id. '_'. $fullname;
|
||||
return 'Anrechnungsantrag'. $orgform_kurzbz .'_LV-'. $lehrveranstaltung_id. '_'. $fullname . '.pdf';
|
||||
}
|
||||
|
||||
public function LVhasLector($anrechnung_id)
|
||||
|
||||
@@ -98,7 +98,7 @@ class Notiz_model extends DB_Model
|
||||
/**
|
||||
* Add a Notiz for a given person
|
||||
*/
|
||||
public function addNotizForPerson($person_id, $titel, $text, $erledigt, $verfasser_uid)
|
||||
public function addNotizForPerson($person_id, $titel, $text, $erledigt, $verfasser_uid, $insertvon = null)
|
||||
{
|
||||
// Loads model Notizzuordnung_model
|
||||
$this->load->model('person/Notizzuordnung_model', 'NotizzuordnungModel');
|
||||
@@ -106,8 +106,15 @@ class Notiz_model extends DB_Model
|
||||
// Start DB transaction
|
||||
$this->db->trans_start(false);
|
||||
|
||||
$result = $this->insert(array('titel' => $titel, 'text' => $text, 'erledigt' => $erledigt, 'verfasser_uid' => $verfasser_uid,
|
||||
"insertvon" => $verfasser_uid));
|
||||
$result = $this->insert(
|
||||
array(
|
||||
'titel' => $titel,
|
||||
'text' => $text,
|
||||
'erledigt' => $erledigt,
|
||||
'verfasser_uid' => $verfasser_uid,
|
||||
'insertvon' => $insertvon ?? $verfasser_uid
|
||||
)
|
||||
);
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
|
||||
$REJECTED_STATUS = '\'Abgewiesener\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$QUALIFIKATIONSKURS = $this->config->item('infocenter_qualifikationskurs_kz');
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
@@ -277,7 +278,26 @@ $query = '
|
||||
WHERE konto.person_id = p.person_id
|
||||
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
AND konto.buchungstyp_kurzbz = '. $KAUTION_DRITT_STAAT .'
|
||||
) AS "Kaution"
|
||||
) AS "Kaution",
|
||||
(
|
||||
SELECT 1
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND pss.bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND ps.person_id = p.person_id
|
||||
AND sg.studiengang_kz in('.$QUALIFIKATIONSKURS.')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = ps.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "Qualikurs"
|
||||
FROM public.tbl_person p
|
||||
LEFT JOIN (
|
||||
SELECT tpl.person_id,
|
||||
@@ -351,7 +371,8 @@ $query = '
|
||||
'ZGV Nation MA',
|
||||
'InfoCenter Mitarbeiter',
|
||||
'Identitätsnachweis',
|
||||
ucfirst($this->p->t('infocenter', 'kaution'))
|
||||
ucfirst($this->p->t('infocenter', 'kaution')),
|
||||
'Qualikurs'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
@@ -480,6 +501,14 @@ $query = '
|
||||
$datasetRaw->{'Kaution'} = 'Offen';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Qualikurs'} === null)
|
||||
{
|
||||
$datasetRaw->{'Qualikurs'} = 'Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'Qualikurs'} = 'Ja';
|
||||
}
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
@@ -92,6 +92,14 @@
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-6 table-responsive">
|
||||
<?php if ($onboarding_first_login): ?>
|
||||
<div class="row" id="onboardingRow">
|
||||
<?php if ($created_by_onboarding): ?>
|
||||
<div class="col-xs-5"><strong><?php echo $this->p->t('infocenter','onboardingRegistriert') ?></strong></div>
|
||||
<?php endif; ?>
|
||||
<div class="col-xs-7<?php echo $created_by_onboarding ? ' text-right' : '' ?>"><strong><?php echo $this->p->t('infocenter','ersterOnboardingLogin').': '.date_format(date_create($onboarding_first_login), 'd.m.Y') ?></strong></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<table class="table table-bordered stammdaten_form">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -191,12 +199,12 @@
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="col-xs-6">
|
||||
<a class="editStammdaten">
|
||||
<a class="editStammdaten" href="javascript:void(0);">
|
||||
<i class="fa fa-edit"></i> <?php echo $this->p->t('ui','bearbeiten'); ?></a>
|
||||
<div class="editActionStammdaten" style="display:none">
|
||||
<a class="cancelStammdaten">
|
||||
<a class="cancelStammdaten" href="javascript:void(0);">
|
||||
<i class="fa fa-trash"></i> <?php echo $this->p->t('ui','abbrechen');?></a>
|
||||
<a class="saveStammdaten">
|
||||
<a class="saveStammdaten" href="javascript:void(0);">
|
||||
<i class="fa fa-save"></i> <?php echo $this->p->t('ui','speichern'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -632,6 +632,7 @@ elseif (isset($prestudent_id))
|
||||
|
||||
$ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen
|
||||
$ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig;
|
||||
$ps_obj->ausbildungssemester = $ps_tmp->ausbildungssemester;
|
||||
}
|
||||
|
||||
// Falls Status 'Abgewiesene' vorhanden, nach hinten reihen
|
||||
|
||||
+33
-15
@@ -29,6 +29,7 @@ require_once('../../include/sprache.class.php');
|
||||
require_once '../../include/phrasen.class.php';
|
||||
require_once '../../include/studiengang.class.php';
|
||||
require_once('../../include/gebiet.class.php');
|
||||
require_once('../../include/gebiet_pruefling.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
@@ -198,8 +199,8 @@ else if (isset($_SESSION['pruefling_id']))
|
||||
)
|
||||
|
||||
|
||||
SELECT DISTINCT ON
|
||||
(gebiet_id, semester, reihung)
|
||||
SELECT * FROM (SELECT DISTINCT ON
|
||||
(gebiet_id)
|
||||
semester,
|
||||
gebiet_id,
|
||||
STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list,
|
||||
@@ -226,13 +227,7 @@ else if (isset($_SESSION['pruefling_id']))
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 2 AND tbl_ablauf.semester = 2)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
tbl_ablauf.semester <= prestudent_data.semester
|
||||
AND (
|
||||
prestudent_data.studienplan_id = tbl_ablauf.studienplan_id
|
||||
OR
|
||||
@@ -259,9 +254,7 @@ else if (isset($_SESSION['pruefling_id']))
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
tbl_ablauf.semester <= prestudent_data.semester
|
||||
)
|
||||
) temp
|
||||
) temp2
|
||||
@@ -270,7 +263,7 @@ else if (isset($_SESSION['pruefling_id']))
|
||||
semester,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
". $bezeichnung_mehrsprachig_sel ."
|
||||
". $bezeichnung_mehrsprachig_sel ." ) temp3
|
||||
|
||||
ORDER BY
|
||||
semester,
|
||||
@@ -283,6 +276,8 @@ else if (isset($_SESSION['pruefling_id']))
|
||||
$lastsemester = '';
|
||||
$quereinsteiger_stg = '';
|
||||
$_SESSION['alleGebiete']= [];
|
||||
$gebiet_pruefling = new gebiet_pruefling();
|
||||
$quereinsteiger_menu = false;
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
//Jedes Semester in einer eigenen Tabelle anzeigen
|
||||
@@ -294,8 +289,25 @@ else if (isset($_SESSION['pruefling_id']))
|
||||
}
|
||||
$lastsemester = $row->semester;
|
||||
|
||||
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>';
|
||||
if ($row->semester == '1')
|
||||
{
|
||||
// Basisgebiete anzeigen
|
||||
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">' . $p->t('testtool/basisgebiete') . '</td></tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$quereinsteiger_menu)
|
||||
{
|
||||
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">' . $p->t('testtool/quereinstiegsgebiete') . '</td></tr>';
|
||||
$quereinsteiger_menu = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<table border="0" cellspacing="0" cellpadding="0" id="Gebiet" style="display: visible; border-collapse: separate; border-spacing: 0 3px; margin-top: 5px;">';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Bei Quereinstiegsgebieten nach STG clustern und die STG anzeigen
|
||||
@@ -394,6 +406,12 @@ else if (isset($_SESSION['pruefling_id']))
|
||||
</td>
|
||||
<!--<td width="10" class="ItemTesttoolRight" nowrap> </td>-->
|
||||
</tr>';
|
||||
if (!$gebiet_pruefling->checkIfExists($_SESSION['pruefling_id'], $row->gebiet_id))
|
||||
{
|
||||
$gebiet_pruefling->pruefling_id = $_SESSION['pruefling_id'];
|
||||
$gebiet_pruefling->gebiet_id = $row->gebiet_id;
|
||||
$gebiet_pruefling->saveGebietForPruefling();
|
||||
}
|
||||
$_SESSION['alleGebiete'][] = $row->gebiet_id;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -521,5 +521,63 @@ class adresse extends basis_db
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die österreichische Zustell Adresse einer Person
|
||||
* @param $person_id ID der Person
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function loadOesterreichischeZustellAdresse($person_id, $typ = null)
|
||||
{
|
||||
//Pruefen ob person_id eine gueltige Zahl ist
|
||||
if(!is_numeric($person_id) || $person_id == '')
|
||||
{
|
||||
$this->errormsg = 'PersonID muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$typ_clause = '';
|
||||
if (isset($typ)) $typ_clause = "AND typ=".$this->db_add_param($typ);
|
||||
|
||||
//Daten aus der Datenbank lesen
|
||||
$qry = "SELECT * FROM public.tbl_adresse WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER, false)."
|
||||
AND nation = 'A'
|
||||
{$typ_clause}
|
||||
ORDER BY zustelladresse DESC, adresse_id DESC LIMIT 1";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->adresse_id = $row->adresse_id;
|
||||
$this->heimatadresse = $this->db_parse_bool($row->heimatadresse);
|
||||
$this->zustelladresse = $this->db_parse_bool($row->zustelladresse);
|
||||
$this->gemeinde = $row->gemeinde;
|
||||
$this->name = $row->name;
|
||||
$this->nation = $row->nation;
|
||||
$this->ort = $row->ort;
|
||||
$this->person_id = $row->person_id;
|
||||
$this->plz = $row->plz;
|
||||
$this->strasse = $row->strasse;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->firma_id = $row->firma_id;
|
||||
$this->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
|
||||
$this->anmerkung = $row->anmerkung;
|
||||
$this->co_name = $row->co_name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -130,6 +130,6 @@ class basis
|
||||
*/
|
||||
public function convert_html_chars($value)
|
||||
{
|
||||
return htmlspecialchars($value);
|
||||
return htmlspecialchars($value ?? '');
|
||||
}
|
||||
}
|
||||
|
||||
+13
-13
@@ -27,8 +27,8 @@ require_once(dirname(__FILE__).'/basis.class.php');
|
||||
|
||||
abstract class db extends basis
|
||||
{
|
||||
protected static $db_conn=null;
|
||||
protected $db_result=null;
|
||||
protected static $db_conn = null;
|
||||
protected $db_result = null;
|
||||
protected $debug=false;
|
||||
|
||||
function __construct()
|
||||
@@ -46,18 +46,18 @@ abstract class db extends basis
|
||||
|
||||
abstract function db_connect();
|
||||
abstract function db_query($sql);
|
||||
abstract function db_fetch_object($result=null, $i=null);
|
||||
abstract function db_fetch_array($result=null);
|
||||
abstract function db_fetch_row($result=null, $i=null);
|
||||
abstract function db_fetch_assoc($result=null, $i=null);
|
||||
abstract function db_result($result = null, $i, $item);
|
||||
abstract function db_num_rows($result=null);
|
||||
abstract function db_num_fields($result=null);
|
||||
abstract function db_field_name($result=null, $i);
|
||||
abstract function db_affected_rows($result=null);
|
||||
abstract function db_result_seek($result=null, $offset);
|
||||
abstract function db_fetch_object($result = null, $i = null);
|
||||
abstract function db_fetch_array($result = null);
|
||||
abstract function db_fetch_row($result = null, $i = null);
|
||||
abstract function db_fetch_assoc($result = null, $i = null);
|
||||
abstract function db_result($result = null, $i = null, $item = null);
|
||||
abstract function db_num_rows($result = null);
|
||||
abstract function db_num_fields($result = null);
|
||||
abstract function db_field_name($result = null, $i = null);
|
||||
abstract function db_affected_rows($result = null);
|
||||
abstract function db_result_seek($result = null, $offset = null);
|
||||
abstract function db_last_error();
|
||||
abstract function db_free_result($result=null);
|
||||
abstract function db_free_result($result = null);
|
||||
abstract function db_version();
|
||||
abstract function db_escape($var);
|
||||
abstract function db_null_value($var, $qoute=true);
|
||||
|
||||
@@ -356,7 +356,7 @@ class datum
|
||||
*/
|
||||
public function formatDatum($datum, $format='Y-m-d H:i:s', $strict=false)
|
||||
{
|
||||
if(trim($datum)=='')
|
||||
if (trim($datum ?? '') == '')
|
||||
return '';
|
||||
|
||||
$ts='';
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
/* Copyright (C) 2024 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class gebiet_pruefling extends basis_db
|
||||
{
|
||||
//Tabellenspalten
|
||||
public $prueflinggebiet_id;
|
||||
public $pruefling_id;
|
||||
public $gebiet_id;
|
||||
public $insertamum;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function loadByPruefling($pruefling_id)
|
||||
{
|
||||
$qry = "SELECT *
|
||||
FROM testtool.tbl_pruefling_gebiet
|
||||
WHERE pruefling_id = ".$this->db_add_param($pruefling_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->prueflinggebiet_id = $row->prueflinggebiet_id;
|
||||
$this->pruefling_id = $row->pruefling_id;
|
||||
$this->gebiet_id = $row->gebiet_id;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Pruefling nicht gefunden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden der Gebiete für den Pruefling";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function checkIfExists($pruefling_id, $gebiet_id)
|
||||
{
|
||||
$qry = "SELECT 1
|
||||
FROM testtool.tbl_pruefling_gebiet
|
||||
WHERE pruefling_id =".$this->db_add_param($pruefling_id, FHC_INTEGER) ." AND gebiet_id =".$this->db_add_param($gebiet_id, FHC_INTEGER);
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function saveGebietForPruefling()
|
||||
{
|
||||
$qry = "INSERT INTO testtool.tbl_pruefling_gebiet
|
||||
(pruefling_id, gebiet_id)
|
||||
VALUES(".
|
||||
$this->db_add_param($this->pruefling_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->gebiet_id, FHC_INTEGER).');';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -34,6 +34,8 @@ class lehrform extends basis_db
|
||||
public $bezeichnung_kurz;
|
||||
public $bezeichnung_lang;
|
||||
|
||||
public $lehrform_kurzbz;
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional eine Lehrform
|
||||
* @param $lehrform_kurbz Lehrform die geladen werden soll (default=null)
|
||||
|
||||
@@ -661,27 +661,27 @@ class lehrveranstaltung extends basis_db
|
||||
public function validate()
|
||||
{
|
||||
//Laenge Pruefen
|
||||
if (mb_strlen($this->bezeichnung) > 128)
|
||||
if (mb_strlen($this->bezeichnung ?? '') > 128)
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung darf nicht laenger als 128 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->kurzbz) > 16)
|
||||
if (mb_strlen($this->kurzbz ?? '') > 16)
|
||||
{
|
||||
$this->errormsg = 'Kurzbez darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->anmerkung) > 64)
|
||||
if (mb_strlen($this->anmerkung ?? '') > 64)
|
||||
{
|
||||
$this->errormsg = 'Anmerkung darf nicht laenger als 64 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->lehreverzeichnis) > 16)
|
||||
if (mb_strlen($this->lehreverzeichnis ?? '') > 16)
|
||||
{
|
||||
$this->errormsg = 'Lehreverzeichnis darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->lvnr) > 32)
|
||||
if (mb_strlen($this->lvnr ?? '') > 32)
|
||||
{
|
||||
$this->errormsg = 'LVNR darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
|
||||
@@ -40,6 +40,7 @@ class lvangebot extends basis_db
|
||||
protected $anmeldefenster_start; // timestamp
|
||||
protected $anmeldefenster_ende; // timestamp
|
||||
protected $updateamum; // timestamp
|
||||
protected $updatenamum;
|
||||
protected $updatevon; // varchar(32)
|
||||
protected $insertamum; // timestamp
|
||||
protected $insertvon; // varchar(32)
|
||||
|
||||
@@ -49,6 +49,8 @@ class organisationseinheit extends basis_db
|
||||
public $beschreibung;
|
||||
public $oetyp_bezeichnung;
|
||||
|
||||
public $kurzzeichen;
|
||||
public $freigabegrenze;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
|
||||
+13
-13
@@ -44,7 +44,7 @@ class basis_db extends db
|
||||
|
||||
public function db_query($sql)
|
||||
{
|
||||
if ($this->db_result=pg_query(basis_db::$db_conn,$sql))
|
||||
if ($this->db_result = @pg_query(basis_db::$db_conn,$sql))
|
||||
return $this->db_result;
|
||||
else
|
||||
{
|
||||
@@ -53,7 +53,7 @@ class basis_db extends db
|
||||
}
|
||||
}
|
||||
|
||||
public function db_num_rows($result=null)
|
||||
public function db_num_rows($result = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
return pg_num_rows($this->db_result);
|
||||
@@ -61,7 +61,7 @@ class basis_db extends db
|
||||
return pg_num_rows($result);
|
||||
}
|
||||
|
||||
public function db_fetch_object($result = null, $i=null)
|
||||
public function db_fetch_object($result = null, $i = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
{
|
||||
@@ -79,7 +79,7 @@ class basis_db extends db
|
||||
}
|
||||
}
|
||||
|
||||
public function db_fetch_row($result = null, $i=null)
|
||||
public function db_fetch_row($result = null, $i = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
{
|
||||
@@ -97,7 +97,7 @@ class basis_db extends db
|
||||
}
|
||||
}
|
||||
|
||||
public function db_fetch_assoc($result = null, $i=null)
|
||||
public function db_fetch_assoc($result = null, $i = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
{
|
||||
@@ -115,7 +115,7 @@ class basis_db extends db
|
||||
}
|
||||
}
|
||||
|
||||
public function db_result($result = null, $i,$item)
|
||||
public function db_result($result = null, $i = null, $item = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
{
|
||||
@@ -153,10 +153,10 @@ class basis_db extends db
|
||||
|
||||
public function db_last_error()
|
||||
{
|
||||
return pg_last_error();
|
||||
return pg_last_error(basis_db::$db_conn);
|
||||
}
|
||||
|
||||
public function db_affected_rows($result=null)
|
||||
public function db_affected_rows($result = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
return pg_affected_rows($this->db_result);
|
||||
@@ -164,7 +164,7 @@ class basis_db extends db
|
||||
return pg_affected_rows($result);
|
||||
}
|
||||
|
||||
public function db_result_seek($result=null, $offset)
|
||||
public function db_result_seek($result = null, $offset = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
return pg_result_seek($this->db_result, $offset);
|
||||
@@ -172,7 +172,7 @@ class basis_db extends db
|
||||
return pg_result_seek($result, $offset);
|
||||
}
|
||||
|
||||
public function db_fetch_array($result=null, $row=null, $result_type=PGSQL_NUM)
|
||||
public function db_fetch_array($result = null, $row = null, $result_type=PGSQL_NUM)
|
||||
{
|
||||
if(is_null($result))
|
||||
return pg_fetch_array($this->db_result, $row, $result_type);
|
||||
@@ -180,7 +180,7 @@ class basis_db extends db
|
||||
return pg_fetch_array($result, $row, $result_type);
|
||||
}
|
||||
|
||||
public function db_num_fields($result=null)
|
||||
public function db_num_fields($result = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
return pg_num_fields($this->db_result);
|
||||
@@ -191,7 +191,7 @@ class basis_db extends db
|
||||
/**
|
||||
* Liefert den Feldnamen mit index i
|
||||
*/
|
||||
public function db_field_name($result=null, $i)
|
||||
public function db_field_name($result = null, $i = null)
|
||||
{
|
||||
if(is_null($result))
|
||||
return pg_field_name($this->db_result, $i);
|
||||
@@ -230,7 +230,7 @@ class basis_db extends db
|
||||
*/
|
||||
public function db_escape($var)
|
||||
{
|
||||
return pg_escape_string($var);
|
||||
return pg_escape_string(basis_db::$db_conn, $var);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -68,6 +68,11 @@ class studiengang extends basis_db
|
||||
public $beschreibung;
|
||||
public $studiengang_typ_arr = array(); // Array mit den Studiengangstypen
|
||||
|
||||
public $telefon;
|
||||
public $aktiv;
|
||||
public $beantragung;
|
||||
public $lgart_biscode;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param studiengang_kz Kennzahl des zu ladenden Studienganges
|
||||
|
||||
@@ -107,4 +107,9 @@
|
||||
|
||||
.gesperrtoption {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
#onboardingRow
|
||||
{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import DeadlineOverview from "../../components/Cis/Abgabetool/DeadlineOverview.j
|
||||
import Studium from "../../components/Cis/Studium/Studium.js";
|
||||
import StgOrgLvPlan from "../../components/Cis/LvPlan/StgOrg.js";
|
||||
import OtherLvPlan from "../../components/Cis/LvPlan/OtherLvPlan.js";
|
||||
import Compat from "../../components/Cis/Compat.js";
|
||||
|
||||
import ApiRouteInfo from '../../api/factory/routeinfo.js';
|
||||
import {capitalize} from "../../helpers/StringHelpers.js";
|
||||
@@ -29,6 +30,18 @@ const isMobile = window.matchMedia("(max-width: 767px)").matches;
|
||||
const router = VueRouter.createRouter({
|
||||
history: VueRouter.createWebHistory(`/${ciPath}`),
|
||||
routes: [
|
||||
{
|
||||
path: `/Cis/Compat/:mode(ci|legacy)/:path(.*)`,
|
||||
name: 'Compat',
|
||||
component: Compat,
|
||||
props: (route) => {
|
||||
return {
|
||||
mode: route.params.mode,
|
||||
path: route.params.path,
|
||||
query_string: VueRouter.stringifyQuery(route.query)
|
||||
};
|
||||
}
|
||||
},
|
||||
{
|
||||
path: `/Cis/Studium`,
|
||||
name: 'Studium',
|
||||
@@ -277,7 +290,7 @@ const app = Vue.createApp({
|
||||
if (target && this.isInternalRoute(target.href)) {
|
||||
const url = new URL(target.href)
|
||||
|
||||
const path = url.pathname
|
||||
const path = url.pathname + url.search;
|
||||
const base = this.$router.options.history.base
|
||||
const route = path.replace(base, '') || '/'
|
||||
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
export default {
|
||||
name: "Compat",
|
||||
props: {
|
||||
mode: { type: String, required: true },
|
||||
path: { type: String, required: true },
|
||||
query_string: { type: String, required: true, default: ''}
|
||||
},
|
||||
data: function() {
|
||||
return {
|
||||
lastLoadediFrameURL: '',
|
||||
srcUrl: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
propsWatchHelper: function() {
|
||||
return this.mode + '#' + this.path + '#' + this.query_string;
|
||||
}
|
||||
},
|
||||
mounted: function() {
|
||||
this.srcUrl = this.buildSrcUrl();
|
||||
},
|
||||
watch: {
|
||||
propsWatchHelper: function() {
|
||||
if(this.lastLoadediFrameURL === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
let currentiFrameURL = this.$refs.compatiframe ? this.$refs.compatiframe.src : '';
|
||||
|
||||
let url = this.buildSrcUrl();
|
||||
if(this.lastLoadediFrameURL !== url) {
|
||||
this.srcUrl = url;
|
||||
if(this.srcUrl === url) {
|
||||
this.$refs.compatiframe.contentWindow.location.href = url;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
buildSrcUrl: function() {
|
||||
let url = false;
|
||||
switch(this.mode) {
|
||||
case 'ci':
|
||||
url = FHC_JS_DATA_STORAGE_OBJECT.app_root + 'index.ci.php/' + this.path;
|
||||
break;
|
||||
case 'legacy':
|
||||
url = FHC_JS_DATA_STORAGE_OBJECT.app_root + this.path;
|
||||
break;
|
||||
default:
|
||||
url = false;
|
||||
}
|
||||
if(this.query_string !== '' && url) {
|
||||
url += '?' + this.query_string;
|
||||
}
|
||||
|
||||
return url;
|
||||
},
|
||||
loadHandler: function() {
|
||||
let iframe_href = this.$refs.compatiframe.contentWindow.location.href;
|
||||
let ci_urlstart = FHC_JS_DATA_STORAGE_OBJECT.app_root + 'index.ci.php/';
|
||||
let legacy_urlstart = FHC_JS_DATA_STORAGE_OBJECT.app_root;
|
||||
let routerpath = null;
|
||||
|
||||
this.lastLoadediFrameURL = iframe_href;
|
||||
|
||||
if(iframe_href.startsWith(ci_urlstart)) {
|
||||
routerpath = iframe_href.replace(
|
||||
ci_urlstart, '/Cis/Compat/ci/');
|
||||
} else if(iframe_href.startsWith(legacy_urlstart)) {
|
||||
routerpath = iframe_href.replace(
|
||||
legacy_urlstart, '/Cis/Compat/legacy/');
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
if(this.$route.fullPath !== routerpath) {
|
||||
this.$router.push(routerpath);
|
||||
}
|
||||
}
|
||||
},
|
||||
template: `
|
||||
<div class="w-100">
|
||||
<iframe
|
||||
ref="compatiframe"
|
||||
v-if="srcUrl"
|
||||
:src="srcUrl"
|
||||
@load="loadHandler"
|
||||
style="width:100%; height:90vh; border:0; display:block;"
|
||||
></iframe>
|
||||
<div v-else class="alert alert-warning">Keine URL gefunden.</div>
|
||||
</div>
|
||||
`
|
||||
};
|
||||
@@ -2,15 +2,16 @@ export default {
|
||||
props: {
|
||||
data: {
|
||||
type: String,
|
||||
}
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {}
|
||||
return {};
|
||||
},
|
||||
template: /*html*/`
|
||||
template: /*html*/ `
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<span >{{$p.t('profil','fhAusweisStatus',[data])}}</span>
|
||||
<span v-if="data">{{$p.t('profil','fhAusweisStatus',[data])}}</span>
|
||||
<span v-else>{{$p.t('profil','fhAusweisStatusNichtAusgegeben')}}</span>
|
||||
</div>
|
||||
</div>`,
|
||||
}
|
||||
};
|
||||
|
||||
@@ -542,10 +542,10 @@ export default {
|
||||
|
||||
<template v-if="typeHeader==='mitarbeiter'">
|
||||
|
||||
<div class="foto-container col-md-2 d-flex justify-content-start align-items-center w-30 pb-3 gap-3 mt-3 position-relative" style="max-height: 8rem; max-width: 6rem; overflow: hidden;">
|
||||
<div class="foto-container d-flex flex-column align-items-center h-100 position-relative d-inline-block">
|
||||
<img
|
||||
class="d-block w-100 h-100 rounded"
|
||||
style="height: 84px; object-fit: contain;"
|
||||
class="d-block rounded"
|
||||
style="height: 96px;"
|
||||
alt="Profilbild"
|
||||
:src="getFotoSrc(headerDataMa.foto)"
|
||||
/>
|
||||
@@ -558,15 +558,13 @@ export default {
|
||||
<template v-if="fotoEditable">
|
||||
<button
|
||||
type="button"
|
||||
class="fotoedit btn btn-outline-dark btn-sm d-flex justify-content-center align-items-center position-absolute start-0"
|
||||
style="z-index: 104; font-size: 1rem; width: 2.5rem; height: 2.5rem; opacity:0; transition: opacity 0.2s; top:13%;"
|
||||
class="fotoedit buttonleft btn btn-outline-dark btn-sm d-flex justify-content-center align-items-center position-absolute start-0"
|
||||
@click="showDeleteModal(person_id)">
|
||||
<i class="fa fa-xmark"></i>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="fotoedit btn btn-outline-dark btn-sm d-flex justify-content-center align-items-center position-absolute end-0"
|
||||
style="z-index: 104; font-size: 1rem; width: 2.5rem; height: 2.5rem; opacity:0; transition: opacity 0.2s; top:13%;"
|
||||
class="fotoedit buttonright btn btn-outline-dark btn-sm d-flex justify-content-center align-items-center position-absolute end-0"
|
||||
@click="showModal(person_id)">
|
||||
<i class="fa fa-pen"></i>
|
||||
</button>
|
||||
|
||||
@@ -75,6 +75,7 @@ var Rueckstellung = {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
Rueckstellung.get(personid);
|
||||
InfocenterDetails._refreshMessages();
|
||||
InfocenterDetails._refreshLog()
|
||||
}
|
||||
else
|
||||
|
||||
@@ -102,6 +102,8 @@ require_once('dbupdate_3.4/75959_StudVw_Automatische_Tags.php');
|
||||
require_once('dbupdate_3.4/76160_lvv_favorites.php');
|
||||
require_once('dbupdate_3.4/77080_tabulator_presets_table.php');
|
||||
require_once('dbupdate_3.4/78292_gehaltsanpassungtyp.php');
|
||||
require_once('dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php');
|
||||
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
@@ -253,7 +255,7 @@ $tabellen=array(
|
||||
"hr.tbl_lohnguide_modellfunktion" => array("modellfunktion_kurzbz", "bezeichnung", "jobfamilie_kurzbz", "aktiv", "sort", "insertvon", "insertamum", "updatevon", "updateamum"),
|
||||
"hr.tbl_lohnguide_modellstelle" => array("modellstelle_kurzbz", "bezeichnung", "grade", "modellfunktion_kurzbz", "aktiv", "sort", "insertvon", "insertamum", "updatevon", "updateamum"),
|
||||
"hr.tbl_lohnguide_fachrichtung" => array("fachrichtung_kurzbz", "bezeichnung", "aktiv", "insertvon", "insertamum", "updatevon", "updateamum"),
|
||||
"hr.tbl_vertragsbestandteil_lohnguide" => array("vertragsbestandteil_id", "stellenbezeichnung", "vordienstzeit", "fachrichtung_kurzbz", "modellstelle_kurzbz", "kommentar_person", "kommentar_modellstelle"),
|
||||
"hr.tbl_vertragsbestandteil_lohnguide" => array("vertragsbestandteil_id", "stellenbezeichnung", "vordienstzeit", "fachrichtung_kurzbz", "modellstelle_kurzbz", "kommentar_person", "kommentar_modellstelle"),
|
||||
"lehre.tbl_abschlussbeurteilung" => array("abschlussbeurteilung_kurzbz","bezeichnung","bezeichnung_english","sort"),
|
||||
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
|
||||
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
|
||||
@@ -421,6 +423,7 @@ $tabellen=array(
|
||||
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"),
|
||||
"testtool.tbl_frage_sprache" => array("frage_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
|
||||
"testtool.tbl_vorschlag_sprache" => array("vorschlag_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
|
||||
"testtool.tbl_pruefling_gebiet" => array("prueflinggebiet_id","pruefling_id","gebiet_id","insertamum"),
|
||||
"system.tbl_app" => array("app"),
|
||||
"system.tbl_appdaten" => array("appdaten_id","uid","app","appversion","version","bezeichnung","daten","freigabe","insertamum","insertvon","updateamum","updatevon"),
|
||||
"system.tbl_cronjob" => array("cronjob_id","server_kurzbz","titel","beschreibung","file","last_execute","aktiv","running","jahr","monat","tag","wochentag","stunde","minute","standalone","reihenfolge","updateamum", "updatevon","insertamum","insertvon","variablen"),
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
|
||||
// Creates table public.tbl_notiz_typ if it doesn't exist and grants privileges
|
||||
if (!$result = @$db->db_query('SELECT 1 FROM testtool.tbl_pruefling_gebiet LIMIT 1'))
|
||||
{
|
||||
$qry = 'CREATE TABLE testtool.tbl_pruefling_gebiet
|
||||
(
|
||||
prueflinggebiet_id integer NOT NULL,
|
||||
pruefling_id integer NOT NULL,
|
||||
gebiet_id integer NOT NULL,
|
||||
insertamum timestamp DEFAULT now()
|
||||
);
|
||||
|
||||
ALTER TABLE testtool.tbl_pruefling_gebiet OWNER TO fhcomplete;
|
||||
ALTER TABLE testtool.tbl_pruefling_gebiet ADD CONSTRAINT pk_tbl_pruefling_gebiet PRIMARY KEY (prueflinggebiet_id);
|
||||
ALTER TABLE testtool.tbl_pruefling_gebiet ADD CONSTRAINT fk_tbl_pruefling_gebiet_pruefling_id FOREIGN KEY (pruefling_id) REFERENCES testtool.tbl_pruefling(pruefling_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE testtool.tbl_pruefling_gebiet ADD CONSTRAINT fk_tbl_pruefling_gebiet_gebiet_id FOREIGN KEY (gebiet_id) REFERENCES testtool.tbl_gebiet(gebiet_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
CREATE SEQUENCE testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
ALTER TABLE testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq OWNER TO fhcomplete;
|
||||
ALTER TABLE testtool.tbl_pruefling_gebiet ALTER COLUMN prueflinggebiet_id SET DEFAULT nextval(\'testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq\');
|
||||
|
||||
GRANT SELECT, UPDATE, INSERT, DELETE ON testtool.tbl_pruefling_gebiet TO web;
|
||||
GRANT SELECT, UPDATE, INSERT, DELETE ON testtool.tbl_pruefling_gebiet TO vilesci;
|
||||
GRANT SELECT, UPDATE ON testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq TO vilesci;
|
||||
GRANT SELECT, UPDATE ON testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq TO web;
|
||||
';
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_pruefling_gebiet: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_pruefling_gebiet table created';
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
//Add column entwicklungs_id to bis.tbl_entwicklungsteam
|
||||
if(!@$db->db_query("SELECT taglib FROM public.tbl_notiz_typ LIMIT 1"))
|
||||
{
|
||||
$qry = 'ALTER TABLE public.tbl_notiz_typ ADD COLUMN taglib character varying(32);';
|
||||
$qry = 'ALTER TABLE public.tbl_notiz_typ ADD COLUMN taglib character varying(255);';
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong> public.tbl_notiz_typ '.$db->db_last_error().'</strong><br>';
|
||||
@@ -137,3 +137,30 @@ foreach ($tags as $tag) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// increase length of taglib column if created with length < 255
|
||||
$ctaglibsql = <<<EOSQL
|
||||
select
|
||||
*
|
||||
from
|
||||
information_schema.columns c
|
||||
where
|
||||
c.table_schema = 'public'
|
||||
and c.table_name = 'tbl_notiz_typ'
|
||||
and c.column_name = 'taglib'
|
||||
and c.data_type = 'character varying'
|
||||
and c.character_maximum_length < 255
|
||||
EOSQL;
|
||||
|
||||
if($res = $db->db_query($ctaglibsql))
|
||||
{
|
||||
if($db->db_num_rows($res) > 0)
|
||||
{
|
||||
$qry = 'ALTER TABLE public.tbl_notiz_typ ALTER COLUMN taglib TYPE varchar(255) USING taglib::varchar(255)';
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong> public.tbl_notiz_typ '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_notiz_typ: Spalte taglib Datentyp zu varchar(255) geaendert.';
|
||||
}
|
||||
}
|
||||
@@ -19829,6 +19829,26 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'international',
|
||||
'category' => 'international',
|
||||
'phrase' => 'massnahmeneinmalig',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Diese Maßnahme ist nur einmalig planbar.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'This measure may only be planned once.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'international',
|
||||
'category' => 'international',
|
||||
@@ -20609,6 +20629,26 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'international',
|
||||
'category' => 'international',
|
||||
'phrase' => 'personenMassnahmen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'alle Maßnahmen der Personen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => ' all measures of the people',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'international',
|
||||
'category' => 'international',
|
||||
@@ -20689,6 +20729,46 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'international',
|
||||
'category' => 'international',
|
||||
'phrase' => 'einmalig',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Nur einmal planbar',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'One-time only',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'international',
|
||||
'category' => 'international',
|
||||
'phrase' => 'erroreinmalig',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Diese Maßnahme kann nur einmal geplant werden',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'This measure can only be planned once.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'gruppenmanagement',
|
||||
@@ -29363,6 +29443,26 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'profil',
|
||||
'phrase' => 'fhAusweisStatusNichtAusgegeben',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Der FH Ausweis wurde noch nicht ausgegeben.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'The FH ID card has not been issued yet.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'profil',
|
||||
@@ -62451,6 +62551,48 @@ I have been informed that I am under no obligation to consent to the transmissio
|
||||
)
|
||||
)
|
||||
),
|
||||
// ### Infocenter Onboarding START
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'onboardingRegistriert',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Über ElectronicOnboarding registriert',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Registered with Electronic Onboarding',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'ersterOnboardingLogin',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Erster Electronic Onboarding Login',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'First Electronic Onboarding Login',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
)
|
||||
// ### Infocenter Onboarding END
|
||||
);
|
||||
|
||||
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
<td>Kurzbz*</td>
|
||||
<td><input type="text" name="kurzbz" '.($lv->lehrveranstaltung_id==''?'onchange="copyToLehreVz();"':'onchange="return copyToLehreVzAsk();"').' value="'.$lv->kurzbz.'" /></td>
|
||||
<td>Bezeichnung*</td>
|
||||
<td colspan=3><input type="text" name="bezeichnung" value="'.htmlentities($lv->bezeichnung, ENT_QUOTES, 'UTF-8').'" size="60" maxlength="128"></td>
|
||||
<td colspan=3><input type="text" name="bezeichnung" value="'.htmlentities($lv->bezeichnung ?? '', ENT_QUOTES, 'UTF-8').'" size="60" maxlength="128"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sprache</td>
|
||||
@@ -227,7 +227,7 @@
|
||||
}
|
||||
$htmlstr .= '</select></td>
|
||||
<td>Bezeichnung English</td>
|
||||
<td colspan=3><input type="text" name="bezeichnung_english" value="'.htmlentities($lv->bezeichnung_english, ENT_QUOTES, 'UTF-8').'" size="60" maxlength="256"></td>
|
||||
<td colspan=3><input type="text" name="bezeichnung_english" value="'.htmlentities($lv->bezeichnung_english ?? '', ENT_QUOTES, 'UTF-8').'" size="60" maxlength="256"></td>
|
||||
</tr><tr>
|
||||
<td>Studiengang</td>
|
||||
<td><select name="studiengang_kz">';
|
||||
|
||||
@@ -251,6 +251,31 @@ if ($deleteSingleResult)
|
||||
exit();
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM testtool.tbl_pruefling_gebiet
|
||||
WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id) . " AND gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . "";
|
||||
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_object())
|
||||
{
|
||||
$undo .= " INSERT INTO testtool.tbl_pruefling_gebiet(prueflinggebiet_id,pruefling_id,gebiet_id, insertamum) VALUES (" .
|
||||
$db->db_add_param($row->prueflinggebiet_id, FHC_INTEGER) . ', ' .
|
||||
$db->db_add_param($row->pruefling_id, FHC_INTEGER) . ', ' .
|
||||
$db->db_add_param($row->gebiet_id, FHC_INTEGER) . ', ' .
|
||||
$db->db_add_param($row->insertamum) . ');';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->db_query('ROLLBACK');
|
||||
echo json_encode(array(
|
||||
'status' => 'fehler',
|
||||
'msg' => 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_gebiet'
|
||||
));
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
//Antworten loeschen
|
||||
$qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=" . $db->db_add_param($pruefling->pruefling_id, FHC_INTEGER) . " AND
|
||||
frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . ");
|
||||
@@ -258,7 +283,9 @@ if ($deleteSingleResult)
|
||||
DELETE FROM testtool.tbl_antwort
|
||||
WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id) . " AND
|
||||
vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN
|
||||
(SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . "));";
|
||||
(SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . "));
|
||||
|
||||
DELETE FROM testtool.tbl_pruefling_gebiet where pruefling_id=" . $db->db_add_param($pruefling->pruefling_id, FHC_INTEGER) . " AND gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . ";";
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -388,9 +415,35 @@ if ($deleteAllResults)
|
||||
exit();
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM testtool.tbl_pruefling_gebiet WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id, FHC_INTEGER) . ";
|
||||
";
|
||||
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_object())
|
||||
{
|
||||
$undo .= " INSERT INTO testtool.tbl_pruefling_gebiet(prueflinggebiet_id,pruefling_id,gebiet_id,insertamum) VALUES (" .
|
||||
$db->db_add_param($row->prueflinggebiet_id, FHC_INTEGER) . ', ' .
|
||||
$db->db_add_param($row->pruefling_id, FHC_INTEGER) . ', ' .
|
||||
$db->db_add_param($row->gebiet_id, FHC_INTEGER) . ', ' .
|
||||
$db->db_add_param($row->insertamum) . ');';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->db_query('ROLLBACK');
|
||||
echo json_encode(array(
|
||||
'status' => 'fehler',
|
||||
'msg' => 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_gebiet'
|
||||
));
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
//Antworten loeschen
|
||||
$qry = " DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
|
||||
DELETE FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";";
|
||||
DELETE FROM testtool.tbl_antwort where pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
|
||||
DELETE FROM testtool.tbl_pruefling_gebiet WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";";
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -528,8 +581,10 @@ if ($rtprueflingEntSperren)
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
$pruefling_ids[] = $row->pruefling_id;
|
||||
|
||||
$art = filter_input(INPUT_POST, 'art', FILTER_VALIDATE_BOOLEAN);
|
||||
|
||||
$qry = "UPDATE testtool.tbl_pruefling
|
||||
SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
|
||||
SET gesperrt =" . $db->db_add_param($art, FHC_BOOLEAN) . "
|
||||
WHERE pruefling_id IN (" . $db->db_implode4SQL($pruefling_ids) . ")";
|
||||
|
||||
$resultSperre = $db->db_query($qry);
|
||||
@@ -537,7 +592,7 @@ if ($rtprueflingEntSperren)
|
||||
|
||||
if ($resultSperre)
|
||||
{
|
||||
$msg = $_POST['art'] === 'false' ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
|
||||
$msg = !$art ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
|
||||
echo json_encode(array(
|
||||
'status' => 'ok',
|
||||
'msg' => $msg));
|
||||
@@ -645,12 +700,14 @@ if ($rtFreischalten)
|
||||
if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])
|
||||
&& isset($_POST['art']))
|
||||
{
|
||||
$qry = "UPDATE public.tbl_reihungstest SET freigeschaltet=" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
|
||||
$art = filter_input(INPUT_POST, 'art', FILTER_VALIDATE_BOOLEAN);
|
||||
|
||||
$qry = "UPDATE public.tbl_reihungstest SET freigeschaltet=" . $db->db_add_param($art, FHC_BOOLEAN) . "
|
||||
WHERE reihungstest_id=" . $db->db_add_param($_POST['reihungstest_id']) . ";";
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
$msg = $_POST['art'] === 'false' ? 'Reihungstest wurde gesperrt' : 'Reihungstest wurde freigeschaltet';
|
||||
$msg = !$art ? 'Reihungstest wurde gesperrt' : 'Reihungstest wurde freigeschaltet';
|
||||
echo json_encode(array(
|
||||
'status' => 'ok',
|
||||
'msg' => $msg));
|
||||
@@ -993,6 +1050,7 @@ if ($punkteUebertragen)
|
||||
{
|
||||
$setRTPunkte->new = false;
|
||||
$setRTPunkte->punkte = $rtpunkte;
|
||||
$setRTPunkte->teilgenommen = true;
|
||||
$setRTPunkte->updateamum = date('Y-m-d H:i:s');
|
||||
$setRTPunkte->updatevon = $user;
|
||||
|
||||
|
||||
@@ -402,7 +402,10 @@ if(isset($_POST['deleteteilgebiet']))
|
||||
DELETE FROM testtool.tbl_antwort
|
||||
WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND
|
||||
vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN
|
||||
(SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."));";
|
||||
(SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."));
|
||||
|
||||
DELETE FROM testtool.tbl_pruefling_gebiet
|
||||
WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND gebiet_id=".$db->db_add_param($_POST['gebiet']).";";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -497,7 +500,8 @@ if(isset($_POST['delete_all']))
|
||||
}
|
||||
//Gebiet loeschen
|
||||
$qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
|
||||
DELETE FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";";
|
||||
DELETE FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
|
||||
DELETE FROM testtool.tbl_pruefling_gebiet WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user