Merge branch 'master' into feature-83444/lvverwaltung_suche_nach_le_und_lv_inkl_router

This commit is contained in:
Harald Bamberger
2026-10-06 10:27:46 +02:00
103 changed files with 1947 additions and 527 deletions
+1
View File
@@ -3,3 +3,4 @@
if (! defined('BASEPATH')) exit('No direct script access allowed'); if (! defined('BASEPATH')) exit('No direct script access allowed');
$config['infocenter_studiengang_kz'] = '10021, 10027, 10002'; $config['infocenter_studiengang_kz'] = '10021, 10027, 10002';
$config['infocenter_qualifikationskurs_kz'] = '10002';
+44
View File
@@ -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) private function generateUrlForMenuItem($menuItem)
{ {
$menuItem->url = $this->menuItemUrlHelper($menuItem); if(!isset($menuItem->url))
unset($menuItem->content); {
$menuItem->url = $this->menuItemUrlHelper($menuItem);
unset($menuItem->content);
}
if ($menuItem->childs && count($menuItem->childs)) { if ($menuItem->childs && count($menuItem->childs)) {
$menuItem->childs = $this->generateUrlsForMenuItems($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); 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 ''; return '';
} }
@@ -91,6 +94,8 @@ class CisMenu extends FHCAPI_Controller
$doc->loadXML($menuItem->content); $doc->loadXML($menuItem->content);
$urlElem = $doc->getElementsByTagName('url')->item(0); $urlElem = $doc->getElementsByTagName('url')->item(0);
$this->menuItemUrlTargetHelper($menuItem, $doc);
if (!$urlElem) { if (!$urlElem) {
return ''; return '';
} }
@@ -122,5 +127,18 @@ class CisMenu extends FHCAPI_Controller
return $url; return $url;
} }
private function menuItemUrlTargetHelper($menuItem, $xmldoc)
{
if($menuItem->template_kurzbz === 'redirect')
{
$targetElem = $xmldoc->getElementsByTagName('target')->item(0);
$target = ($targetElem) ? $targetElem->textContent : '';
if(!in_array($target, array('_self', '_top', '_blank')))
{
$target = '_self';
}
$menuItem->target = $target;
}
}
} }
@@ -101,6 +101,9 @@ class Widget extends FHCAPI_Controller
$tmpsetup = json_decode($widget->setup); $tmpsetup = json_decode($widget->setup);
$tmpsetup->file = absoluteJsImportUrl($tmpsetup->file); $tmpsetup->file = absoluteJsImportUrl($tmpsetup->file);
$widget->setup = $tmpsetup; $widget->setup = $tmpsetup;
$widget->permitted = empty($widget->berechtigung_kurzbz)
|| $this->permissionlib->isBerechtigt($widget->berechtigung_kurzbz);
return $widget; return $widget;
}, $widgets); }, $widgets);
@@ -28,7 +28,8 @@ class Studiensemester extends FHCAPI_Controller
'getStudienjahrByStudiensemester' => self::PERM_LOGGED, 'getStudienjahrByStudiensemester' => self::PERM_LOGGED,
'getAllStudiensemesterAndAktOrNext' => self::PERM_LOGGED, 'getAllStudiensemesterAndAktOrNext' => self::PERM_LOGGED,
'current' => self::PERM_LOGGED, 'current' => self::PERM_LOGGED,
'set' => self::PERM_LOGGED 'set' => self::PERM_LOGGED,
'getContainingOrNearestByDateRange' => self::PERM_LOGGED,
) )
); );
// Load model StudiensemesterModel // Load model StudiensemesterModel
@@ -203,4 +204,15 @@ class Studiensemester extends FHCAPI_Controller
$this->terminateWithSuccess(true); $this->terminateWithSuccess(true);
} }
public function getContainingOrNearestByDateRange()
{
$from = $this->input->get("from");
$to = $this->input->get("to");
$result = $this->StudiensemesterModel->getContainingOrNearestByDateRange($from, $to);
$data = $this->getDataOrTerminateWithError($result);
$this->terminateWithSuccess($data);
}
} }
@@ -370,6 +370,7 @@ class LvTermine extends FHCAPI_Controller
$result->semester = $item->semester; $result->semester = $item->semester;
$result->verband = $item->verband; $result->verband = $item->verband;
$result->gruppe = $item->gruppe; $result->gruppe = $item->gruppe;
$result->studiensemester_kurzbz = $item->studiensemester_kurzbz;
return $result; return $result;
}, },
$lehrverband_query_result)); $lehrverband_query_result));
@@ -42,6 +42,8 @@ class Projektarbeit extends FHCAPI_Controller
$this->load->model('education/Note_model', 'NoteModel'); $this->load->model('education/Note_model', 'NoteModel');
$this->load->model('education/Projektbetreuer_model', 'BetreuerModel'); $this->load->model('education/Projektbetreuer_model', 'BetreuerModel');
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$this->load->model('crm/Student_model', 'StudentModel');
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
// load libraries // load libraries
$this->load->library('PermissionLib'); $this->load->library('PermissionLib');
@@ -100,16 +102,16 @@ class Projektarbeit extends FHCAPI_Controller
private function fetchProjektarbeitById($projektarbeit_id) { private function fetchProjektarbeitById($projektarbeit_id) {
$this->ProjektarbeitModel->resetQuery(); $this->ProjektarbeitModel->resetQuery();
$this->ProjektarbeitModel->addSelect( $this->ProjektarbeitModel->addSelect(
'lehre.tbl_projektarbeit.projektarbeit_id, titel, titel_english, themenbereich, projekttyp_kurzbz, lehrveranstaltung_id, lehreinheit_id, 'lehre.tbl_projektarbeit.projektarbeit_id, titel, titel_english, themenbereich, projekttyp_kurzbz, lehrveranstaltung_id, lehreinheit_id,
firma_id, beginn, ende, gesperrtbis, note, final, freigegeben, tbl_projektarbeit.anmerkung, fa.name AS firma_name' tbl_projektarbeit.studiensemester_kurzbz, firma_id, beginn, ende, gesperrtbis, note, final, freigegeben, tbl_projektarbeit.anmerkung, fa.name AS firma_name'
); );
$this->ProjektarbeitModel->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id');
$this->ProjektarbeitModel->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id'); $this->ProjektarbeitModel->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id');
$this->ProjektarbeitModel->addJoin('public.tbl_firma fa', 'firma_id', 'LEFT'); $this->ProjektarbeitModel->addJoin('public.tbl_firma fa', 'firma_id', 'LEFT');
return $this->ProjektarbeitModel->loadWhere( return $this->ProjektarbeitModel->loadWhere(
array('projektarbeit_id' => $projektarbeit_id) array('projektarbeit_id' => $projektarbeit_id)
); );
} }
/** /**
@@ -246,14 +248,38 @@ class Projektarbeit extends FHCAPI_Controller
$additional_lehrveranstaltung_id = $this->input->get('additional_lehrveranstaltung_id'); $additional_lehrveranstaltung_id = $this->input->get('additional_lehrveranstaltung_id');
if (!isset($student_uid)) $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Student UID']), self::ERROR_TYPE_GENERAL); if (!isset($student_uid)) $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Student UID']), self::ERROR_TYPE_GENERAL);
if (!isset($studiensemester_kurzbz)) $this->terminateWithError('Studiensemster missing', self::ERROR_TYPE_GENERAL); if (!isset($studiensemester_kurzbz)) $this->terminateWithError('Studiensemester missing', self::ERROR_TYPE_GENERAL);
// get Lvs // get prestudent_id from student model
$studentRes = $this->StudentModel->load(['student_uid' => $student_uid]);
if(hasData($studentRes)) {
$student = getData($studentRes);
} else {
$this->terminateWithError($studentRes, self::ERROR_TYPE_GENERAL);
}
// to get prestudent_status history
$historyRes = $this->PrestudentstatusModel->getHistoryPrestudent($student[0]->prestudent_id);
if(hasData($historyRes)) {
$history = getData($historyRes);
} else {
$this->terminateWithError($historyRes, self::ERROR_TYPE_GENERAL);
}
// query for every lva of a studiengang that has projektarbeit flag true
$lvsResult = $this->LehrveranstaltungModel->getLvsForProjektarbeit($student_uid, $studiengang_kz, $additional_lehrveranstaltung_id); $lvsResult = $this->LehrveranstaltungModel->getLvsForProjektarbeit($student_uid, $studiengang_kz, $additional_lehrveranstaltung_id);
if (isError($lvsResult)) return $this->terminateWithError($lvsResult, self::ERROR_TYPE_GENERAL); if (isError($lvsResult)) return $this->terminateWithError($lvsResult, self::ERROR_TYPE_GENERAL);
$lvs = hasData($lvsResult) ? getData($lvsResult) : []; $lvs = hasData($lvsResult) ? getData($lvsResult) : [];
$lvsIDs = array_column($lvs, 'lehrveranstaltung_id');
// get current studienplan_id from status history to find out which lva options are actually assigned to the students studienplan
// important so the projektarbeit has the correct lva assigned to be able to find and print the thesis title on the degree documents!
$currentStatus = $history[0];
$lvByStudienPlanRes = $this->LehrveranstaltungModel->getLvsByStudienplanByLvaIDs($currentStatus->studienplan_id, $lvsIDs);
if(hasData($lvByStudienPlanRes)) {
$lvs = getData($lvByStudienPlanRes);
}
foreach ($lvs as $lv) foreach ($lvs as $lv)
{ {
@@ -320,11 +346,18 @@ class Projektarbeit extends FHCAPI_Controller
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Projekttyp']) 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Projekttyp'])
]); ]);
$this->form_validation->set_rules('lehreinheit_id', 'Lehreinheit', 'required|is_natural', [ $this->form_validation->set_rules('lehreinheit_id', 'Lehreinheit', 'is_natural', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Lehreinheit']),
'is_natural' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Lehreinheit']) 'is_natural' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Lehreinheit'])
]); ]);
$this->form_validation->set_rules('lehrveranstaltung_id', 'Lehrveranstaltung', 'required', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Lehrveranstaltung'])
]);
$this->form_validation->set_rules('studiensemester_kurzbz', 'Studiensemester', 'required', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Studiensemester'])
]);
$this->form_validation->set_rules('beginn', 'Beginn', 'is_valid_date', [ $this->form_validation->set_rules('beginn', 'Beginn', 'is_valid_date', [
'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Beginn']) 'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Beginn'])
]); ]);
@@ -354,6 +387,8 @@ class Projektarbeit extends FHCAPI_Controller
'projekttyp_kurzbz' => $formData['projekttyp_kurzbz'], 'projekttyp_kurzbz' => $formData['projekttyp_kurzbz'],
'firma_id' => $formData['firma_id'] ?? null, 'firma_id' => $formData['firma_id'] ?? null,
'lehreinheit_id' => $formData['lehreinheit_id'], 'lehreinheit_id' => $formData['lehreinheit_id'],
'lehrveranstaltung_id' => $formData['lehrveranstaltung_id'],
'studiensemester_kurzbz' => $formData['studiensemester_kurzbz'],
'beginn' => isset($formData['beginn']) && !isEmptyString($formData['beginn']) ? $formData['beginn'] : null, 'beginn' => isset($formData['beginn']) && !isEmptyString($formData['beginn']) ? $formData['beginn'] : null,
'ende' => isset($formData['ende']) && !isEmptyString($formData['ende']) ? $formData['ende'] : null, 'ende' => isset($formData['ende']) && !isEmptyString($formData['ende']) ? $formData['ende'] : null,
'note' => $formData['note'] ?? null, 'note' => $formData['note'] ?? null,
@@ -803,7 +803,7 @@ class ReihungstestJob extends JOB_Controller
{ {
if (!isset($studiensemester) || isEmptyString($studiensemester)) if (!isset($studiensemester) || isEmptyString($studiensemester))
{ {
$this->logError("Studiensemster not passed as parameter"); $this->logError("Studiensemester not passed as parameter");
return; return;
} }
@@ -34,6 +34,9 @@ class InfoCenter extends Auth_Controller
const PREV_FILTER_ID = 'prev_filter_id'; const PREV_FILTER_ID = 'prev_filter_id';
const KEEP_TABLESORTER_FILTER = 'keepTsFilter'; const KEEP_TABLESORTER_FILTER = 'keepTsFilter';
const ONBOARDING_INSERTVON = 'onboarding';
const ONBOARDING_KENNZEICHENTYP = 'eobRegistrierungsId';
private $_uid; // contains the UID of the logged user private $_uid; // contains the UID of the logged user
// Used to log with PersonLogLib // 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/Kontakt_model', 'KontaktModel');
$this->load->model('person/Geschlecht_model', 'GeschlechtModel'); $this->load->model('person/Geschlecht_model', 'GeschlechtModel');
$this->load->model('person/adresse_model', 'AdresseModel'); $this->load->model('person/adresse_model', 'AdresseModel');
$this->load->model('person/Kennzeichen_model', 'KennzeichenModel');
// Loads libraries // Loads libraries
$this->load->library('PersonLogLib'); $this->load->library('PersonLogLib');
@@ -1452,6 +1456,100 @@ class InfoCenter extends Auth_Controller
$this->outputJsonSuccess("Done!"); $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 // Private methods
@@ -1946,6 +2044,17 @@ class InfoCenter extends Auth_Controller
show_error(getError($user_person)); 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 ( $data = array (
'lockedby' => $lockedby, 'lockedby' => $lockedby,
'lockedbyother' => $lockedbyother, 'lockedbyother' => $lockedbyother,
@@ -1955,7 +2064,9 @@ class InfoCenter extends Auth_Controller
'messages' => $messages->retval, 'messages' => $messages->retval,
'logs' => $logs, 'logs' => $logs,
'notizen' => $notizen->retval, '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; return $data;
@@ -2375,97 +2486,4 @@ class InfoCenter extends Auth_Controller
$this->loglib->logError('Studiengang has no mail for sending Freigabe mail'); $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 $_ci; // Code igniter instance
private $_uid; private $_uid;
const ZGV_UEBERPRUEFUNG_MAIL_VORLAGE = 'ZGVUEP';
public function __construct() public function __construct()
{ {
parent::__construct( parent::__construct(
@@ -23,6 +25,7 @@ class Rueckstellung extends Auth_Controller
$this->load->model('crm/RueckstellungStatus_model', 'RueckstellungStatusModel'); $this->load->model('crm/RueckstellungStatus_model', 'RueckstellungStatusModel');
$this->load->model('person/Person_model', 'PersonModel'); $this->load->model('person/Person_model', 'PersonModel');
$this->load->library('PersonLogLib'); $this->load->library('PersonLogLib');
$this->load->library('MessageLib');
$this->_setAuthUID(); // sets property uid $this->_setAuthUID(); // sets property uid
@@ -78,6 +81,8 @@ class Rueckstellung extends Auth_Controller
$this->_log($person_id, $status_kurzbz); $this->_log($person_id, $status_kurzbz);
if ($status_kurzbz === 'onhold_zgv')
$this->sendRueckstellungMessage($person_id);
$this->outputJson($result); $this->outputJson($result);
} }
@@ -104,6 +109,10 @@ class Rueckstellung extends Auth_Controller
if (isError($result)) if (isError($result))
$this->terminateWithJsonError(getError($result)); $this->terminateWithJsonError(getError($result));
$this->_log($person, $status_kurzbz); $this->_log($person, $status_kurzbz);
if ($status_kurzbz === 'onhold_zgv')
$this->sendRueckstellungMessage($person);
} }
$this->outputJsonSuccess("Erfolgreich gespeichert!"); $this->outputJsonSuccess("Erfolgreich gespeichert!");
} }
@@ -160,4 +169,26 @@ class Rueckstellung extends Auth_Controller
$this->_uid $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'
);
}
}
} }
+1 -1
View File
@@ -741,7 +741,7 @@ class AnrechnungLib
$fullname = hasData($result) ? $result->retval[0]->vorname. $result->retval[0]->nachname : ''; $fullname = hasData($result) ? $result->retval[0]->vorname. $result->retval[0]->nachname : '';
// Return filename // Return filename
return 'Anrechnungsantrag'. $orgform_kurzbz .'_LV-'. $lehrveranstaltung_id. '_'. $fullname; return 'Anrechnungsantrag'. $orgform_kurzbz .'_LV-'. $lehrveranstaltung_id. '_'. $fullname . '.pdf';
} }
public function LVhasLector($anrechnung_id) public function LVhasLector($anrechnung_id)
+24 -19
View File
@@ -31,18 +31,20 @@ class Vertrag_model extends DB_Model
*/ */
public function save($person_id, $mitarbeiter_uid, $lehrveranstaltung_id, $lehreinheit_id, $projektarbeit_id = null, $vertragsstunden, $betrag, $studiensemester_kurzbz) public function save($person_id, $mitarbeiter_uid, $lehrveranstaltung_id, $lehreinheit_id, $projektarbeit_id = null, $vertragsstunden, $betrag, $studiensemester_kurzbz)
{ {
$person_id = (isset($person_id) && is_numeric($person_id)) $vertragstyp_kurzbz = (is_null($projektarbeit_id)) ? 'Lehrauftrag' : 'Betreuung';
$person_id = (isset($person_id) && is_numeric($person_id))
? $person_id ? $person_id
: show_error('peron_id must be set and numeric.'); : show_error('peron_id must be set and numeric.');
$lehreinheit_id = (isset($lehreinheit_id) && is_numeric($lehreinheit_id))
? $lehreinheit_id
: show_error('lehreinheit_id must be set and numeric.');
$lehrveranstaltung_id = (isset($lehrveranstaltung_id) && is_numeric($lehrveranstaltung_id)) $lehrveranstaltung_id = (isset($lehrveranstaltung_id) && is_numeric($lehrveranstaltung_id))
? $lehrveranstaltung_id ? $lehrveranstaltung_id
: show_error('lehrveranstaltung_id must be set and numeric.'); : show_error('lehrveranstaltung_id must be set and numeric.');
$projektarbeit_id = (isset($projektarbeit_id) && is_numeric($projektarbeit_id)) $projektarbeit_id = (isset($projektarbeit_id) && is_numeric($projektarbeit_id))
? $projektarbeit_id ? $projektarbeit_id
: null; : null;
$lehreinheit_id = (isset($lehreinheit_id) && is_numeric($lehreinheit_id))
? $lehreinheit_id
: (($vertragstyp_kurzbz == 'Betreuung') ? null : show_error('lehreinheit_id must be set and numeric.'));
$vertragsstunden = (isset($vertragsstunden) && is_numeric($vertragsstunden)) $vertragsstunden = (isset($vertragsstunden) && is_numeric($vertragsstunden))
? $vertragsstunden ? $vertragsstunden
: 0; : 0;
@@ -53,7 +55,7 @@ class Vertrag_model extends DB_Model
? $mitarbeiter_uid ? $mitarbeiter_uid
: show_error('mitarbeiter_uid must be set and a string value.');; : show_error('mitarbeiter_uid must be set and a string value.');;
$vertragstyp_kurzbz = (is_null($projektarbeit_id)) ? 'Lehrauftrag' : 'Betreuung';
// First check if Vertrag already exists for that Lehrauftrag or for that Projektbetreuerauftrag // First check if Vertrag already exists for that Lehrauftrag or for that Projektbetreuerauftrag
if ($vertragstyp_kurzbz == 'Lehrauftrag') if ($vertragstyp_kurzbz == 'Lehrauftrag')
@@ -257,7 +259,7 @@ class Vertrag_model extends DB_Model
} }
elseif ($vertragstyp_kurzbz == 'Betreuung') elseif ($vertragstyp_kurzbz == 'Betreuung')
{ {
$this->addSelect('lehreinheit_id'); $this->addSelect('lehreinheit_id, lehre.tbl_projektarbeit.lehrveranstaltung_id, lehre.tbl_projektarbeit.studiensemester_kurzbz');
$this->addJoin('lehre.tbl_projektbetreuer', 'vertrag_id'); $this->addJoin('lehre.tbl_projektbetreuer', 'vertrag_id');
$this->addJoin('lehre.tbl_projektarbeit', 'projektarbeit_id'); $this->addJoin('lehre.tbl_projektarbeit', 'projektarbeit_id');
if ($result = $this->loadWhere(array('vertrag_id' => $vertrag_id))) if ($result = $this->loadWhere(array('vertrag_id' => $vertrag_id)))
@@ -281,17 +283,22 @@ class Vertrag_model extends DB_Model
{ {
if ($result = getData($this->getLehreinheitID($vertrag_id))) if ($result = getData($this->getLehreinheitID($vertrag_id)))
{ {
$this->load->model('education/Lehreinheit_model', 'LehreinheitModel'); if (!empty($result[0]->lehreinheit_id))
$this->LehreinheitModel->addSelect($select); {
$this->load->model('education/Lehreinheit_model', 'LehreinheitModel');
$this->LehreinheitModel->addSelect($select);
if($result = $this->LehreinheitModel->load($result[0]->lehreinheit_id)) if ($result = $this->LehreinheitModel->load($result[0]->lehreinheit_id))
{ {
return success($result->retval); return success($result->retval);
} }
else else
{ {
return error('Fehler beim Laden der Lehreinheit'); return error('Fehler beim Laden der Lehreinheit');
}
} }
return success($result);
} }
else else
{ {
@@ -563,14 +570,13 @@ SELECT
null::integer as pruefung_id, null::integer as pruefung_id,
projektarbeit_id, projektarbeit_id,
(tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag1, (tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag1,
tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
tbl_projektbetreuer.betreuerart_kurzbz, tbl_projektbetreuer.betreuerart_kurzbz,
(SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid)
as bezeichnung as bezeichnung
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
tbl_projektbetreuer.person_id=? tbl_projektbetreuer.person_id=?
AND vertrag_id IS NULL AND vertrag_id IS NULL
@@ -619,14 +625,13 @@ SELECT
null::integer as pruefung_id, null::integer as pruefung_id,
projektarbeit_id, projektarbeit_id,
(tbl_projektbetreuer.stunden * tbl_projektbetreuer.stundensatz) as betrag, (tbl_projektbetreuer.stunden * tbl_projektbetreuer.stundensatz) as betrag,
tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
tbl_projektbetreuer.betreuerart_kurzbz, tbl_projektbetreuer.betreuerart_kurzbz,
(SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid)
as bezeichnung, vertrag_id as bezeichnung, vertrag_id
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
tbl_projektbetreuer.person_id=? tbl_projektbetreuer.person_id=?
AND vertrag_id = ? AND vertrag_id = ?
@@ -177,7 +177,7 @@ class Prestudentstatus_model extends DB_Model
* @param prestudent_id ID of the Prestudent. * @param prestudent_id ID of the Prestudent.
* @param $status_kurzbz kurzbz of the status. * @param $status_kurzbz kurzbz of the status.
* @param $ausbildungssemester ausbildungssemester of the status. * @param $ausbildungssemester ausbildungssemester of the status.
* @param $studiensemester_kurzbz studiensemster of the status. * @param $studiensemester_kurzbz studiensemester of the status.
* *
* @return result object with all the status entries * @return result object with all the status entries
*/ */
@@ -85,9 +85,18 @@ class Lehreinheitmitarbeiter_model extends DB_Model
public function getLektorenByLe($lehreinheit_id) public function getLektorenByLe($lehreinheit_id)
{ {
$this->addSelect('vorname, nachname, tbl_lehreinheitmitarbeiter.*, stundenplan.verplant'); $this->addSelect('tbl_person.vorname, tbl_person.nachname, tbl_lehreinheitmitarbeiter.*, stundenplan.verplant,
COALESCE(insertvonperson.vorname || \' \' || insertvonperson.nachname, tbl_lehreinheitmitarbeiter.insertvon) as insertvon,
COALESCE(updatevonperson.vorname || \' \' || updatevonperson.nachname, tbl_lehreinheitmitarbeiter.updatevon) as updatevon');
$this->addJoin('tbl_benutzer', 'uid = mitarbeiter_uid'); $this->addJoin('tbl_benutzer', 'uid = mitarbeiter_uid');
$this->addJoin('tbl_person', 'person_id'); $this->addJoin('tbl_person', 'person_id');
$this->addJoin('tbl_benutzer insertvonbenutzer', 'insertvonbenutzer.uid = tbl_lehreinheitmitarbeiter.insertvon', 'LEFT');
$this->addJoin('tbl_person insertvonperson', 'insertvonperson.person_id = insertvonbenutzer.person_id', 'LEFT');
$this->addJoin('tbl_benutzer updatevonbenutzer', 'updatevonbenutzer.uid = tbl_lehreinheitmitarbeiter.updatevon', 'LEFT');
$this->addJoin('tbl_person updatevonperson', 'updatevonperson.person_id = updatevonbenutzer.person_id', 'LEFT');
$this->addJoin('( $this->addJoin('(
SELECT 1 as verplant, lehreinheit_id, mitarbeiter_uid SELECT 1 as verplant, lehreinheit_id, mitarbeiter_uid
@@ -1263,6 +1263,39 @@ class Lehrveranstaltung_model extends DB_Model
"; ";
} }
/**
* Gets lehrveranstaltungen of Studienplan of a certain lva_id set
* used if a bigger set of lva id is already available and it needs to be checked against a certain studienplan aswell
* @param $studienplan_id ID des Studienplans
* @param $lva_ids LVA_ID welche abgegleicht werden sollen
* @return array|null
*/
public function getLvsByStudienplanByLvaIDs($studienplan_id, $lva_ids)
{
$params = array($studienplan_id, $lva_ids);
$qry = "SELECT tbl_lehrveranstaltung.*,
tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id,
tbl_studienplan_lehrveranstaltung.semester as stpllv_semester,
tbl_studienplan_lehrveranstaltung.pflicht as stpllv_pflicht,
tbl_studienplan_lehrveranstaltung.koordinator as stpllv_koordinator,
tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent,
tbl_studienplan_lehrveranstaltung.sort stpllv_sort,
tbl_studienplan_lehrveranstaltung.curriculum,
tbl_studienplan_lehrveranstaltung.export,
tbl_studienplan_lehrveranstaltung.genehmigung
FROM lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_studienplan_lehrveranstaltung
USING(lehrveranstaltung_id)
WHERE tbl_studienplan_lehrveranstaltung.studienplan_id = ?
AND tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id IN ?
";
$qry .= " ORDER BY stpllv_sort, semester, sort";
return $this->execQuery($qry, $params);
}
public function getAllOe($lv_id) public function getAllOe($lv_id)
{ {
$qry = "SELECT DISTINCT oe_kurzbz $qry = "SELECT DISTINCT oe_kurzbz
@@ -50,8 +50,7 @@ class Paabgabe_model extends DB_Model
JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
JOIN public.tbl_benutzer bn_student ON(tbl_projektarbeit.student_uid=bn_student.uid) JOIN public.tbl_benutzer bn_student ON(tbl_projektarbeit.student_uid=bn_student.uid)
JOIN public.tbl_person person_student ON(bn_student.person_id=person_student.person_id) JOIN public.tbl_person person_student ON(bn_student.person_id=person_student.person_id)
JOIN lehre.tbl_lehreinheit ON(tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id)
JOIN public.tbl_studiengang ON(tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz) JOIN public.tbl_studiengang ON(tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz)
JOIN campus.tbl_paabgabetyp USING(paabgabetyp_kurzbz) JOIN campus.tbl_paabgabetyp USING(paabgabetyp_kurzbz)
WHERE WHERE
@@ -68,14 +67,13 @@ class Paabgabe_model extends DB_Model
campus.tbl_paabgabe.insertvon, campus.tbl_paabgabe.insertamum, campus.tbl_paabgabe.updatevon, campus.tbl_paabgabe.updateamum, campus.tbl_paabgabe.insertvon, campus.tbl_paabgabe.insertamum, campus.tbl_paabgabe.updatevon, campus.tbl_paabgabe.updateamum,
campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel, campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel,
UPPER(tbl_studiengang.typ) as stgtyp, UPPER(tbl_studiengang.kurzbz) as stgkz, public.tbl_studiengang.studiengang_kz, UPPER(tbl_studiengang.typ) as stgtyp, UPPER(tbl_studiengang.kurzbz) as stgkz, public.tbl_studiengang.studiengang_kz,
public.tbl_studiengang.oe_kurzbz as stg_oe_kurzbz, tbl_lehreinheit.studiensemester_kurzbz, public.tbl_studiengang.oe_kurzbz as stg_oe_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
public.tbl_person.anrede, public.tbl_person.titelpre, public.tbl_person.vorname, public.tbl_person.nachname, public.tbl_person.titelpost public.tbl_person.anrede, public.tbl_person.titelpre, public.tbl_person.vorname, public.tbl_person.nachname, public.tbl_person.titelpost
FROM campus.tbl_paabgabe FROM campus.tbl_paabgabe
JOIN campus.tbl_paabgabetyp USING (paabgabetyp_kurzbz) JOIN campus.tbl_paabgabetyp USING (paabgabetyp_kurzbz)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit using(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) JOIN public.tbl_studiengang ON(lehre.tbl_lehrveranstaltung.studiengang_kz = public.tbl_studiengang.studiengang_kz)
JOIN public.tbl_studiengang on(lehre.tbl_lehrveranstaltung.studiengang_kz = public.tbl_studiengang.studiengang_kz)
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)
@@ -93,7 +91,7 @@ class Paabgabe_model extends DB_Model
campus.tbl_paabgabe.insertvon, campus.tbl_paabgabe.insertamum, campus.tbl_paabgabe.updatevon, campus.tbl_paabgabe.updateamum, campus.tbl_paabgabe.insertvon, campus.tbl_paabgabe.insertamum, campus.tbl_paabgabe.updatevon, campus.tbl_paabgabe.updateamum,
campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel, campus.tbl_paabgabe.note, upload_allowed, beurteilungsnotiz, student_uid, tbl_projektarbeit.note, lehre.tbl_projektarbeit.titel,
UPPER(tbl_studiengang.typ) as stgtyp, UPPER(tbl_studiengang.kurzbz) as stgkz, public.tbl_studiengang.studiengang_kz, UPPER(tbl_studiengang.typ) as stgtyp, UPPER(tbl_studiengang.kurzbz) as stgkz, public.tbl_studiengang.studiengang_kz,
public.tbl_studiengang.oe_kurzbz as stg_oe_kurzbz, tbl_lehreinheit.studiensemester_kurzbz, public.tbl_studiengang.oe_kurzbz as stg_oe_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
lehre.tbl_projektbetreuer.betreuerart_kurzbz, lehre.tbl_projektbetreuer.person_id, lehre.tbl_projektbetreuer.betreuerart_kurzbz, lehre.tbl_projektbetreuer.person_id,
public.tbl_person.anrede, public.tbl_person.titelpre, public.tbl_person.vorname, public.tbl_person.nachname, public.tbl_person.titelpost public.tbl_person.anrede, public.tbl_person.titelpre, public.tbl_person.vorname, public.tbl_person.nachname, public.tbl_person.titelpost
@@ -101,8 +99,7 @@ class Paabgabe_model extends DB_Model
JOIN campus.tbl_paabgabetyp USING (paabgabetyp_kurzbz) JOIN campus.tbl_paabgabetyp USING (paabgabetyp_kurzbz)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id) JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit using(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id)
JOIN public.tbl_studiengang on(lehre.tbl_lehrveranstaltung.studiengang_kz = public.tbl_studiengang.studiengang_kz) JOIN public.tbl_studiengang on(lehre.tbl_lehrveranstaltung.studiengang_kz = public.tbl_studiengang.studiengang_kz)
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 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)
@@ -25,7 +25,7 @@ class Projektarbeit_model extends DB_Model
{ {
$qry = "SELECT $qry = "SELECT
pa.*, tbl_projekttyp.bezeichnung, pa.*, tbl_projekttyp.bezeichnung,
tbl_lehreinheit.studiensemester_kurzbz, tbl_lehrveranstaltung.lehrveranstaltung_id, pa.studiensemester_kurzbz, pa.lehrveranstaltung_id,
tbl_firma.name AS firma_name, tbl_firma.name AS firma_name,
( (
SELECT SELECT
@@ -41,7 +41,6 @@ class Projektarbeit_model extends DB_Model
FROM FROM
lehre.tbl_projektarbeit pa lehre.tbl_projektarbeit pa
JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
LEFT JOIN public.tbl_firma USING (firma_id) LEFT JOIN public.tbl_firma USING (firma_id)
WHERE WHERE
@@ -57,7 +56,7 @@ class Projektarbeit_model extends DB_Model
if (isset($studiensemester_kurzbz)) if (isset($studiensemester_kurzbz))
{ {
$qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz=?'; $qry .= ' AND tbl_projektarbeit.studiensemester_kurzbz=?';
$params[] = $studiensemester_kurzbz; $params[] = $studiensemester_kurzbz;
} }
@@ -134,7 +133,7 @@ class Projektarbeit_model extends DB_Model
projektarbeit_id, projektarbeit_id,
lehre.tbl_projekttyp.bezeichnung as projekttypbezeichnung, lehre.tbl_projekttyp.bezeichnung as projekttypbezeichnung,
lehre.tbl_projekttyp.projekttyp_kurzbz as projekttypkurzbz, lehre.tbl_projekttyp.projekttyp_kurzbz as projekttypkurzbz,
lehre.tbl_lehreinheit.studiensemester_kurzbz, lehre.tbl_projektarbeit.studiensemester_kurzbz,
lehre.tbl_lehrveranstaltung.studiengang_kz, lehre.tbl_lehrveranstaltung.studiengang_kz,
public.tbl_studiengang.kurzbzlang, public.tbl_studiengang.kurzbzlang,
lehre.tbl_projektarbeit.note as note, lehre.tbl_projektarbeit.note as note,
@@ -157,7 +156,6 @@ class Projektarbeit_model extends DB_Model
LEFT JOIN public.tbl_benutzer USING(person_id) LEFT JOIN public.tbl_benutzer USING(person_id)
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
LEFT JOIN lehre.tbl_betreuerart USING(betreuerart_kurzbz) LEFT JOIN lehre.tbl_betreuerart USING(betreuerart_kurzbz)
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_mitarbeiter.mitarbeiter_uid = public.tbl_benutzer.uid) LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_mitarbeiter.mitarbeiter_uid = public.tbl_benutzer.uid)
LEFT JOIN public.tbl_studiengang USING(studiengang_kz) LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
@@ -366,7 +364,7 @@ class Projektarbeit_model extends DB_Model
tbl_studiengang.typ, tbl_studiengang.kurzbz, tbl_studiengang.typ, tbl_studiengang.kurzbz,
tbl_projektarbeit.projekttyp_kurzbz, tbl_projekttyp.bezeichnung, tbl_projektarbeit.projekttyp_kurzbz, tbl_projekttyp.bezeichnung,
tbl_projektarbeit.titel, tbl_projektarbeit.projektarbeit_id, tbl_projektarbeit.note, tbl_projektarbeit.titel, tbl_projektarbeit.projektarbeit_id, tbl_projektarbeit.note,
student_benutzer.uid, tbl_student.matrikelnr, tbl_lehreinheit.studiensemester_kurzbz, public.tbl_student.student_uid, student_benutzer.uid, tbl_student.matrikelnr, tbl_projektarbeit.studiensemester_kurzbz, public.tbl_student.student_uid,
lehre.tbl_projektarbeit.sprache, lehre.tbl_projektarbeit.sprache,
lehre.tbl_projektarbeit.seitenanzahl, lehre.tbl_projektarbeit.seitenanzahl,
@@ -430,7 +428,6 @@ class Projektarbeit_model extends DB_Model
LEFT JOIN public.tbl_benutzer student_benutzer ON student_benutzer.uid = lehre.tbl_projektarbeit.student_uid LEFT JOIN public.tbl_benutzer student_benutzer ON student_benutzer.uid = lehre.tbl_projektarbeit.student_uid
LEFT JOIN public.tbl_person student_person ON student_benutzer.person_id = student_person.person_id LEFT JOIN public.tbl_person student_person ON student_benutzer.person_id = student_person.person_id
LEFT JOIN public.tbl_student ON student_benutzer.uid = public.tbl_student.student_uid LEFT JOIN public.tbl_student ON student_benutzer.uid = public.tbl_student.student_uid
LEFT JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
LEFT JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
LEFT JOIN public.tbl_studiengang ON public.tbl_student.studiengang_kz = public.tbl_studiengang.studiengang_kz LEFT JOIN public.tbl_studiengang ON public.tbl_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
@@ -503,7 +500,7 @@ class Projektarbeit_model extends DB_Model
student_person.vorname AS student_vorname, student_person.vorname AS student_vorname,
student_person.nachname AS student_nachname, student_person.nachname AS student_nachname,
public.tbl_student.matrikelnr, public.tbl_student.matrikelnr,
tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
betreuer_benutzer.uid AS betreuer_benutzer_uid, betreuer_benutzer.uid AS betreuer_benutzer_uid,
betreuer_person.titelpre AS betreuer_titelpre, betreuer_person.titelpre AS betreuer_titelpre,
betreuer_person.vorname AS betreuer_vorname, betreuer_person.vorname AS betreuer_vorname,
@@ -565,7 +562,6 @@ class Projektarbeit_model extends DB_Model
LEFT JOIN public.tbl_benutzer student_benutzer ON student_benutzer.uid = lehre.tbl_projektarbeit.student_uid LEFT JOIN public.tbl_benutzer student_benutzer ON student_benutzer.uid = lehre.tbl_projektarbeit.student_uid
LEFT JOIN public.tbl_person student_person ON student_benutzer.person_id = student_person.person_id LEFT JOIN public.tbl_person student_person ON student_benutzer.person_id = student_person.person_id
LEFT JOIN public.tbl_student ON student_benutzer.uid = public.tbl_student.student_uid LEFT JOIN public.tbl_student ON student_benutzer.uid = public.tbl_student.student_uid
LEFT JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
LEFT JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
LEFT JOIN public.tbl_studiengang ON public.tbl_student.studiengang_kz = public.tbl_studiengang.studiengang_kz LEFT JOIN public.tbl_studiengang ON public.tbl_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
@@ -633,7 +629,7 @@ class Projektarbeit_model extends DB_Model
student_person.vorname AS student_vorname, student_person.vorname AS student_vorname,
student_person.nachname AS student_nachname, student_person.nachname AS student_nachname,
public.tbl_student.matrikelnr, public.tbl_student.matrikelnr,
tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
betreuer_benutzer.uid AS betreuer_benutzer_uid, betreuer_benutzer.uid AS betreuer_benutzer_uid,
betreuer_person.titelpre AS betreuer_titelpre, betreuer_person.titelpre AS betreuer_titelpre,
betreuer_person.vorname AS betreuer_vorname, betreuer_person.vorname AS betreuer_vorname,
@@ -695,7 +691,6 @@ class Projektarbeit_model extends DB_Model
LEFT JOIN public.tbl_benutzer student_benutzer ON student_benutzer.uid = lehre.tbl_projektarbeit.student_uid LEFT JOIN public.tbl_benutzer student_benutzer ON student_benutzer.uid = lehre.tbl_projektarbeit.student_uid
LEFT JOIN public.tbl_person student_person ON student_benutzer.person_id = student_person.person_id LEFT JOIN public.tbl_person student_person ON student_benutzer.person_id = student_person.person_id
LEFT JOIN public.tbl_student ON student_benutzer.uid = public.tbl_student.student_uid LEFT JOIN public.tbl_student ON student_benutzer.uid = public.tbl_student.student_uid
LEFT JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
LEFT JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
LEFT JOIN public.tbl_studiengang ON public.tbl_student.studiengang_kz = public.tbl_studiengang.studiengang_kz LEFT JOIN public.tbl_studiengang ON public.tbl_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
@@ -218,7 +218,7 @@ class Studiensemester_model extends DB_Model
*/ */
public function getByDate($date) public function getByDate($date)
{ {
// gets the studiensemster of a date or the next closest previous studiensemester if a date is not within a studiensemester // gets the studiensemester of a date or the next closest previous studiensemester if a date is not within a studiensemester
$query = " $query = "
SELECT studiensemester_kurzbz, start, ende SELECT studiensemester_kurzbz, start, ende
FROM public.tbl_studiensemester FROM public.tbl_studiensemester
@@ -292,13 +292,29 @@ class Studiensemester_model extends DB_Model
COALESCE( COALESCE(
(SELECT studiensemester_kurzbz FROM semester_interval_startdate), (SELECT studiensemester_kurzbz FROM semester_interval_startdate),
(SELECT studiensemester_kurzbz FROM nearest_semester_interval_startdate) (SELECT studiensemester_kurzbz FROM nearest_semester_interval_startdate)
) AS studiensemester_kurzbz ) AS studiensemester_kurzbz,
COALESCE(
(SELECT start FROM semester_interval_startdate),
(SELECT start FROM nearest_semester_interval_startdate)
) as start,
COALESCE(
(SELECT ende FROM semester_interval_startdate),
(SELECT ende FROM nearest_semester_interval_startdate)
) as ende
UNION UNION
SELECT SELECT
COALESCE( COALESCE(
(SELECT studiensemester_kurzbz FROM semester_interval_enddate), (SELECT studiensemester_kurzbz FROM semester_interval_enddate),
(SELECT studiensemester_kurzbz FROM nearest_semester_interval_enddate) (SELECT studiensemester_kurzbz FROM nearest_semester_interval_enddate)
) AS studiensemester_kurzbz ) AS studiensemester_kurzbz,
COALESCE(
(SELECT start FROM semester_interval_enddate),
(SELECT start FROM nearest_semester_interval_enddate)
) as start,
COALESCE(
(SELECT ende FROM semester_interval_enddate),
(SELECT ende FROM nearest_semester_interval_enddate)
) as ende
EOSQL; EOSQL;
+10 -3
View File
@@ -98,7 +98,7 @@ class Notiz_model extends DB_Model
/** /**
* Add a Notiz for a given person * 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 // Loads model Notizzuordnung_model
$this->load->model('person/Notizzuordnung_model', 'NotizzuordnungModel'); $this->load->model('person/Notizzuordnung_model', 'NotizzuordnungModel');
@@ -106,8 +106,15 @@ class Notiz_model extends DB_Model
// Start DB transaction // Start DB transaction
$this->db->trans_start(false); $this->db->trans_start(false);
$result = $this->insert(array('titel' => $titel, 'text' => $text, 'erledigt' => $erledigt, 'verfasser_uid' => $verfasser_uid, $result = $this->insert(
"insertvon" => $verfasser_uid)); array(
'titel' => $titel,
'text' => $text,
'erledigt' => $erledigt,
'verfasser_uid' => $verfasser_uid,
'insertvon' => $insertvon ?? $verfasser_uid
)
);
if (isSuccess($result)) if (isSuccess($result))
{ {
@@ -232,8 +232,8 @@ FROM
SELECT SELECT
pa.lehreinheit_id, pa.lehreinheit_id,
lv.lehrveranstaltung_id, lv.lehrveranstaltung_id,
pa.projektarbeit_id::text AS "projektarbeit_id", pa.projektarbeit_id::text AS "projektarbeit_id",
le.studiensemester_kurzbz, pa.studiensemester_kurzbz,
stg.studiengang_kz, stg.studiengang_kz,
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz", upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
lv.orgform_kurzbz, lv.orgform_kurzbz,
@@ -268,8 +268,7 @@ FROM
FROM FROM
lehre.tbl_projektbetreuer pb lehre.tbl_projektbetreuer pb
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN PUBLIC.tbl_person person USING (person_id) JOIN PUBLIC.tbl_person person USING (person_id)
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
@@ -280,7 +279,7 @@ FROM
/* filter projektbetreuuer */ /* filter projektbetreuuer */
pb.person_id = \'' . $PERSON_ID . '\' pb.person_id = \'' . $PERSON_ID . '\'
/* filter studiensemester */ /* filter studiensemester */
AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\' AND pa.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
/* filter active lehrveranstaltungen */ /* filter active lehrveranstaltungen */
AND lv.aktiv = TRUE AND lv.aktiv = TRUE
/* filter active organisationseinheiten */ /* filter active organisationseinheiten */
@@ -242,8 +242,8 @@ FROM
pa.lehreinheit_id, pa.lehreinheit_id,
lv.lehrveranstaltung_id, lv.lehrveranstaltung_id,
lv.bezeichnung AS "lv_bezeichnung", lv.bezeichnung AS "lv_bezeichnung",
(pa.projektarbeit_id::text) AS "projektarbeit_id", (pa.projektarbeit_id::text) AS "projektarbeit_id",
le.studiensemester_kurzbz, pa.studiensemester_kurzbz,
stg.studiengang_kz, stg.studiengang_kz,
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz", upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
lv.orgform_kurzbz, lv.orgform_kurzbz,
@@ -270,7 +270,7 @@ FROM
ELSE (oe.organisationseinheittyp_kurzbz || ELSE (oe.organisationseinheittyp_kurzbz ||
\' \' || oe.bezeichnung) \' \' || oe.bezeichnung)
END AS "lv_oe_kurzbz", END AS "lv_oe_kurzbz",
(nachname || \' \' || vorname) AS "lektor", (nachname || \' \' || vorname) AS "lektor",
TRUNC(pb.stunden, 1) AS "stunden", TRUNC(pb.stunden, 1) AS "stunden",
pb.stundensatz, pb.stundensatz,
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag", TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
@@ -280,8 +280,7 @@ FROM
FROM FROM
lehre.tbl_projektbetreuer pb lehre.tbl_projektbetreuer pb
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN PUBLIC.tbl_person person USING (person_id) JOIN PUBLIC.tbl_person person USING (person_id)
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
@@ -291,7 +290,7 @@ FROM
/* filter organisationseinheit */ /* filter organisationseinheit */
lv.oe_kurzbz IN (\'' . implode('\',\'', $ORGANISATIONSEINHEIT) . '\') lv.oe_kurzbz IN (\'' . implode('\',\'', $ORGANISATIONSEINHEIT) . '\')
/* filter studiensemester */ /* filter studiensemester */
AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\' AND pa.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
/* filter active lehrveranstaltungen */ /* filter active lehrveranstaltungen */
AND lv.aktiv = TRUE AND lv.aktiv = TRUE
/* filter active organisationseinheiten */ /* filter active organisationseinheiten */
@@ -272,8 +272,8 @@ FROM
pa.lehreinheit_id, pa.lehreinheit_id,
lv.lehrveranstaltung_id, lv.lehrveranstaltung_id,
lv.bezeichnung AS "lv_bezeichnung", lv.bezeichnung AS "lv_bezeichnung",
pa.projektarbeit_id::text AS "projektarbeit_id", pa.projektarbeit_id::text AS "projektarbeit_id",
le.studiensemester_kurzbz, pa.studiensemester_kurzbz,
stg.studiengang_kz, stg.studiengang_kz,
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz", upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
lv.orgform_kurzbz, lv.orgform_kurzbz,
@@ -310,8 +310,7 @@ FROM
FROM FROM
lehre.tbl_projektbetreuer pb lehre.tbl_projektbetreuer pb
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN PUBLIC.tbl_person person USING (person_id) JOIN PUBLIC.tbl_person person USING (person_id)
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
@@ -321,7 +320,7 @@ FROM
/* filter studiengang */ /* filter studiengang */
lv.studiengang_kz IN ('. implode(',', $STUDIENGANG) . ') lv.studiengang_kz IN ('. implode(',', $STUDIENGANG) . ')
/* filter studiensemester */ /* filter studiensemester */
AND le.studiensemester_kurzbz = \''. $STUDIENSEMESTER. '\' AND pa.studiensemester_kurzbz = \''. $STUDIENSEMESTER. '\'
/* filter active lehrveranstaltungen */ /* filter active lehrveranstaltungen */
AND lv.aktiv = TRUE AND lv.aktiv = TRUE
/* filter ausbildungssemester */ /* filter ausbildungssemester */
@@ -8,6 +8,7 @@
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\''; $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$REJECTED_STATUS = '\'Abgewiesener\''; $REJECTED_STATUS = '\'Abgewiesener\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz'); $ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$QUALIFIKATIONSKURS = $this->config->item('infocenter_qualifikationskurs_kz');
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\''; $STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\''; $STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\''; $ORG_NAME = '\'InfoCenter\'';
@@ -277,7 +278,26 @@ $query = '
WHERE konto.person_id = p.person_id WHERE konto.person_id = p.person_id
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .' AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
AND konto.buchungstyp_kurzbz = '. $KAUTION_DRITT_STAAT .' 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 FROM public.tbl_person p
LEFT JOIN ( LEFT JOIN (
SELECT tpl.person_id, SELECT tpl.person_id,
@@ -351,7 +371,8 @@ $query = '
'ZGV Nation MA', 'ZGV Nation MA',
'InfoCenter Mitarbeiter', 'InfoCenter Mitarbeiter',
'Identitätsnachweis', 'Identitätsnachweis',
ucfirst($this->p->t('infocenter', 'kaution')) ucfirst($this->p->t('infocenter', 'kaution')),
'Qualikurs'
), ),
'formatRow' => function($datasetRaw) { 'formatRow' => function($datasetRaw) {
@@ -480,6 +501,14 @@ $query = '
$datasetRaw->{'Kaution'} = 'Offen'; $datasetRaw->{'Kaution'} = 'Offen';
} }
if ($datasetRaw->{'Qualikurs'} === null)
{
$datasetRaw->{'Qualikurs'} = 'Nein';
}
else
{
$datasetRaw->{'Qualikurs'} = 'Ja';
}
return $datasetRaw; return $datasetRaw;
}, },
'markRow' => function($datasetRaw) { 'markRow' => function($datasetRaw) {
@@ -92,6 +92,14 @@
</table> </table>
</div> </div>
<div class="col-lg-6 table-responsive"> <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"> <table class="table table-bordered stammdaten_form">
<thead> <thead>
<tr> <tr>
@@ -191,12 +199,12 @@
</div> </div>
<?php endif; ?> <?php endif; ?>
<div class="col-xs-6"> <div class="col-xs-6">
<a class="editStammdaten"> <a class="editStammdaten" href="javascript:void(0);">
<i class="fa fa-edit"></i>&nbsp;<?php echo $this->p->t('ui','bearbeiten'); ?></a> <i class="fa fa-edit"></i>&nbsp;<?php echo $this->p->t('ui','bearbeiten'); ?></a>
<div class="editActionStammdaten" style="display:none"> <div class="editActionStammdaten" style="display:none">
<a class="cancelStammdaten"> <a class="cancelStammdaten" href="javascript:void(0);">
<i class="fa fa-trash"></i>&nbsp;<?php echo $this->p->t('ui','abbrechen');?></a> <i class="fa fa-trash"></i>&nbsp;<?php echo $this->p->t('ui','abbrechen');?></a>
<a class="saveStammdaten"> <a class="saveStammdaten" href="javascript:void(0);">
<i class="fa fa-save"></i>&nbsp;<?php echo $this->p->t('ui','speichern'); ?></a> <i class="fa fa-save"></i>&nbsp;<?php echo $this->p->t('ui','speichern'); ?></a>
</div> </div>
</div> </div>
@@ -21,6 +21,7 @@ $this->load->view('templates/FHC-Header', $includesArray);
?> ?>
<script type="text/javascript"> <script type="text/javascript">
document.body.classList.add("cis4");
if (window.self !== window.top) if (window.self !== window.top)
document.body.classList.add("in-frame"); document.body.classList.add("in-frame");
</script> </script>
+3 -4
View File
@@ -345,11 +345,10 @@ $qry = "SELECT
WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester,
tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden
FROM FROM
lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart
WHERE WHERE
tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_projektarbeit.lehrveranstaltung_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND
tbl_projektbetreuer.betreuerart_kurzbz=tbl_betreuerart.betreuerart_kurzbz AND tbl_projektbetreuer.betreuerart_kurzbz=tbl_betreuerart.betreuerart_kurzbz AND
-2
View File
@@ -143,7 +143,6 @@ if($aktion!='zip')
JOIN campus.tbl_paabgabe USING(projektarbeit_id) JOIN campus.tbl_paabgabe USING(projektarbeit_id)
LEFT JOIN public.tbl_benutzer ON(uid=student_uid) LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
LEFT JOIN public.tbl_studiengang USING(studiengang_kz) LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
@@ -214,7 +213,6 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=
JOIN campus.tbl_paabgabe USING(projektarbeit_id) JOIN campus.tbl_paabgabe USING(projektarbeit_id)
LEFT JOIN public.tbl_benutzer ON(uid=student_uid) LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
LEFT JOIN public.tbl_studiengang USING(studiengang_kz) LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
@@ -87,7 +87,6 @@ cellSeparator (default value: "|")
JOIN campus.tbl_paabgabe USING(projektarbeit_id) JOIN campus.tbl_paabgabe USING(projektarbeit_id)
LEFT JOIN public.tbl_benutzer ON(uid=student_uid) LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
LEFT JOIN public.tbl_studiengang USING(studiengang_kz) LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
+1
View File
@@ -632,6 +632,7 @@ elseif (isset($prestudent_id))
$ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen $ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen
$ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig; $ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig;
$ps_obj->ausbildungssemester = $ps_tmp->ausbildungssemester;
} }
// Falls Status 'Abgewiesene' vorhanden, nach hinten reihen // Falls Status 'Abgewiesene' vorhanden, nach hinten reihen
+33 -15
View File
@@ -29,6 +29,7 @@ require_once('../../include/sprache.class.php');
require_once '../../include/phrasen.class.php'; require_once '../../include/phrasen.class.php';
require_once '../../include/studiengang.class.php'; require_once '../../include/studiengang.class.php';
require_once('../../include/gebiet.class.php'); require_once('../../include/gebiet.class.php');
require_once('../../include/gebiet_pruefling.class.php');
if (!$db = new basis_db()) if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung'); die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -198,8 +199,8 @@ else if (isset($_SESSION['pruefling_id']))
) )
SELECT DISTINCT ON SELECT * FROM (SELECT DISTINCT ON
(gebiet_id, semester, reihung) (gebiet_id)
semester, semester,
gebiet_id, gebiet_id,
STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list, STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list,
@@ -226,13 +227,7 @@ else if (isset($_SESSION['pruefling_id']))
JOIN JOIN
testtool.tbl_gebiet USING (gebiet_id) testtool.tbl_gebiet USING (gebiet_id)
WHERE WHERE
( tbl_ablauf.semester <= prestudent_data.semester
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
OR
(prestudent_data.semester= 2 AND tbl_ablauf.semester = 2)
OR
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
)
AND ( AND (
prestudent_data.studienplan_id = tbl_ablauf.studienplan_id prestudent_data.studienplan_id = tbl_ablauf.studienplan_id
OR OR
@@ -259,9 +254,7 @@ else if (isset($_SESSION['pruefling_id']))
JOIN JOIN
testtool.tbl_gebiet USING (gebiet_id) testtool.tbl_gebiet USING (gebiet_id)
WHERE WHERE
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) tbl_ablauf.semester <= prestudent_data.semester
OR
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
) )
) temp ) temp
) temp2 ) temp2
@@ -270,7 +263,7 @@ else if (isset($_SESSION['pruefling_id']))
semester, semester,
gebiet_id, gebiet_id,
bezeichnung, bezeichnung,
". $bezeichnung_mehrsprachig_sel ." ". $bezeichnung_mehrsprachig_sel ." ) temp3
ORDER BY ORDER BY
semester, semester,
@@ -283,6 +276,8 @@ else if (isset($_SESSION['pruefling_id']))
$lastsemester = ''; $lastsemester = '';
$quereinsteiger_stg = ''; $quereinsteiger_stg = '';
$_SESSION['alleGebiete']= []; $_SESSION['alleGebiete']= [];
$gebiet_pruefling = new gebiet_pruefling();
$quereinsteiger_menu = false;
while($row = $db->db_fetch_object($result)) while($row = $db->db_fetch_object($result))
{ {
//Jedes Semester in einer eigenen Tabelle anzeigen //Jedes Semester in einer eigenen Tabelle anzeigen
@@ -294,8 +289,25 @@ 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; margin-top: 5px;">'; if ($row->semester == '1')
echo '<tr><td class="HeaderTesttool">'. ($row->semester == '1' ? $p->t('testtool/basisgebiete') : $p->t('testtool/quereinstiegsgebiete')).'</td></tr>'; {
// 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 // Bei Quereinstiegsgebieten nach STG clustern und die STG anzeigen
@@ -394,6 +406,12 @@ else if (isset($_SESSION['pruefling_id']))
</td> </td>
<!--<td width="10" class="ItemTesttoolRight" nowrap>&nbsp;</td>--> <!--<td width="10" class="ItemTesttoolRight" nowrap>&nbsp;</td>-->
</tr>'; </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; $_SESSION['alleGebiete'][] = $row->gebiet_id;
} }
else else
+1 -2
View File
@@ -122,8 +122,7 @@ foreach ($project_arr as $project)
// * get studiensemester // * get studiensemester
$pa = new Projektarbeit($pa_id); $pa = new Projektarbeit($pa_id);
$le = new Lehreinheit($pa->lehreinheit_id); $studiensemester_kurzbz = $pa->studiensemester_kurzbz;
$studiensemester_kurzbz = $le->studiensemester_kurzbz;
// * get begin- and end date of studiensemester // * get begin- and end date of studiensemester
$ss = new Studiensemester($studiensemester_kurzbz); $ss = new Studiensemester($studiensemester_kurzbz);
+3 -5
View File
@@ -107,16 +107,14 @@ SELECT
FROM FROM
lehre.tbl_projektarbeit, lehre.tbl_projektarbeit,
lehre.tbl_lehrveranstaltung, lehre.tbl_lehrveranstaltung,
lehre.tbl_lehreinheit,
lehre.tbl_projektbetreuer, lehre.tbl_projektbetreuer,
public.tbl_person public.tbl_person
WHERE WHERE
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_projektarbeit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_projektbetreuer.person_id=tbl_person.person_id AND tbl_projektbetreuer.person_id=tbl_person.person_id AND
tbl_projektbetreuer.stunden<>0 AND tbl_projektbetreuer.stunden<>0 AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem)." tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($stsem)."
GROUP BY studiengang_kz,geschlecht"; GROUP BY studiengang_kz,geschlecht";
if(!$result = $db->db_query($qry)) if(!$result = $db->db_query($qry))
@@ -231,7 +229,7 @@ if($format=='xls')
if(!isset($stunden['w'])) if(!isset($stunden['w']))
$stunden['w']=0; $stunden['w']=0;
$summe_w+=$stunden['w']; $summe_w+=$stunden['w'];
if(!isset($summe_oe[$oe]['w'])) if(!isset($summe_oe[$oe]['w']))
$summe_oe[$oe]['w']=0; $summe_oe[$oe]['w']=0;
$summe_oe[$oe]['w']+=$stunden['w']; $summe_oe[$oe]['w']+=$stunden['w'];
$worksheet->write($zeile,$organisationseinheiten_idx[$oe]+1,$stunden['w'],$format_data); $worksheet->write($zeile,$organisationseinheiten_idx[$oe]+1,$stunden['w'],$format_data);
@@ -85,7 +85,7 @@ $db = new basis_db();
//Daten holen //Daten holen
$qry = "SELECT * FROM ( $qry = "SELECT * FROM (
SELECT SELECT
tbl_lehreinheit.*, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre,
tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid,
tbl_mitarbeiter.fixangestellt, tbl_mitarbeiter.fixangestellt,
tbl_lehreinheitmitarbeiter.stundensatz as stundensatz, tbl_lehreinheitmitarbeiter.stundensatz as stundensatz,
@@ -109,21 +109,20 @@ if($semester!='')
//Projektsbetreuungen //Projektsbetreuungen
$qry.= " UNION $qry.= " UNION
SELECT SELECT
tbl_lehreinheit.*, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre,
tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid,
tbl_mitarbeiter.fixangestellt, tbl_mitarbeiter.fixangestellt,
0 as stundensatz, 0 as stundensatz,
0 as semesterstunden 0 as semesterstunden
FROM FROM
lehre.tbl_lehreinheit, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer,
public.tbl_mitarbeiter, public.tbl_benutzer, lehre.tbl_lehrveranstaltung, public.tbl_person public.tbl_mitarbeiter, public.tbl_benutzer, lehre.tbl_lehrveranstaltung, public.tbl_person
WHERE WHERE
tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid AND tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid AND
tbl_benutzer.person_id = tbl_projektbetreuer.person_id AND tbl_benutzer.person_id = tbl_projektbetreuer.person_id AND
tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND
tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND tbl_projektarbeit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND tbl_projektarbeit.studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehrveranstaltung.studiengang_kz = ".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehrveranstaltung.studiengang_kz = ".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
tbl_person.person_id = tbl_projektbetreuer.person_id"; tbl_person.person_id = tbl_projektbetreuer.person_id";
if($semester!='') if($semester!='')
@@ -164,16 +163,15 @@ if($result = $db->db_query($qry))
$qry = " $qry = "
SELECT SELECT
tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz
FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, FROM lehre.tbl_projektbetreuer, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student
WHERE WHERE
tbl_projektbetreuer.person_id=tbl_benutzer.person_id tbl_projektbetreuer.person_id=tbl_benutzer.person_id
AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND tbl_benutzer.uid=".$db->db_add_param($uid)."
AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id
AND student_uid=vw_student.uid AND student_uid=vw_student.uid
AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_projektarbeit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($semester!='') if($semester!='')
$qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER);
@@ -99,10 +99,9 @@ $qry_stg = "SELECT distinct studiengang_kz, typ, kurzbz
studiengang_kz studiengang_kz
FROM FROM
lehre.tbl_projektbetreuer JOIN lehre.tbl_projektarbeit ON tbl_projektbetreuer.projektarbeit_id=tbl_projektarbeit.projektarbeit_id lehre.tbl_projektbetreuer JOIN lehre.tbl_projektarbeit ON tbl_projektbetreuer.projektarbeit_id=tbl_projektarbeit.projektarbeit_id
JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_projektarbeit.lehrveranstaltung_id
JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id
WHERE WHERE
lehre.tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." lehre.tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
) as foo ) as foo
JOIN public.tbl_studiengang USING (studiengang_kz) JOIN public.tbl_studiengang USING (studiengang_kz)
"; ";
@@ -506,10 +505,9 @@ if ($result_stg = $db->db_query($qry_stg))
JOIN public.tbl_benutzer ON tbl_benutzer.person_id=tbl_person.person_id JOIN public.tbl_benutzer ON tbl_benutzer.person_id=tbl_person.person_id
JOIN public.tbl_mitarbeiter ON tbl_mitarbeiter.mitarbeiter_uid=tbl_benutzer.uid JOIN public.tbl_mitarbeiter ON tbl_mitarbeiter.mitarbeiter_uid=tbl_benutzer.uid
JOIN lehre.tbl_projektarbeit ON tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id JOIN lehre.tbl_projektarbeit ON tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id
JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_projektarbeit.lehrveranstaltung_id
JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id
WHERE WHERE
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
NOT EXISTS (SELECT NOT EXISTS (SELECT
mitarbeiter_uid mitarbeiter_uid
@@ -589,12 +587,11 @@ if ($result_stg = $db->db_query($qry_stg))
FROM FROM
lehre.tbl_projektbetreuer JOIN public.tbl_benutzer ON tbl_projektbetreuer.person_id = tbl_benutzer.person_id lehre.tbl_projektbetreuer JOIN public.tbl_benutzer ON tbl_projektbetreuer.person_id = tbl_benutzer.person_id
JOIN lehre.tbl_projektarbeit ON tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id JOIN lehre.tbl_projektarbeit ON tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id
JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id JOIN lehre.tbl_lehrveranstaltung ON tbl_projektarbeit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
JOIN lehre.tbl_lehrveranstaltung ON tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
JOIN campus.vw_student ON vw_student.uid = student_uid JOIN campus.vw_student ON vw_student.uid = student_uid
WHERE WHERE
tbl_benutzer.uid = ".$db->db_add_param($uid)." tbl_benutzer.uid = ".$db->db_add_param($uid)."
AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry)) if ($result = $db->db_query($qry))
@@ -825,15 +822,14 @@ if ($result_stg = $db->db_query($qry_stg))
$worksheet =& $workbook->addWorksheet('Betreuerstunden'); $worksheet =& $workbook->addWorksheet('Betreuerstunden');
$worksheet->setInputEncoding('utf-8'); $worksheet->setInputEncoding('utf-8');
$qry = "SELECT $qry = "SELECT
studiensemester_kurzbz, nachname, vorname, sum(stunden) AS stunden, titelpre, lehre.tbl_projektarbeit.studiensemester_kurzbz, nachname, vorname, sum(stunden) AS stunden, titelpre,
sum(tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)::numeric(8, 2) AS euro, person_id sum(tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)::numeric(8, 2) AS euro, person_id
FROM FROM
public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id) public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE WHERE
studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND lehre.tbl_projektarbeit.studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND
stunden > 0"; stunden > 0";
if (count($stg_arr) > 0) if (count($stg_arr) > 0)
@@ -841,7 +837,7 @@ if ($result_stg = $db->db_query($qry_stg))
$qry .= " $qry .= "
GROUP BY GROUP BY
studiensemester_kurzbz, person_id, nachname, vorname, titelpre lehre.tbl_projektarbeit.studiensemester_kurzbz, person_id, nachname, vorname, titelpre
ORDER BY ORDER BY
nachname, vorname nachname, vorname
"; ";
+10 -13
View File
@@ -304,15 +304,14 @@ if($studiengang_kz!='')
$qry = "SELECT $qry = "SELECT
* *
FROM FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_lehrveranstaltung,
lehre.tbl_projektbetreuer, public.tbl_person lehre.tbl_projektbetreuer, public.tbl_person
WHERE WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_projektarbeit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
tbl_person.person_id=tbl_projektbetreuer.person_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
"; ";
if($semester!='') if($semester!='')
@@ -323,14 +322,13 @@ elseif($mitarbeiter_uid!='')
$qry = "SELECT $qry = "SELECT
* *
FROM FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person lehre.tbl_projektarbeit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person
WHERE WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_projektarbeit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
tbl_person.person_id=tbl_projektbetreuer.person_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND
tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER)." AND tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
"; ";
} }
elseif($oe_kurzbz!='') elseif($oe_kurzbz!='')
@@ -338,15 +336,14 @@ elseif($oe_kurzbz!='')
$qry = "SELECT $qry = "SELECT
* *
FROM FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, lehre.tbl_projektarbeit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer,
public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach
WHERE WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_projektarbeit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND tbl_projektarbeit.lehrveranstaltung_id=lehrfach.lehrveranstaltung_id AND
tbl_person.person_id=tbl_projektbetreuer.person_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND
lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)."
"; ";
} }
+2 -4
View File
@@ -490,15 +490,13 @@ if($result = $db->db_query($qry))
tbl_projektbetreuer.person_id, tbl_projektbetreuer.person_id,
tbl_lehrveranstaltung.orgform_kurzbz tbl_lehrveranstaltung.orgform_kurzbz
FROM lehre.tbl_projektarbeit, FROM lehre.tbl_projektarbeit,
lehre.tbl_lehreinheit,
lehre.tbl_lehrveranstaltung, lehre.tbl_lehrveranstaltung,
lehre.tbl_projektbetreuer, lehre.tbl_projektbetreuer,
PUBLIC.tbl_person PUBLIC.tbl_person
WHERE tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id WHERE tbl_projektarbeit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id
AND tbl_person.person_id = tbl_projektbetreuer.person_id AND tbl_person.person_id = tbl_projektbetreuer.person_id
AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); AND tbl_projektarbeit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz);
if($uid!=='') if($uid!=='')
{ {
@@ -84,15 +84,14 @@ $qry = "SELECT
ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, themenbereich, ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, themenbereich,
tbl_projektarbeit.anmerkung, projektarbeit_id tbl_projektarbeit.anmerkung, projektarbeit_id
FROM FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp
WHERE WHERE
tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND tbl_projektarbeit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND
tbl_projektarbeit.student_uid = tbl_benutzer.uid AND tbl_projektarbeit.student_uid = tbl_benutzer.uid AND
tbl_benutzer.person_id = tbl_person.person_id AND tbl_benutzer.person_id = tbl_person.person_id AND
tbl_projektarbeit.projekttyp_kurzbz = tbl_projekttyp.projekttyp_kurzbz AND tbl_projektarbeit.projekttyp_kurzbz = tbl_projekttyp.projekttyp_kurzbz AND
tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz)." AND tbl_projektarbeit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz)." AND
tbl_lehrveranstaltung.studiengang_kz = ".$db->db_add_param($studiengang_kz)." AND tbl_lehrveranstaltung.studiengang_kz = ".$db->db_add_param($studiengang_kz)." AND
tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')"; tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')";
+2
View File
@@ -4374,6 +4374,8 @@ if(!$error)
$projektarbeit->titel = $_POST['titel']; $projektarbeit->titel = $_POST['titel'];
$projektarbeit->titel_english = $_POST['titel_english']; $projektarbeit->titel_english = $_POST['titel_english'];
$projektarbeit->lehreinheit_id = $_POST['lehreinheit_id']; $projektarbeit->lehreinheit_id = $_POST['lehreinheit_id'];
$projektarbeit->lehrveranstaltung_id = $_POST['lehrveranstaltung_id'];
$projektarbeit->studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
$projektarbeit->student_uid = $_POST['student_uid']; $projektarbeit->student_uid = $_POST['student_uid'];
$projektarbeit->firma_id = $_POST['firma_id']; $projektarbeit->firma_id = $_POST['firma_id'];
$projektarbeit->note = $_POST['note']; $projektarbeit->note = $_POST['note'];
+23 -9
View File
@@ -239,6 +239,7 @@ function StudentProjektarbeitDetailDisableFields(val)
document.getElementById('student-projektarbeit-button-speichern').disabled=val; document.getElementById('student-projektarbeit-button-speichern').disabled=val;
document.getElementById('student-projektarbeit-menulist-projekttyp').disabled=val; document.getElementById('student-projektarbeit-menulist-projekttyp').disabled=val;
document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').disabled=val; document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').disabled=val;
document.getElementById('student-projektarbeit-menulist-studiensemester').disabled=val;
document.getElementById('student-projektarbeit-menulist-lehreinheit').disabled=val; document.getElementById('student-projektarbeit-menulist-lehreinheit').disabled=val;
document.getElementById('student-projektarbeit-menulist-firma').disabled=val; document.getElementById('student-projektarbeit-menulist-firma').disabled=val;
document.getElementById('student-projektarbeit-menulist-note').disabled=val; document.getElementById('student-projektarbeit-menulist-note').disabled=val;
@@ -290,6 +291,7 @@ function StudentProjektarbeitResetFields()
document.getElementById('student-projektarbeit-menulist-firma').value=''; document.getElementById('student-projektarbeit-menulist-firma').value='';
document.getElementById('student-projektarbeit-menulist-note').value=''; document.getElementById('student-projektarbeit-menulist-note').value='';
document.getElementById('student-projektarbeit-checkbox-final').checked=true; document.getElementById('student-projektarbeit-checkbox-final').checked=true;
document.getElementById('student-projektarbeit-menulist-studiensemester').value=getStudiensemester();
var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value; var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
@@ -379,6 +381,7 @@ function StudentProjektarbeitAuswahl()
lehreinheit_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehreinheit_id" )); lehreinheit_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehreinheit_id" ));
lehrveranstaltung_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrveranstaltung_id" )); lehrveranstaltung_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrveranstaltung_id" ));
lehreinheit_stsem = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehreinheit_stsem" )); lehreinheit_stsem = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehreinheit_stsem" ));
projektarbeit_stsem = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#projektarbeit_stsem" ));
student_uid = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#student_uid" )); student_uid = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#student_uid" ));
firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" )); firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" ));
note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" )); note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" ));
@@ -399,7 +402,7 @@ function StudentProjektarbeitAuswahl()
//Lehrveranstaltung DropDown laden //Lehrveranstaltung DropDown laden
var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung'); var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung');
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp(); url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&stg_kz="+stg_kz+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp();
//Alte DS entfernen //Alte DS entfernen
var oldDatasources = LvDropDown.database.GetDataSources(); var oldDatasources = LvDropDown.database.GetDataSources();
@@ -420,7 +423,7 @@ function StudentProjektarbeitAuswahl()
// Lehreinheit Drop Down laden // Lehreinheit Drop Down laden
var LeDropDown = document.getElementById('student-projektarbeit-menulist-lehreinheit'); var LeDropDown = document.getElementById('student-projektarbeit-menulist-lehreinheit');
url='<?php echo APP_ROOT;?>rdf/lehreinheit.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&studiensemester_kurzbz="+lehreinheit_stsem+"&"+gettimestamp(); url='<?php echo APP_ROOT;?>rdf/lehreinheit.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&studiensemester_kurzbz="+projektarbeit_stsem+"&"+gettimestamp();
//Alte DS entfernen //Alte DS entfernen
var oldDatasources = LeDropDown.database.GetDataSources(); var oldDatasources = LeDropDown.database.GetDataSources();
@@ -442,6 +445,7 @@ function StudentProjektarbeitAuswahl()
//Werte setzen //Werte setzen
document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value=projektarbeit_id; document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value=projektarbeit_id;
document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value=lehreinheit_stsem; document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value=lehreinheit_stsem;
document.getElementById('student-projektarbeit-menulist-studiensemester').value=projektarbeit_stsem;
document.getElementById('student-projektarbeit-menulist-projekttyp').value=projekttyp_kurzbz; document.getElementById('student-projektarbeit-menulist-projekttyp').value=projekttyp_kurzbz;
document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value=lehrveranstaltung_id; document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value=lehrveranstaltung_id;
document.getElementById('student-projektarbeit-menulist-lehreinheit').value=lehreinheit_id; document.getElementById('student-projektarbeit-menulist-lehreinheit').value=lehreinheit_id;
@@ -539,6 +543,7 @@ function StudentProjektarbeitSpeichern()
projektarbeit_id = document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value; projektarbeit_id = document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value;
projekttyp_kurzbz = document.getElementById('student-projektarbeit-menulist-projekttyp').value; projekttyp_kurzbz = document.getElementById('student-projektarbeit-menulist-projekttyp').value;
lehrveranstaltung_id = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value; lehrveranstaltung_id = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value;
studiensemester_kurzbz = document.getElementById('student-projektarbeit-menulist-studiensemester').value;
lehreinheit_id = document.getElementById('student-projektarbeit-menulist-lehreinheit').value; lehreinheit_id = document.getElementById('student-projektarbeit-menulist-lehreinheit').value;
titel = document.getElementById('student-projektarbeit-textbox-titel').value; titel = document.getElementById('student-projektarbeit-textbox-titel').value;
titel_english = document.getElementById('student-projektarbeit-textbox-titel_english').value; titel_english = document.getElementById('student-projektarbeit-textbox-titel_english').value;
@@ -585,12 +590,18 @@ function StudentProjektarbeitSpeichern()
return false; return false;
} }
if(lehreinheit_id=='') if(lehrveranstaltung_id=='')
{ {
alert('Bitte einen LV-Teil auswaehlen'); alert('Bitte eine Lehrveranstaltung auswaehlen');
return false; return false;
} }
if(studiensemester_kurzbz=='')
{
alert('Bitte ein Studiensemester auswaehlen');
return false;
}
if(isNaN(gesamtstunden)) if(isNaN(gesamtstunden))
gesamtstunden=0; gesamtstunden=0;
@@ -603,6 +614,8 @@ function StudentProjektarbeitSpeichern()
req.add('projekttyp_kurzbz', projekttyp_kurzbz ); req.add('projekttyp_kurzbz', projekttyp_kurzbz );
req.add('titel', titel); req.add('titel', titel);
req.add('titel_english', titel_english); req.add('titel_english', titel_english);
req.add('lehrveranstaltung_id', lehrveranstaltung_id);
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
req.add('lehreinheit_id', lehreinheit_id); req.add('lehreinheit_id', lehreinheit_id);
req.add('student_uid', student_uid); req.add('student_uid', student_uid);
req.add('firma_id', firma_id); req.add('firma_id', firma_id);
@@ -738,7 +751,7 @@ function StudentProjektarbeitLVAChange()
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
lehrveranstaltung_id = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value; lehrveranstaltung_id = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value;
studiensemester_kurzbz = getStudiensemester(); studiensemester_kurzbz = document.getElementById('student-projektarbeit-menulist-studiensemester').value;
// Lehreinheit Drop Down laden // Lehreinheit Drop Down laden
var LeDropDown = document.getElementById('student-projektarbeit-menulist-lehreinheit'); var LeDropDown = document.getElementById('student-projektarbeit-menulist-lehreinheit');
@@ -897,8 +910,8 @@ function StudentProjektbetreuerAuswahl()
document.getElementById('student-projektbetreuer-textbox-person_id').value=person_id; document.getElementById('student-projektbetreuer-textbox-person_id').value=person_id;
document.getElementById('student-projektbetreuer-checkbox-neu').checked=false; document.getElementById('student-projektbetreuer-checkbox-neu').checked=false;
var lehreinheitstsem = document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value; var projektarbeitstsem = document.getElementById('student-projektarbeit-menulist-studiensemester').value;
var default_stundensatz = StudentProjektbetreuerLoadStundensatz(person_id, lehreinheitstsem); var default_stundensatz = StudentProjektbetreuerLoadStundensatz(person_id, projektarbeitstsem);
if (default_stundensatz != '') if (default_stundensatz != '')
default_stundensatz = 'Stundensatz (Default '+default_stundensatz+'):'; default_stundensatz = 'Stundensatz (Default '+default_stundensatz+'):';
@@ -1410,9 +1423,10 @@ function StudentProjektbetreuerLoadStundensatz(person_id, studiensemester)
function StudentProjektbetreuerLoadMitarbeiterDaten() function StudentProjektbetreuerLoadMitarbeiterDaten()
{ {
var person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person'); var person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person');
var lehreinheitstsem = document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value; var projektarbeitstsem = document.getElementById('student-projektarbeit-menulist-studiensemester').value;
var stundensatz = StudentProjektbetreuerLoadStundensatz(person_id, lehreinheitstsem);
var stundensatz = StudentProjektbetreuerLoadStundensatz(person_id, projektarbeitstsem);
if (stundensatz != '') if (stundensatz != '')
default_stundensatz = 'Stundensatz (Default '+stundensatz+'):'; default_stundensatz = 'Stundensatz (Default '+stundensatz+'):';
@@ -104,6 +104,10 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
class="sortDirectionIndicator" class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id" /> sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id" />
<splitter class="tree-splitter"/> <splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-lehrveranstaltung_id" label="LehrveranstaltungID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehrveranstaltung_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-lehreinheit_id" label="LehreinheitID" flex="2" hidden="true" <treecol id="student-projektarbeit-tree-lehreinheit_id" label="LehreinheitID" flex="2" hidden="true"
class="sortDirectionIndicator" class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id" /> sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id" />
@@ -131,7 +135,7 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
<treeitem uri="rdf:*"> <treeitem uri="rdf:*">
<treerow> <treerow>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#bezeichnung"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_stsem"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_stsem"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#titel"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#titel"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#note"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#note"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#beginn"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#beginn"/>
@@ -141,6 +145,7 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#themenbereich"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#themenbereich"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#anmerkung"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#anmerkung"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehrveranstaltung_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#student_uid"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#student_uid"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#firma_id"/> <treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#firma_id"/>
@@ -249,6 +254,20 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
</template> </template>
</menulist> </menulist>
</row> </row>
<row>
<label value="Studiensemester" control="student-projektarbeit-menulist-studiensemester"/>
<menulist id="student-projektarbeit-menulist-studiensemester" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/studiensemester.rdf.php?order=desc" flex="1"
ref="http://www.technikum-wien.at/studiensemester/liste">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/studiensemester/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/studiensemester/rdf#kurzbz"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row> <row>
<label value="LV-Teil" control="student-projektarbeit-menulist-lehreinheit"/> <label value="LV-Teil" control="student-projektarbeit-menulist-lehreinheit"/>
<menulist id="student-projektarbeit-menulist-lehreinheit" disabled="true" <menulist id="student-projektarbeit-menulist-lehreinheit" disabled="true"
+2 -1
View File
@@ -271,7 +271,8 @@ foreach ($uid_arr as $uid)
'matr_nr' => $person->matr_nr, 'matr_nr' => $person->matr_nr,
'ausstellungsdatum' => date('M.Y'), 'ausstellungsdatum' => date('M.Y'),
'gueltigbis' => $datum_obj->formatDatum($gueltigbis, 'd.m.Y'), 'gueltigbis' => $datum_obj->formatDatum($gueltigbis, 'd.m.Y'),
'gueltigbis_3jahre' => date('d.m.Y', strtotime('+3 years')) 'gueltigbis_3jahre' => date('d.m.Y', strtotime('+3 years')),
'gueltigbis_2jahre' => date('d.m.Y', strtotime('+2 years'))
); );
} }
} }
+58
View File
@@ -521,5 +521,63 @@ class adresse extends basis_db
} }
return true; 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;
}
} }
?> ?>
+2 -2
View File
@@ -48,7 +48,7 @@ class bisarchiv extends basis_db
*/ */
protected function validate() protected function validate()
{ {
if($this->studiensemster_kurzbz == null || mb_strlen($this->studiensemster_kurzbz) > 6) if($this->studiensemester_kurzbz == null || mb_strlen($this->studiensemester_kurzbz) > 6)
{ {
$this->errormsg = "Studiensemester ist ungueltig"; $this->errormsg = "Studiensemester ist ungueltig";
return false; return false;
@@ -107,7 +107,7 @@ class bisarchiv extends basis_db
return false; return false;
$qry = "INSERT INTO bis.tbl_archiv (studiensemester_kurzbz, meldung, html, studiengang_kz, insertamum, insertvon, typ) VALUES (" $qry = "INSERT INTO bis.tbl_archiv (studiensemester_kurzbz, meldung, html, studiengang_kz, insertamum, insertvon, typ) VALUES ("
. $this->db_add_param($this->studiensemster_kurzbz) . "," . $this->db_add_param($this->studiensemester_kurzbz) . ","
. $this->db_add_param($this->meldung) . "," . $this->db_add_param($this->meldung) . ","
. $this->db_add_param($this->html) . "," . $this->db_add_param($this->html) . ","
. $this->db_add_param($this->studiengang_kz) . "," . $this->db_add_param($this->studiengang_kz) . ","
+63 -25
View File
@@ -21,6 +21,7 @@
* Manuela Thamer <manuela.thamer@technikum-wien.at> * Manuela Thamer <manuela.thamer@technikum-wien.at>
*/ */
require_once(dirname(__FILE__).'/basis_db.class.php'); require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/mitarbeiter.class.php');
class entwicklungsteam extends basis_db class entwicklungsteam extends basis_db
{ {
@@ -43,7 +44,6 @@ class entwicklungsteam extends basis_db
public $ext_id; public $ext_id;
public $besqual; public $besqual;
public $studiengang_kz_old;
/** /**
* Konstruktor * Konstruktor
@@ -74,7 +74,7 @@ class entwicklungsteam extends basis_db
$qry = "SELECT * FROM bis.tbl_entwicklungsteam JOIN bis.tbl_besqual USING(besqualcode) $qry = "SELECT * FROM bis.tbl_entwicklungsteam JOIN bis.tbl_besqual USING(besqualcode)
WHERE entwicklungsteam_id=".$this->db_add_param($entwicklungsteam_id); WHERE entwicklungsteam_id=".$this->db_add_param($entwicklungsteam_id);
$qry.=";"; $qry.=";";
if($this->db_query($qry)) if($this->db_query($qry))
{ {
@@ -147,6 +147,11 @@ class entwicklungsteam extends basis_db
$this->errormsg = 'Es muss ein Mitarbeiter angegeben werden'; $this->errormsg = 'Es muss ein Mitarbeiter angegeben werden';
return false; return false;
} }
if(!$this->checkIfExistingUid($this->mitarbeiter_uid))
{
$this->errormsg = 'Bitte einen Eintrag aus dem Dropdown Personensuche auswählen!';
return false;
}
if($this->studiengang_kz=='') if($this->studiengang_kz=='')
{ {
$this->errormsg = 'Es muss ein Studiengang angegeben werden'; $this->errormsg = 'Es muss ein Studiengang angegeben werden';
@@ -162,6 +167,26 @@ class entwicklungsteam extends basis_db
$this->errormsg = 'Endedatum darf nicht vor Anfangsdatum liegen'; $this->errormsg = 'Endedatum darf nicht vor Anfangsdatum liegen';
return false; return false;
} }
if($this->beginn != '')
{
$beginnParts = explode('-', $this->beginn);
if (!checkdate((int)$beginnParts[1], (int)$beginnParts[2], (int)$beginnParts[0])) {
$this->errormsg = 'Anfangsdatum ist ungültig';
return false;
}
}
if($this->ende != '')
{
$endeParts = explode('-', $this->ende);
if (!checkdate((int)$endeParts[1], (int)$endeParts[2], (int)$endeParts[0]))
{
$this->errormsg = 'Endedatum ist ungültig';
return false;
}
}
return true; return true;
} }
@@ -183,30 +208,28 @@ class entwicklungsteam extends basis_db
//Neuen Datensatz anlegen //Neuen Datensatz anlegen
$qry = "INSERT INTO bis.tbl_entwicklungsteam (mitarbeiter_uid, studiengang_kz, besqualcode, beginn, ende, $qry = "INSERT INTO bis.tbl_entwicklungsteam (mitarbeiter_uid, studiengang_kz, besqualcode, beginn, ende,
updateamum, updatevon, insertamum, insertvon) VALUES (". updateamum, updatevon, insertamum, insertvon) VALUES (".
$this->db_add_param($this->mitarbeiter_uid).', '. $this->db_add_param($this->mitarbeiter_uid).', '.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->besqualcode, FHC_INTEGER).', '. $this->db_add_param($this->besqualcode, FHC_INTEGER).', '.
$this->db_add_param($this->beginn).', '. $this->db_add_param($this->beginn).', '.
$this->db_add_param($this->ende).', '. $this->db_add_param($this->ende).', '.
$this->db_add_param($this->updateamum).', '. $this->db_add_param($this->updateamum).', '.
$this->db_add_param($this->updatevon).', '. $this->db_add_param($this->updatevon).', '.
$this->db_add_param($this->insertamum).', '. $this->db_add_param($this->insertamum).', '.
$this->db_add_param($this->insertvon).');'; $this->db_add_param($this->insertvon).');';
} }
else else
{ {
if($this->studiengang_kz_old=='')
$this->studiengang_kz_old = $this->studiengang_kz;
//Bestehenden Datensatz aktualisieren //Bestehenden Datensatz aktualisieren
$qry= "UPDATE bis.tbl_entwicklungsteam SET". $qry= "UPDATE bis.tbl_entwicklungsteam SET".
" besqualcode=".$this->db_add_param($this->besqualcode, FHC_INTEGER).",". " besqualcode=".$this->db_add_param($this->besqualcode, FHC_INTEGER).",".
" beginn=".$this->db_add_param($this->beginn).",". " beginn=".$this->db_add_param($this->beginn).",".
" studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER).",". " studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER).",".
" ende=".$this->db_add_param($this->ende).",". " ende=".$this->db_add_param($this->ende).",".
" updateamum=".$this->db_add_param($this->updateamum).",". " mitarbeiter_uid=".$this->db_add_param($this->mitarbeiter_uid).",".
" updatevon=".$this->db_add_param($this->updatevon). " updateamum=".$this->db_add_param($this->updateamum).",".
" WHERE entwicklungsteam_id=".$this->db_add_param($this->entwicklungsteam_id).";"; " updatevon=".$this->db_add_param($this->updatevon).
" WHERE entwicklungsteam_id=".$this->db_add_param($this->entwicklungsteam_id).";";
} }
if($this->db_query($qry)) if($this->db_query($qry))
@@ -234,7 +257,7 @@ class entwicklungsteam extends basis_db
if($studiengang_kz!=null) if($studiengang_kz!=null)
$qry.=" AND studiengang_kz=".$this->db_add_param($studiengang_kz); $qry.=" AND studiengang_kz=".$this->db_add_param($studiengang_kz);
$qry.=";"; $qry.=";";
if($this->db_query($qry)) if($this->db_query($qry))
{ {
@@ -316,7 +339,7 @@ class entwicklungsteam extends basis_db
if ($sort != null) if ($sort != null)
{ {
$qry .= " ORDER BY ".$sort; $qry .= " ORDER BY ".$sort;
} }
$qry .= ";"; $qry .= ";";
@@ -364,7 +387,7 @@ class entwicklungsteam extends basis_db
$bismeldung_jahr = $datetime->format('Y'); $bismeldung_jahr = $datetime->format('Y');
//laden des Datensatzes //laden des Datensatzes
$qry = "SELECT tbl_entwicklungsteam.*, tbl_besqual.*, tbl_studiengang.studiengang_kz, tbl_studiengang.melderelevant $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) JOIN public.tbl_studiengang USING(studiengang_kz)
@@ -375,7 +398,7 @@ class entwicklungsteam extends basis_db
if($studiengang_kz!=null) if($studiengang_kz!=null)
$qry.=" AND studiengang_kz=".$this->db_add_param($studiengang_kz); $qry.=" AND studiengang_kz=".$this->db_add_param($studiengang_kz);
$qry.=";"; $qry.=";";
if($this->db_query($qry)) if($this->db_query($qry))
{ {
@@ -407,5 +430,20 @@ class entwicklungsteam extends basis_db
return false; return false;
} }
} }
/*
* Überprüft, ob die übergebene Uid in der Tabelle tbl_mitarbeiter vorhanden ist
* @param String $uid UID des Mitarbeiters
* @return true wenn vorhanden, false wenn nicht
*/
private function checkIfExistingUid($uid)
{
$mitarbeiter = new mitarbeiter();
if(!$mitarbeiter->checkIfExistingUid($uid))
return false;
return true;
}
} }
?> ?>
+97
View File
@@ -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;
}
}
}
?>
+172 -1
View File
@@ -2088,7 +2088,7 @@ class lehrveranstaltung extends basis_db
/** /**
* lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter
* @param String $uid User ID des Mitarbeiters * @param String $uid User ID des Mitarbeiters
* @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters * @param String $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
*/ */
public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null)
{ {
@@ -2911,5 +2911,176 @@ class lehrveranstaltung extends basis_db
return null; return null;
} }
/**
* Filtert die geladenen Lehrveranstaltungen gegen den aktuellen Studienplan des Studenten.
* Ermittelt den Studienplan über den Prestudent-Status (aktuellster Eintrag) und gleicht
* die vorhandenen IDs mit der Tabelle tbl_studienplan_lehrveranstaltung ab.
* Die interne Liste wird nur bei gefundenen Treffern aktualisiert.
*
* @param string $student_uid Student uid.
* @return bool True bei erfolgreicher Abwicklung oder leeren Ausgangsdaten, False bei Datenbankfehlern.
*/
public function checkLvaAgainstStudentCurrentStudienplan($student_uid) {
$qryStudent = "SELECT prestudent_id FROM tbl_student WHERE student_uid = ".$this->db_add_param($student_uid)."";
if($result = $this->db_query($qryStudent))
{
if($row = $this->db_fetch_object($result))
{
$prestudent_id = $row->prestudent_id;
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der des aktuellen studienplan für studenten über prestudent';
return false;
}
}
else
{
$this->errormsg='Fehler bei Datenbankabfrage ' .$this->db_last_error();
return false;
}
$qryHistory = "SELECT studienplan_id
FROM public.tbl_prestudentstatus
WHERE prestudent_id = ".$this->db_add_param($prestudent_id)."
ORDER BY public.tbl_prestudentstatus.datum DESC";
if($result = $this->db_query($qryHistory))
{
if($row = $this->db_fetch_object($result))
{
$studienplan_id = $row->studienplan_id;
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der des aktuellen studienplan für studenten über prestudentstatus';
return false;
}
}
else
{
$this->errormsg='Fehler bei Datenbankabfrage ' .$this->db_last_error();
return false;
}
// needs to have lva_ids from previous query in this context
$lvsIDs = array_column($this->lehrveranstaltungen, 'lehrveranstaltung_id');
if (empty($lvsIDs)) {
// exit without modifying object state if no lva_id to query by are found
return true;
}
$ids = $this->db_implode4SQL($lvsIDs);
$qry = "SELECT tbl_lehrveranstaltung.*,
tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id,
tbl_studienplan_lehrveranstaltung.semester as stpllv_semester,
tbl_studienplan_lehrveranstaltung.pflicht as stpllv_pflicht,
tbl_studienplan_lehrveranstaltung.koordinator as stpllv_koordinator,
tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent,
tbl_studienplan_lehrveranstaltung.sort stpllv_sort,
tbl_studienplan_lehrveranstaltung.curriculum,
tbl_studienplan_lehrveranstaltung.export,
tbl_studienplan_lehrveranstaltung.genehmigung
FROM lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_studienplan_lehrveranstaltung
USING(lehrveranstaltung_id)
WHERE tbl_studienplan_lehrveranstaltung.studienplan_id = ".$this->db_add_param($studienplan_id)."
AND tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id IN (".$ids.");";
if($result = $this->db_query($qry))
{
// reset the lva array and fill it with the new set
$temp_lvas = array();
while($row = $this->db_fetch_object($result))
{
$obj = new lehrveranstaltung();
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->bezeichnung = $row->bezeichnung;
$obj->kurzbz = $row->kurzbz;
$obj->lehrform_kurzbz = $row->lehrform_kurzbz;
$obj->semester = $row->semester;
$obj->ects = $row->ects;
$obj->semesterstunden = $row->semesterstunden;
$obj->anmerkung = $row->anmerkung;
$obj->lehre = $this->db_parse_bool($row->lehre);
$obj->lehreverzeichnis = $row->lehreverzeichnis;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->planfaktor = $row->planfaktor;
$obj->planlektoren = $row->planlektoren;
$obj->planpersonalkosten = $row->planpersonalkosten;
$obj->plankostenprolektor = $row->plankostenprolektor;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->sprache = $row->sprache;
$obj->sort = $row->sort;
$obj->incoming = $row->incoming;
$obj->zeugnis = $this->db_parse_bool($row->zeugnis);
$obj->projektarbeit = $this->db_parse_bool($row->projektarbeit);
$obj->koordinator = $row->koordinator;
$obj->bezeichnung_english = $row->bezeichnung_english;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
$obj->lehrmodus_kurzbz = $row->lehrmodus_kurzbz;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
$obj->anzahlsemester = $row->anzahlsemester;
$obj->semesterwochen = $row->semesterwochen;
$obj->lvnr = $row->lvnr;
$obj->semester_alternativ = $row->semester_alternativ;
$obj->farbe = $row->farbe;
$obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$obj->stpllv_sort = $row->stpllv_sort;
$obj->benotung = $this->db_parse_bool($row->benotung);
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$obj->evaluierung = $this->db_parse_bool($row->evaluierung);
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
if ($obj->bezeichnung_arr['English'] == '')
$obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German'];
$obj->sws = $row->sws;
$obj->lvs = $row->lvs;
$obj->alvs = $row->alvs;
$obj->lvps = $row->lvps;
$obj->las = $row->las;
$obj->stpllv_semester = $row->stpllv_semester;
$obj->stpllv_pflicht = $this->db_parse_bool($row->stpllv_pflicht);
$obj->stpllv_koordinator = $row->stpllv_koordinator;
$obj->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id;
$obj->studienplan_lehrveranstaltung_id_parent = $row->studienplan_lehrveranstaltung_id_parent;
$obj->curriculum = $this->db_parse_bool($row->curriculum);
$obj->export = $this->db_parse_bool($row->export);
$obj->genehmigung = $this->db_parse_bool($row->genehmigung);
$obj->new = false;
$temp_lvas[] = $obj;
}
// Only update the class property if we actually found matching records.
// If $temp_lvas is empty, $this->lehrveranstaltungen remains unchanged.
if (!empty($temp_lvas)) {
$this->lehrveranstaltungen = $temp_lvas;
}
return true;
}
else
{
$this->errormsg='Fehler bei Datenbankabfrage ' .$this->db_last_error();
return false;
}
}
} }
?> ?>
+18
View File
@@ -1995,5 +1995,23 @@ class mitarbeiter extends benutzer
return true; return true;
} }
} }
/**
* Prueft ob eine existierende ma_uid übergeben wurde
* @param String $mitarbeiter_uid mitarbeiter_uid
* @return bool True wenn mitarbeiter_uid vorhanden sonst false.
*/
public function checkIfExistingUid($mitarbeiter_uid)
{
$qry = "Select 1 from public.tbl_mitarbeiter where mitarbeiter_uid =".$this->db_add_param($mitarbeiter_uid);
if ($result = $this->db_query($qry))
{
if ($this->db_num_rows($result) > 0)
return true;
else
return false;
}
}
} }
?> ?>
+24 -9
View File
@@ -37,6 +37,8 @@ class projektarbeit extends basis_db
public $titel; // string public $titel; // string
public $titel_english; // string public $titel_english; // string
public $lehreinheit_id; // integer public $lehreinheit_id; // integer
public $lehrveranstaltung_id; // integer
public $studiensemester_kurzbz; // string
public $student_uid; // integer public $student_uid; // integer
public $firma_id; // integer public $firma_id; // integer
public $note; // integer public $note; // integer
@@ -129,6 +131,8 @@ class projektarbeit extends basis_db
$this->titel = $row->titel; $this->titel = $row->titel;
$this->titel_english = $row->titel_english; $this->titel_english = $row->titel_english;
$this->lehreinheit_id = $row->lehreinheit_id; $this->lehreinheit_id = $row->lehreinheit_id;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->student_uid = $row->student_uid; $this->student_uid = $row->student_uid;
$this->firma_id = $row->firma_id; $this->firma_id = $row->firma_id;
$this->note = $row->note; $this->note = $row->note;
@@ -178,9 +182,13 @@ class projektarbeit extends basis_db
{ {
$this->errormsg='Projekttyp_kurzbz darf nicht NULL sein!'; $this->errormsg='Projekttyp_kurzbz darf nicht NULL sein!';
} }
if ($this->lehreinheit_id==null) if ($this->lehrveranstaltung_id==null)
{ {
$this->errormsg='Lehreinheit_id darf nicht NULL sein!'; $this->errormsg='Lehrveranstaltung_id darf nicht NULL sein!';
}
if ($this->studiensemester_kurzbz==null)
{
$this->errormsg='Studiensemester_kurzbz darf nicht NULL sein!';
} }
if(mb_strlen($this->projekttyp_kurzbz)>16) if(mb_strlen($this->projekttyp_kurzbz)>16)
{ {
@@ -261,12 +269,15 @@ class projektarbeit extends basis_db
{ {
//Neuen Datensatz einfuegen //Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte, $qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id,
lehrveranstaltung_id, studiensemester_kurzbz, student_uid, firma_id, note, punkte,
beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, gesamtstunden, themenbereich, anmerkung, beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, gesamtstunden, themenbereich, anmerkung,
insertamum, insertvon, updateamum, updatevon, titel_english, final) VALUES('. insertamum, insertvon, updateamum, updatevon, titel_english, final) VALUES('.
$this->db_add_param($this->projekttyp_kurzbz).', '. $this->db_add_param($this->projekttyp_kurzbz).', '.
$this->db_add_param($this->titel).', '. $this->db_add_param($this->titel).', '.
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '. $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '.
$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->student_uid).', '. $this->db_add_param($this->student_uid).', '.
$this->db_add_param($this->firma_id, FHC_INTEGER).', '. $this->db_add_param($this->firma_id, FHC_INTEGER).', '.
$this->db_add_param($this->note).', '. $this->db_add_param($this->note).', '.
@@ -301,6 +312,8 @@ class projektarbeit extends basis_db
'titel='.$this->db_add_param($this->titel).', '. 'titel='.$this->db_add_param($this->titel).', '.
'titel_english='.$this->db_add_param($this->titel_english).', '. 'titel_english='.$this->db_add_param($this->titel_english).', '.
'lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '. 'lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '.
'lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).', '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'student_uid='.$this->db_add_param($this->student_uid).', '. 'student_uid='.$this->db_add_param($this->student_uid).', '.
'firma_id='.$this->db_add_param($this->firma_id, FHC_INTEGER).', '. 'firma_id='.$this->db_add_param($this->firma_id, FHC_INTEGER).', '.
'note='.$this->db_add_param($this->note).', '. 'note='.$this->db_add_param($this->note).', '.
@@ -406,6 +419,8 @@ class projektarbeit extends basis_db
$obj->titel = $row->titel; $obj->titel = $row->titel;
$obj->titel_english = $row->titel_english; $obj->titel_english = $row->titel_english;
$obj->lehreinheit_id = $row->lehreinheit_id; $obj->lehreinheit_id = $row->lehreinheit_id;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->student_uid = $row->student_uid; $obj->student_uid = $row->student_uid;
$obj->firma_id = $row->firma_id; $obj->firma_id = $row->firma_id;
$obj->note = $row->note; $obj->note = $row->note;
@@ -449,14 +464,13 @@ class projektarbeit extends basis_db
tbl_projektarbeit.* , tbl_projekttyp.bezeichnung tbl_projektarbeit.* , tbl_projekttyp.bezeichnung
FROM FROM
lehre.tbl_projektarbeit lehre.tbl_projektarbeit
JOIN JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
lehre.tbl_projekttyp USING (projekttyp_kurzbz), lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehrveranstaltung ON (lehre.tbl_projektarbeit.lehrveranstaltung_id = lehre.tbl_lehrveranstaltung.lehrveranstaltung_id)
WHERE WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_projektarbeit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehrveranstaltung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehrveranstaltung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); tbl_projektarbeit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($this->db_query($qry)) if($this->db_query($qry))
{ {
@@ -470,6 +484,8 @@ class projektarbeit extends basis_db
$obj->titel = $row->titel; $obj->titel = $row->titel;
$obj->titel_english = $row->titel_english; $obj->titel_english = $row->titel_english;
$obj->lehreinheit_id = $row->lehreinheit_id; $obj->lehreinheit_id = $row->lehreinheit_id;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->student_uid = $row->student_uid; $obj->student_uid = $row->student_uid;
$obj->firma_id = $row->firma_id; $obj->firma_id = $row->firma_id;
$obj->note = $row->note; $obj->note = $row->note;
@@ -534,7 +550,6 @@ class projektarbeit extends basis_db
pa.projekttyp_kurzbz pa.projekttyp_kurzbz
FROM FROM
lehre.tbl_projektarbeit pa lehre.tbl_projektarbeit pa
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_studiensemester sem USING(studiensemester_kurzbz) JOIN public.tbl_studiensemester sem USING(studiensemester_kurzbz)
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
+10 -14
View File
@@ -371,14 +371,14 @@ class vertrag extends basis_db
null::integer as pruefung_id, null::integer as pruefung_id,
projektarbeit_id, projektarbeit_id,
(tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, (tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag,
tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
tbl_projektbetreuer.betreuerart_kurzbz, tbl_projektbetreuer.betreuerart_kurzbz,
(SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid)
as bezeichnung as bezeichnung
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
tbl_projektbetreuer.person_id=".$this->db_add_param($person_id, FHC_INTEGER)." tbl_projektbetreuer.person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
AND vertrag_id IS NULL"; AND vertrag_id IS NULL";
@@ -461,9 +461,8 @@ class vertrag extends basis_db
OR OR
EXISTS (SELECT 1 FROM lehre.tbl_projektbetreuer EXISTS (SELECT 1 FROM lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
AND tbl_projektbetreuer.person_id=tbl_person.person_id AND tbl_projektbetreuer.person_id=tbl_person.person_id
AND tbl_projektbetreuer.vertrag_id IS NULL AND tbl_projektbetreuer.vertrag_id IS NULL
) )
@@ -535,12 +534,12 @@ class vertrag extends basis_db
UNION UNION
SELECT SELECT
'Betreuung' as type, 'Betreuung' as type,
tbl_projektarbeit.lehreinheit_id as lehreinheit_id, NULL as lehreinheit_id,
null as mitarbeiter_uid, null as mitarbeiter_uid,
null::integer as pruefung_id, null::integer as pruefung_id,
projektarbeit_id, projektarbeit_id,
(tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, (tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag,
tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.studiensemester_kurzbz,
tbl_projektbetreuer.betreuerart_kurzbz, tbl_projektbetreuer.betreuerart_kurzbz,
(SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid)
as bezeichnung, as bezeichnung,
@@ -549,7 +548,6 @@ class vertrag extends basis_db
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_vertrag USING (vertrag_id) JOIN lehre.tbl_vertrag USING (vertrag_id)
WHERE WHERE
vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";"; vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";";
@@ -942,17 +940,16 @@ class vertrag extends basis_db
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
vertrag_id=tbl_vertrag.vertrag_id vertrag_id=tbl_vertrag.vertrag_id
AND studiensemester_kurzbz=".$this->db_add_param($stsem).") AND lehre.tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($stsem).")
OR OR
EXISTS (SELECT EXISTS (SELECT
1 1
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
vertrag_id=tbl_vertrag.vertrag_id vertrag_id=tbl_vertrag.vertrag_id
AND studiensemester_kurzbz=".$this->db_add_param($stsem).") AND lehre.tbl_projektarbeit.studiensemester_kurzbz=".$this->db_add_param($stsem).")
OR OR
(NOT EXISTS (SELECT (NOT EXISTS (SELECT
1 1
@@ -980,7 +977,7 @@ class vertrag extends basis_db
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
vertrag_id=tbl_vertrag.vertrag_id vertrag_id=tbl_vertrag.vertrag_id
AND studiensemester_kurzbz=".$this->db_add_param($stsem).") AND lehre.tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($stsem).")
) )
AND tbl_benutzer.uid=".$this->db_add_param($mitarbeiter_uid); AND tbl_benutzer.uid=".$this->db_add_param($mitarbeiter_uid);
@@ -1077,7 +1074,7 @@ class vertrag extends basis_db
JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." lehre.tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT IN(SELECT uid FROM public.tbl_benutzer WHERE person_id=tbl_vertrag.person_id) AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT IN(SELECT uid FROM public.tbl_benutzer WHERE person_id=tbl_vertrag.person_id)
UNION UNION
SELECT SELECT
@@ -1086,9 +1083,8 @@ class vertrag extends basis_db
lehre.tbl_vertrag lehre.tbl_vertrag
JOIN lehre.tbl_projektbetreuer USING(vertrag_id) JOIN lehre.tbl_projektbetreuer USING(vertrag_id)
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." tbl_projektarbeit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND tbl_projektbetreuer.person_id!=tbl_vertrag.person_id"; AND tbl_projektbetreuer.person_id!=tbl_vertrag.person_id";
if($result = $this->db_query($qry)) if($result = $this->db_query($qry))
+6 -9
View File
@@ -748,17 +748,14 @@ or not exists
UNION UNION
SELECT sum(pb.stunden) AS semstunden SELECT sum(pb.stunden) AS semstunden
FROM FROM
lehre.tbl_projektarbeit pa, lehre.tbl_projektarbeit pa
lehre.tbl_projektbetreuer pb, JOIN lehre.tbl_projektbetreuer pb ON(pa.projektarbeit_id = pb.projektarbeit_id)
public.tbl_benutzer b, JOIN public.tbl_benutzer b ON(pb.person_id = b.person_id)
lehre.tbl_lehreinheit l JOIN lehre.tbl_lehreinheit l ON(pa.lehrveranstaltung_id = l.lehrveranstaltung_id AND pa.studiensemester_kurzbz = l.studiensemester_kurzbz)
JOIN JOIN lehre.tbl_lehrveranstaltung lv ON (l.lehrveranstaltung_id = lv.lehrveranstaltung_id)
lehre.tbl_lehrveranstaltung lv using (lehrveranstaltung_id) JOIN public.tbl_studiengang s USING (studiengang_kz)
JOIN
public.tbl_studiengang s using (studiengang_kz)
WHERE WHERE
pa.lehreinheit_id = l.lehreinheit_id AND
pb.projektarbeit_id = pa.projektarbeit_id AND pb.projektarbeit_id = pa.projektarbeit_id AND
pb.person_id = b.person_id AND pb.person_id = b.person_id AND
b.uid = ".$this->db_add_param($user)." AND b.uid = ".$this->db_add_param($user)." AND
+19 -3
View File
@@ -454,8 +454,8 @@ html {
/* desktop */ /* desktop */
@media (min-width: 992px) { @media (min-width: 992px) {
body { body.cis4 {
display: flex; display: flex;
padding-top: var(--fhc-cis-header-height); padding-top: var(--fhc-cis-header-height);
width: calc(100svw - var(--scrollbar-width, 0px)); width: calc(100svw - var(--scrollbar-width, 0px));
/* overflow: visible !important; */ /* overflow: visible !important; */
@@ -853,4 +853,20 @@ html {
border: 1px solid rgba(0, 0, 0, 0.15); border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.5rem; border-radius: 0.5rem;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
} }
.cis-main-menu {
max-width: 100vw;
}
.cis-main-menu ul {
list-style: none;
margin: 0;
padding: 0;
}
.cis-main-menu ul li {
margin: 0;
padding: 0;
width: 100%;
}
@@ -107,4 +107,9 @@
.gesperrtoption { .gesperrtoption {
color: gray; color: gray;
}
#onboardingRow
{
margin-bottom: 15px;
} }
+11 -1
View File
@@ -44,5 +44,15 @@ export default {
studiensemester_kurzbz studiensemester_kurzbz
} }
}; };
} },
getContainingOrNearestByDateRange(from, to) {
return {
method: 'get',
url: 'api/frontend/v1/organisation/studiensemester/getContainingOrNearestByDateRange',
params: {
from,
to,
}
};
},
}; };
+14 -1
View File
@@ -19,6 +19,7 @@ import DeadlineOverview from "../../components/Cis/Abgabetool/DeadlineOverview.j
import Studium from "../../components/Cis/Studium/Studium.js"; import Studium from "../../components/Cis/Studium/Studium.js";
import StgOrgLvPlan from "../../components/Cis/LvPlan/StgOrg.js"; import StgOrgLvPlan from "../../components/Cis/LvPlan/StgOrg.js";
import OtherLvPlan from "../../components/Cis/LvPlan/OtherLvPlan.js"; import OtherLvPlan from "../../components/Cis/LvPlan/OtherLvPlan.js";
import Compat from "../../components/Cis/Compat.js";
import ApiRouteInfo from '../../api/factory/routeinfo.js'; import ApiRouteInfo from '../../api/factory/routeinfo.js';
import {capitalize} from "../../helpers/StringHelpers.js"; import {capitalize} from "../../helpers/StringHelpers.js";
@@ -29,6 +30,18 @@ const isMobile = window.matchMedia("(max-width: 767px)").matches;
const router = VueRouter.createRouter({ const router = VueRouter.createRouter({
history: VueRouter.createWebHistory(`/${ciPath}`), history: VueRouter.createWebHistory(`/${ciPath}`),
routes: [ 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`, path: `/Cis/Studium`,
name: 'Studium', name: 'Studium',
@@ -277,7 +290,7 @@ const app = Vue.createApp({
if (target && this.isInternalRoute(target.href)) { if (target && this.isInternalRoute(target.href)) {
const url = new URL(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 base = this.$router.options.history.base
const route = path.replace(base, '') || '/' const route = path.replace(base, '') || '/'
+93
View File
@@ -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>
`
};
+30 -19
View File
@@ -1,6 +1,7 @@
import FhcCalendar from "../../Calendar/LvPlan.js"; import FhcCalendar from "../../Calendar/LvPlan.js";
import ApiLvPlan from '../../../api/factory/lvPlan.js'; import ApiLvPlan from '../../../api/factory/lvPlan.js';
import ApiStudienSemester from '../../../api/factory/studiensemester.js';
import ApiAuthinfo from '../../../api/factory/authinfo.js'; import ApiAuthinfo from '../../../api/factory/authinfo.js';
export const DEFAULT_MODE_LVPLAN_DESKTOP = "Week"; export const DEFAULT_MODE_LVPLAN_DESKTOP = "Week";
@@ -16,13 +17,12 @@ export default {
}, },
data() { data() {
return { return {
studiensemester_kurzbz: null,
studiensemester_start: null,
studiensemester_ende: null,
uid: null, uid: null,
isMitarbeiter: false, isMitarbeiter: false,
isStudent: false, isStudent: false,
timezone: FHC_JS_DATA_STORAGE_OBJECT.timezone, timezone: FHC_JS_DATA_STORAGE_OBJECT.timezone,
startSemester: null,
endSemester: null,
}; };
}, },
inject: ["isMobile"], inject: ["isMobile"],
@@ -48,9 +48,12 @@ export default {
return this.propsViewData?.mode; return this.propsViewData?.mode;
}, },
downloadLinks() { downloadLinks() {
if (!this.studiensemester_start || !this.studiensemester_ende || !this.uid) const startDate = this.startSemester?.start;
return false; const endDate = this.endSemester ? this.endSemester.ende : this.startSemester?.ende;
if (!startDate || !endDate || !this.uid)
return false;
let type = false; let type = false;
type = this.isStudent ? 'student' : type; type = this.isStudent ? 'student' : type;
type = this.isMitarbeiter ? 'lektor' : type; type = this.isMitarbeiter ? 'lektor' : type;
@@ -61,10 +64,10 @@ export default {
const opts = { zone: this.timezone }; const opts = { zone: this.timezone };
const start = luxon.DateTime const start = luxon.DateTime
.fromISO(this.studiensemester_start, opts) .fromISO(startDate, opts)
.toUnixInteger(); .toUnixInteger();
const ende = luxon.DateTime const ende = luxon.DateTime
.fromISO(this.studiensemester_ende, opts) .fromISO(endDate, opts)
.toUnixInteger(); .toUnixInteger();
const download_link = FHC_JS_DATA_STORAGE_OBJECT.app_root const download_link = FHC_JS_DATA_STORAGE_OBJECT.app_root
@@ -109,16 +112,21 @@ export default {
} }
}); });
}, },
updateRange(rangeInterval) { async updateRange(rangeInterval) {
this.$api const semesterResponse = await this.$api.call(
.call(ApiLvPlan.studiensemesterDateInterval( ApiStudienSemester.getContainingOrNearestByDateRange(
rangeInterval.end.startOf('week').toISODate() rangeInterval.s.toISO().slice(0, 10),
)) rangeInterval.e.toISO().slice(0, 10),
.then(res => { ),
this.studiensemester_kurzbz = res.data.studiensemester_kurzbz; );
this.studiensemester_start = res.data.start; this.startSemester =
this.studiensemester_ende = res.data.ende; semesterResponse.data.length
}); ? semesterResponse.data[0]
: null;
this.endSemester =
semesterResponse.data.length > 1
? semesterResponse.data[1]
: null;
}, },
getPromiseFunc(start, end) { getPromiseFunc(start, end) {
return [ return [
@@ -142,8 +150,11 @@ export default {
<div class="cis-lvplan-personal d-flex flex-column h-100"> <div class="cis-lvplan-personal d-flex flex-column h-100">
<h2> <h2>
{{ $p.t('lehre/stundenplan') }} {{ $p.t('lehre/stundenplan') }}
<span v-if="studiensemester_kurzbz" class="ps-3"> <span v-if="startSemester?.studiensemester_kurzbz">
{{ studiensemester_kurzbz }} {{ startSemester.studiensemester_kurzbz }}
<span v-if="endSemester?.studiensemester_kurzbz">
{{ "- " + endSemester.studiensemester_kurzbz }}
</span>
</span> </span>
</h2> </h2>
<hr> <hr>
+32 -25
View File
@@ -5,6 +5,7 @@ import FhcCalendar from "../../Calendar/LvPlan.js";
import ApiLvPlan from "../.././../api/factory/lvPlan.js"; import ApiLvPlan from "../.././../api/factory/lvPlan.js";
import ApiOtherLvPlan from "../.././../api/factory/otherLvPlan.js"; import ApiOtherLvPlan from "../.././../api/factory/otherLvPlan.js";
import ApiAuthinfo from "../../../api/factory/authinfo.js"; import ApiAuthinfo from "../../../api/factory/authinfo.js";
import ApiStudienSemester from '../../../api/factory/studiensemester.js';
export const DEFAULT_MODE_LVPLAN_DESKTOP = "Week"; export const DEFAULT_MODE_LVPLAN_DESKTOP = "Week";
export const DEFAULT_MODE_LVPLAN_MOBILE = "List"; export const DEFAULT_MODE_LVPLAN_MOBILE = "List";
@@ -22,9 +23,6 @@ export default {
data() { data() {
return { return {
localProps: {}, localProps: {},
studiensemester_kurzbz: null,
studiensemester_start: null,
studiensemester_ende: null,
isOtherPersonMitarbeiter: false, isOtherPersonMitarbeiter: false,
isOtherPersonStudent: false, isOtherPersonStudent: false,
currentStgBezeichnung: null, currentStgBezeichnung: null,
@@ -36,6 +34,8 @@ export default {
photo: "", photo: "",
}, },
timezone: FHC_JS_DATA_STORAGE_OBJECT.timezone, timezone: FHC_JS_DATA_STORAGE_OBJECT.timezone,
startSemester: null,
endSemester: null,
}; };
}, },
inject: ["isMobile"], inject: ["isMobile"],
@@ -67,11 +67,10 @@ export default {
// do not show download links in otherLvPlan Mode // do not show download links in otherLvPlan Mode
return false; return false;
if ( const startDate = this.startSemester?.start;
!this.studiensemester_start || const endDate = this.endSemester ? this.endSemester.ende : this.startSemester?.ende;
!this.studiensemester_ende ||
!this.propsViewData.otherUid if (!startDate || !endDate || !this.uid)
)
return false; return false;
const type = this.isOtherPersonStudent const type = this.isOtherPersonStudent
@@ -84,11 +83,11 @@ export default {
const opts = { zone: this.timezone }; const opts = { zone: this.timezone };
const start = luxon.DateTime.fromISO( const start = luxon.DateTime.fromISO(
this.studiensemester_start, startDate,
opts, opts,
).toUnixInteger(); ).toUnixInteger();
const ende = luxon.DateTime.fromISO( const ende = luxon.DateTime.fromISO(
this.studiensemester_ende, endDate,
opts, opts,
).toUnixInteger(); ).toUnixInteger();
@@ -166,19 +165,21 @@ export default {
}, },
}); });
}, },
updateRange(rangeInterval) { async updateRange(rangeInterval) {
this.$api const semesterResponse = await this.$api.call(
.call( ApiStudienSemester.getContainingOrNearestByDateRange(
ApiLvPlan.studiensemesterDateInterval( rangeInterval.s.toISO().slice(0, 10),
rangeInterval.end.startOf("week").toISODate(), rangeInterval.e.toISO().slice(0, 10),
), ),
) );
.then((res) => { this.startSemester =
this.studiensemester_kurzbz = semesterResponse.data.length
res.data.studiensemester_kurzbz; ? semesterResponse.data[0]
this.studiensemester_start = res.data.start; : null;
this.studiensemester_ende = res.data.ende; this.endSemester =
}); semesterResponse.data.length > 1
? semesterResponse.data[1]
: null;
}, },
getPromiseFunc(start, end) { getPromiseFunc(start, end) {
return [ return [
@@ -250,8 +251,14 @@ export default {
<div class="d-flex flex-column h-100"> <div class="d-flex flex-column h-100">
<h2> <h2>
<div class="d-flex flex-row justify-content-between align-items-center"> <div class="d-flex flex-row justify-content-between align-items-center">
<span> <span>
{{ $p.t('lehre/stundenplan') + (studiensemester_kurzbz ? " " + studiensemester_kurzbz : "") }} {{ $p.t('lehre/stundenplan') }}
<span v-if="startSemester?.studiensemester_kurzbz">
{{ startSemester.studiensemester_kurzbz }}
<span v-if="endSemester?.studiensemester_kurzbz">
{{ "- " + endSemester.studiensemester_kurzbz }}
</span>
</span>
</span> </span>
<div @click="this.$router.push({name: 'ProfilView', params: {uid: propsViewData.otherUid}})" type="button" class="d-flex flex-row align-items-center gap-3"> <div @click="this.$router.push({name: 'ProfilView', params: {uid: propsViewData.otherUid}})" type="button" class="d-flex flex-row align-items-center gap-3">
<span v-if="otherPersonData.fullNameWithTitle?.length"> <span v-if="otherPersonData.fullNameWithTitle?.length">
+1 -1
View File
@@ -186,7 +186,7 @@ export default {
</div> </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="cis-main-menu 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 class="d-flex flex-row h-100"> <div class="d-flex flex-row h-100">
<div class="offcanvas-body p-0"> <div class="offcanvas-body p-0">
+8 -14
View File
@@ -72,20 +72,10 @@ export default {
return this.entry.url.startsWith(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router) return this.entry.url.startsWith(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router)
}, },
target() { target() {
if (this.entry.template_kurzbz == 'redirect') { if (this.entry?.target) {
if (!this.entry.content) return this.entry.target;
return '';
let xmlDoc = (new DOMParser()).parseFromString(this.entry.content,"text/xml");
let target = xmlDoc.getElementsByTagName('target')[0];
if (!target)
return '';
target = target.childNodes[0].nodeValue + "";
if (target == 'content' || target == '_self')
target = "";
return target;
} }
return '' return '_self';
}, },
hasChilds() { hasChilds() {
return this.entry.childs && this.entry.childs.length !== 0; return this.entry.childs && this.entry.childs.length !== 0;
@@ -172,6 +162,7 @@ export default {
<div class="btn-group w-100"> <div class="btn-group w-100">
<a :target="target" <a :target="target"
:href="(entry.menu_open && hasFullLink) ? entry.url : null" :href="(entry.menu_open && hasFullLink) ? entry.url : null"
draggable="false"
@click="toggleCollapse" @click="toggleCollapse"
:class="{ :class="{
'btn btn-default rounded-0 text-start': true, 'btn btn-default rounded-0 text-start': true,
@@ -190,12 +181,15 @@ export default {
</div> </div>
<ul ref="children" <ul ref="children"
class="nav w-100 collapse"> class="nav w-100 collapse">
<cis-menu-entry :highestMatchingUrlCount="highestMatchingUrlCount" :activeContent="activeContent" v-for="child in entry.childs" :key="child" :entry="child" :level="level + 1"/> <li>
<cis-menu-entry :highestMatchingUrlCount="highestMatchingUrlCount" :activeContent="activeContent" v-for="child in entry.childs" :key="child" :entry="child" :level="level + 1"/>
</li>
</ul> </ul>
</template> </template>
<a v-else <a v-else
:href="entry.url" :href="entry.url"
:target="target" :target="target"
draggable="false"
:class="{ :class="{
'btn btn-default rounded-0 w-100 text-start': true, 'btn btn-default rounded-0 w-100 text-start': true,
['btn-level-' + level]: true, ['btn-level-' + level]: true,
@@ -73,7 +73,7 @@ export default {
// check if the lv has lvplan entries for this studiensemester // check if the lv has lvplan entries for this studiensemester
if (this.studiensemester && this.event) { if (this.studiensemester && this.event) {
return this.$fhcApi.factory.studium.getLvPlanForStudiensemester(this.studiensemester, this.event.lehreinheit_id ?? this.event.lehrveranstaltung_id) return this.$fhcApi.factory.studium.getLvPlanForStudiensemester(this.studiensemester, this.event.lehreinheit_id ?? this.event.lehrveranstaltung_id)
.then(data => data.data) .then(data => data.data?.retval)
.then(res => { .then(res => {
if (Array.isArray(res) && res.length > 0) { if (Array.isArray(res) && res.length > 0) {
this.hasLvPlanEintraege = true; this.hasLvPlanEintraege = true;
@@ -114,4 +114,4 @@ export default {
`, `,
}; };
@@ -2,15 +2,16 @@ export default {
props: { props: {
data: { data: {
type: String, type: String,
} },
}, },
data() { data() {
return {} return {};
}, },
template: /*html*/` template: /*html*/ `
<div class="card"> <div class="card">
<div class="card-body"> <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>
</div>`, </div>`,
} };
@@ -1,5 +1,6 @@
export default { export default {
name: 'Cis-Renderer-Feiertag-CalendarEvent',
props: { props: {
event: { event: {
type: Object, type: Object,
@@ -1,6 +1,7 @@
import { formatDate } from "../../../../helpers/DateHelpers.js" import { formatDate } from "../../../../helpers/DateHelpers.js"
export default { export default {
name: 'Cis-Renderer-Feiertag-ModalContent',
props:{ props:{
event: { event: {
type: Object, type: Object,
@@ -1,4 +1,5 @@
export default { export default {
name: 'Cis-Renderer-Feiertag-ModalTitle',
props:{ props:{
event: { event: {
type: Object, type: Object,
@@ -1,4 +1,5 @@
export default { export default {
name: 'Cis-Renderer-Lehreinheit-CalendarEvent',
props:{ props:{
event: { event: {
type: Object, type: Object,
@@ -5,6 +5,7 @@ import ApiLvPlan from '../../../../api/factory/lvPlan.js';
import ApiAddons from '../../../../api/factory/addons.js'; import ApiAddons from '../../../../api/factory/addons.js';
export default { export default {
name: 'Cis-Renderer-Lehreinheit-ModalContent',
components:{ components:{
LvMenu, LvMenu,
}, },
@@ -49,6 +50,16 @@ export default {
return this.event.ende; return this.event.ende;
} }
return numberPadding(this.event.ende.getHours()) + ":" + numberPadding(this.event.ende.getMinutes()); return numberPadding(this.event.ende.getHours()) + ":" + numberPadding(this.event.ende.getMinutes());
},
showLvMenu: function() {
const hideOnRoutes = [
'OtherLvPlan',
'StgOrgLvPlan'
];
if(hideOnRoutes.includes(this.$route.name)) {
return false;
}
return true;
} }
}, },
watch: { watch: {
@@ -162,6 +173,6 @@ export default {
</tr> </tr>
</tbody> </tbody>
</table> </table>
<lv-menu v-if="lvMenu.length && $route.name === 'MyLvPlan'" :containerStyles="['p-0']" :rowStyles="['m-0']" :menu="lvMenu" /> <lv-menu v-if="lvMenu.length && showLvMenu" :containerStyles="['p-0']" :rowStyles="['m-0']" :menu="lvMenu" />
</div>`, </div>`,
} }
@@ -1,4 +1,5 @@
export default { export default {
name: 'Cis-Renderer-Lehreinheit-ModalTitle',
props:{ props:{
event: { event: {
type: Object, type: Object,
@@ -1,4 +1,5 @@
export default { export default {
name: 'Cis-Renderer-Reservierung-CalendarEvent',
props: { props: {
event: { event: {
type: Object, type: Object,
@@ -2,6 +2,7 @@ import { numberPadding, formatDate } from "../../../../helpers/DateHelpers.js"
import LvMenu from "../../Mylv/LvMenu.js"; import LvMenu from "../../Mylv/LvMenu.js";
export default { export default {
name: 'Cis-Renderer-Reservierung-ModalContent',
props:{ props:{
event: { event: {
type: Object, type: Object,
@@ -1,4 +1,5 @@
export default { export default {
name: 'Cis-Renderer-Reservierung-ModalTitle',
props:{ props:{
event: { event: {
type: Object, type: Object,
+13 -2
View File
@@ -1,5 +1,6 @@
import BsModal from "../Bootstrap/Modal.js"; import BsModal from "../Bootstrap/Modal.js";
import HeightTransition from "../Tranistion/HeightTransition.js"; import HeightTransition from "../Tranistion/HeightTransition.js";
import MissingPermissionWidget from "../DashboardWidget/MissingPermission.js";
import { enableDragDropTouch } from "../../../../vendor/drag-drop-touch-js/dragdroptouch/dist/drag-drop-touch.esm.min.js"; import { enableDragDropTouch } from "../../../../vendor/drag-drop-touch-js/dragdroptouch/dist/drag-drop-touch.esm.min.js";
@@ -112,6 +113,12 @@ export default {
isPinned() { isPinned() {
return this.place?.pinned ? true : false; return this.place?.pinned ? true : false;
}, },
permitted() {
// widgets without a linked permission (or before the template loaded)
// are considered permitted; the backend sets permitted === false only
// when the user is missing the widget's required permission
return this.widgetTemplate?.permitted !== false;
},
ready() { ready() {
return this.component && this.arguments !== null; return this.component && this.arguments !== null;
} }
@@ -169,7 +176,11 @@ export default {
&& this.widgetTemplate.widget_id && this.widgetTemplate.widget_id
&& this.widgetTemplate.arguments && this.widgetTemplate.arguments
) { ) {
let component = (await import(this.widgetTemplate.setup.file)).default; // render the "missing permission" screen instead of the actual
// widget when the user does not hold the widget's linked permission
let component = this.permitted
? (await import(this.widgetTemplate.setup.file)).default
: MissingPermissionWidget;
this.$options.components["widget" + this.widgetTemplate.widget_id] = component; this.$options.components["widget" + this.widgetTemplate.widget_id] = component;
this.component = "widget" + this.widgetTemplate.widget_id; this.component = "widget" + this.widgetTemplate.widget_id;
this.arguments = { ...this.widgetTemplate.arguments, ...this.config }; this.arguments = { ...this.widgetTemplate.arguments, ...this.config };
@@ -269,7 +280,7 @@ export default {
</template> </template>
<!-- widget link --> <!-- widget link -->
<a <a
v-if="widgetTemplate.setup.cis4link" v-if="widgetTemplate.setup.cis4link && permitted"
:href="getWidgetC4Link(widgetTemplate)" :href="getWidgetC4Link(widgetTemplate)"
class="col-auto ms-auto" class="col-auto ms-auto"
:aria-label="$p.t('dashboard/widget_link')" :aria-label="$p.t('dashboard/widget_link')"
@@ -14,10 +14,14 @@ export default {
callbacks: {} callbacks: {}
}), }),
computed: { computed: {
// filter widgets away the user has no permissions for
availableWidgets() {
return (this.widgets || []).filter(widget => widget.permitted !== false);
},
hasAnyWidgets() { hasAnyWidgets() {
if (!this.widgets) if (!this.widgets)
return false; return false;
if (!this.widgets.length && !this.hiddenWidgets?.length) if (!this.availableWidgets.length && !this.hiddenWidgets?.length)
return false; return false;
return true; return true;
} }
@@ -54,7 +58,7 @@ export default {
<template v-slot:default> <template v-slot:default>
<template v-if="widgets && hiddenWidgets"> <template v-if="widgets && hiddenWidgets">
<div <div
v-if="!widgets.length && !hiddenWidgets.length" v-if="!availableWidgets.length && !hiddenWidgets.length"
class="row g-2" class="row g-2"
> >
<div>{{ $p.t('dashboard/noWidgetsAvailable') }}</div> <div>{{ $p.t('dashboard/noWidgetsAvailable') }}</div>
@@ -74,16 +78,17 @@ export default {
</div> </div>
</div> </div>
<div <div
v-if="widgets.length" v-if="availableWidgets.length"
class="row g-2" class="row g-2"
> >
<div <template
v-for="widget in widgets" v-for="widget in availableWidgets"
:key="widget.widget_id" :key="widget.widget_id"
class="widget-icon-container col-sm-6 col-md-4 col-lg-3 col-xl-2"
> >
<widget-icon @select="pick" :widget="widget"></widget-icon> <div v-if="widget.permitted" class="widget-icon-container col-sm-6 col-md-4 col-lg-3 col-xl-2">
</div> <widget-icon @select="pick" :widget="widget"></widget-icon>
</div>
</template>
</div> </div>
</template> </template>
</template> </template>
@@ -0,0 +1,21 @@
import AbstractWidget from './Abstract.js';
/**
* Fallback screen rendered in place of a widget when the current user is missing
* the permission (berechtigung_kurzbz) linked to that widget. Used for widgets
* that are already on a user's dashboard but whose required permission the user
* no longer holds.
*/
export default {
mixins: [
AbstractWidget
],
created() {
this.$emit('setConfig', false);
},
template: /*html*/`
<div class="dashboard-widget-missing-permission d-flex flex-column justify-content-center align-items-center text-center h-100 p-3 text-body-secondary">
<i class="fa-solid fa-lock fa-2x mb-2" aria-hidden="true"></i>
<p class="mb-0">{{ $p.t('dashboard/widget_missing_permission') }}</p>
</div>`
}
@@ -542,10 +542,10 @@ export default {
<template v-if="typeHeader==='mitarbeiter'"> <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 <img
class="d-block w-100 h-100 rounded" class="d-block rounded"
style="height: 84px; object-fit: contain;" style="height: 96px;"
alt="Profilbild" alt="Profilbild"
:src="getFotoSrc(headerDataMa.foto)" :src="getFotoSrc(headerDataMa.foto)"
/> />
@@ -558,15 +558,13 @@ export default {
<template v-if="fotoEditable"> <template v-if="fotoEditable">
<button <button
type="button" type="button"
class="fotoedit btn btn-outline-dark btn-sm d-flex justify-content-center align-items-center position-absolute start-0" class="fotoedit buttonleft 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%;"
@click="showDeleteModal(person_id)"> @click="showDeleteModal(person_id)">
<i class="fa fa-xmark"></i> <i class="fa fa-xmark"></i>
</button> </button>
<button <button
type="button" type="button"
class="fotoedit btn btn-outline-dark btn-sm d-flex justify-content-center align-items-center position-absolute end-0" class="fotoedit buttonright 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%;"
@click="showModal(person_id)"> @click="showModal(person_id)">
<i class="fa fa-pen"></i> <i class="fa fa-pen"></i>
</button> </button>
@@ -49,6 +49,52 @@ export default{
{title: this.$p.t('person', 'nachname'), field:"nachname"}, {title: this.$p.t('person', 'nachname'), field:"nachname"},
{title: this.$p.t('person', 'vorname'), field:"vorname"}, {title: this.$p.t('person', 'vorname'), field:"vorname"},
{title: this.$p.t('person', 'uid'), field:"mitarbeiter_uid"}, {title: this.$p.t('person', 'uid'), field:"mitarbeiter_uid"},
{title: this.$p.t('global/insertvon'), field: 'insertvon', visible: false},
{
title: this.$p.t('global/insertamum'),
field: "insertamum",
visible: false,
formatter: function (cell) {
const dateStr = cell.getValue();
if (!dateStr) return "";
const date = new Date(dateStr);
return date.toLocaleString("de-DE", {
day: "2-digit",
month: "2-digit",
year: "numeric",
hour: "2-digit",
minute: "2-digit",
second: "2-digit",
hour12: false
});
}
},
{title: this.$p.t('global/updatevon'), field: 'updatevon', visible: false},
{
title: this.$p.t('global/updateamum'),
field: "updateamum",
visible: false,
formatter: function (cell) {
const dateStr = cell.getValue();
if (!dateStr) return "";
const date = new Date(dateStr);
return date.toLocaleString("de-DE", {
day: "2-digit",
month: "2-digit",
year: "numeric",
hour: "2-digit",
minute: "2-digit",
second: "2-digit",
hour12: false
});
}
},
{title: this.$p.t('lehre', 'lehreinheit_id'), field:"lehreinheit_id"}, {title: this.$p.t('lehre', 'lehreinheit_id'), field:"lehreinheit_id"},
{ {
title: this.$p.t('lehre', 'verplant'), title: this.$p.t('lehre', 'verplant'),
@@ -102,7 +148,7 @@ export default{
selectable: true, selectable: true,
selectableRangeMode: 'click', selectableRangeMode: 'click',
selectableRows:1, selectableRows:1,
persistenceID: 'lehrveranstaltungen_lektor_table_2025_05_27_v1', persistenceID: 'lehrveranstaltungen_lektor_table_2026_09_11_v1',
}}, }},
}, },
mounted(){ mounted(){
@@ -193,7 +193,7 @@ export default {
return this.$api return this.$api
.call(ApiStvProjektarbeit.getLehrveranstaltungen( .call(ApiStvProjektarbeit.getLehrveranstaltungen(
this.student.uid, this.student.uid,
this.newProjektarbeit ? this.student.studiengang_kz : null, this.student.studiengang_kz,
this.studiensemester, this.studiensemester,
this.additional_lehrveranstaltung_id this.additional_lehrveranstaltung_id
)) ))
@@ -227,7 +227,8 @@ export default {
if (preparedFormData.projektarbeit_id == null) delete(preparedFormData.projektarbeit_id); if (preparedFormData.projektarbeit_id == null) delete(preparedFormData.projektarbeit_id);
delete(preparedFormData.firma); delete(preparedFormData.firma);
delete(preparedFormData.firma_name); delete(preparedFormData.firma_name);
delete(preparedFormData.lehrveranstaltung_id);
preparedFormData.studiensemester_kurzbz = this.studiensemester
return preparedFormData; return preparedFormData;
} }
@@ -290,7 +291,7 @@ export default {
<div class="row mb-3"> <div class="row mb-3">
<div class="col-10"> <div class="col-9">
<form-input <form-input
container-class="stv-details-projektarbeit-firma" container-class="stv-details-projektarbeit-firma"
:label="$p.t('projektarbeit', 'firma')" :label="$p.t('projektarbeit', 'firma')"
@@ -304,7 +305,7 @@ export default {
> >
</form-input> </form-input>
</div> </div>
<div class="col-2 align-content-center"> <div class="col-3 align-content-center">
<a :href="firmenverwaltungLink" target="_blank"> <a :href="firmenverwaltungLink" target="_blank">
{{ $p.t('projektarbeit', 'zurFirmenverwaltung') }} {{ $p.t('projektarbeit', 'zurFirmenverwaltung') }}
</a> </a>
@@ -313,14 +314,13 @@ export default {
<div class="row mb-3"> <div class="row mb-3">
<form-input <form-input
container-class="stv-details-projektarbeit-lv col-10" container-class="stv-details-projektarbeit-lv col-9"
:label="$p.t('projektarbeit', 'lehrveranstaltung')" :label="$p.t('projektarbeit', 'lehrveranstaltung')"
type="select" type="select"
v-model="formData.lehrveranstaltung_id" v-model="formData.lehrveranstaltung_id"
name="lehrveranstaltung_id" name="lehrveranstaltung_id"
@change="lvChanged($event)" @change="lvChanged($event)"
> >
<option :value="null"> -- {{$p.t('fehlermonitoring', 'keineAuswahl')}} -- </option>
<option <option
v-for="lv in arrLvs" v-for="lv in arrLvs"
:key="lv.lehrveranstaltung_id" :key="lv.lehrveranstaltung_id"
@@ -330,14 +330,13 @@ export default {
</option> </option>
</form-input> </form-input>
<form-input <form-input
container-class="col-2" container-class="col-3"
:label="$p.t('lehre', 'studiensemester')" :label="$p.t('lehre', 'studiensemester')"
type="select" type="select"
v-model="studiensemester" v-model="studiensemester"
name="studiensemester" name="studiensemester"
@change="studiensemesterChanged" @change="studiensemesterChanged"
> >
<option :value="null"> -- {{$p.t('fehlermonitoring', 'keineAuswahl')}} -- </option>
<option <option
v-for="sem in arrStudiensemester" v-for="sem in arrStudiensemester"
:key="sem.studiensemester_kurzbz" :key="sem.studiensemester_kurzbz"
@@ -42,16 +42,16 @@ export default {
return { return {
tabulatorOptions: { tabulatorOptions: {
columns: [ columns: [
{title: "Nachname", field: "nachname"}, {title: "Nachname", field: "nachname", widthGrow: 2},
{title: "Vorname", field: "vorname"}, {title: "Vorname", field: "vorname", widthGrow: 2},
{title: "Note", field: "note"}, {title: "Note", field: "note", widthGrow: 1},
{title: "Punkte", field: "punkte"}, {title: "Punkte", field: "punkte", widthGrow: 1},
{title: "Stunden", field: "stunden"}, {title: "Stunden", field: "stunden", widthGrow: 1},
{title: "Stundensatz", field: "stundensatz", visible: false}, {title: "Stundensatz", field: "stundensatz", visible: false, widthGrow: 1},
{title: "Art", field: "betreuerart_kurzbz", visible: false}, {title: "Art", field: "betreuerart_kurzbz", visible: false, widthGrow: 2},
{title: "Person ID", field: "person_id", visible: false}, {title: "Person ID", field: "person_id", visible: false, widthGrow: 1},
{title: "Vertrag ID", field: "vertrag_id", visible: false}, {title: "Vertrag ID", field: "vertrag_id", visible: false, widthGrow: 1},
{title: "Projektarbeit ID", field: "projektarbeit_id", visible: false}, {title: "Projektarbeit ID", field: "projektarbeit_id", visible: false, widthGrow: 1},
{ {
title: 'Aktionen', title: 'Aktionen',
field: 'actions', field: 'actions',
+1
View File
@@ -75,6 +75,7 @@ var Rueckstellung = {
if (FHC_AjaxClient.hasData(data)) if (FHC_AjaxClient.hasData(data))
{ {
Rueckstellung.get(personid); Rueckstellung.get(personid);
InfocenterDetails._refreshMessages();
InfocenterDetails._refreshLog() InfocenterDetails._refreshLog()
} }
else else
+1 -2
View File
@@ -192,8 +192,7 @@ function draw_content_xml($row)
$note = (isset($note_arr[$row_proj->note])?$note_arr[$row_proj->note]:$row_proj->note); $note = (isset($note_arr[$row_proj->note])?$note_arr[$row_proj->note]:$row_proj->note);
$datum_projekt = $datum_obj->convertISODate($row_proj->ende); $datum_projekt = $datum_obj->convertISODate($row_proj->ende);
$projektarbeit = new projektarbeit($row_proj->projektarbeit_id); $projektarbeit = new projektarbeit($row_proj->projektarbeit_id);
$lehreinheit = new lehreinheit($projektarbeit->lehreinheit_id); $lehrveranstaltung = new lehrveranstaltung($projektarbeit->lehrveranstaltung_id);
$lehrveranstaltung = new lehrveranstaltung($lehreinheit->lehrveranstaltung_id);
$projektnote = new note($note); $projektnote = new note($note);
} }
+14 -8
View File
@@ -998,12 +998,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
tbl_firma.name, lehrveranstaltung_id, firma_id tbl_firma.name, lehrveranstaltung_id, firma_id
FROM FROM
lehre.tbl_projektarbeit lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_firma USING(firma_id) JOIN public.tbl_firma USING(firma_id)
WHERE WHERE
student_uid=".$db->db_add_param($uid_arr[$i])." student_uid=".$db->db_add_param($uid_arr[$i])."
AND projekttyp_kurzbz in('Praktikum', 'Praxis') AND projekttyp_kurzbz in('Praktikum', 'Praxis')
AND tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)." AND tbl_projektarbeit.lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)."
ORDER BY beginn ASC, projektarbeit_id ASC;"; ORDER BY beginn ASC, projektarbeit_id ASC;";
if($result_praktikum = $db->db_query($qry)) if($result_praktikum = $db->db_query($qry))
@@ -1019,14 +1018,14 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
// Aber kein Auslandssemester war, sonst wirds spaeter hinzugefügt // Aber kein Auslandssemester war, sonst wirds spaeter hinzugefügt
$qry = " $qry = "
SELECT SELECT
lehrveranstaltung_id, titel, themenbereich, note, titel_english lehre.tbl_projektarbeit.lehrveranstaltung_id, titel, themenbereich, note, titel_english
FROM FROM
lehre.tbl_projektarbeit lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
student_uid=".$db->db_add_param($uid_arr[$i])." student_uid=".$db->db_add_param($uid_arr[$i])."
AND projekttyp_kurzbz in('Bachelor', 'Diplom') AND projekttyp_kurzbz in('Bachelor', 'Diplom')
AND lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)." AND lehre.tbl_projektarbeit.lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)."
AND NOT EXISTS(SELECT 1 AND NOT EXISTS(SELECT 1
FROM bis.tbl_bisio FROM bis.tbl_bisio
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
@@ -1039,6 +1038,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
while($row_thesis = $db->db_fetch_object($result_thesis)) while($row_thesis = $db->db_fetch_object($result_thesis))
{ {
$bezeichnung.= ": \"".$row_thesis->titel."\""; $bezeichnung.= ": \"".$row_thesis->titel."\"";
// hier sollt nicht $titel_english verwendet werden, da in der projektarbeitsbeurteilung ein
// feature zum aktualisieren des projektarbeit titel existiert und nur das feld 'titel' editiert.
// um divergente thesisnamen zu vermeiden wird in beiden Fällen der (ohnehin öfters englische) Wert
// aus 'titel' verwendet.
$bezeichnung_englisch.= ": \"".$row_thesis->titel."\""; $bezeichnung_englisch.= ": \"".$row_thesis->titel."\"";
} }
} }
@@ -1086,9 +1089,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
SELECT SELECT
studiensemester_kurzbz, ort, ects, semesterstunden, von, bis, studiensemester_kurzbz, ort, ects, semesterstunden, von, bis,
universitaet, lehrveranstaltung_id, tbl_lehrveranstaltung.sws, universitaet, lehrveranstaltung_id, tbl_lehrveranstaltung.sws,
(SELECT titel_english FROM lehre.tbl_projektarbeit (SELECT titel_english
WHERE lehreinheit_id=tbl_bisio.lehreinheit_id FROM lehre.tbl_projektarbeit
AND student_uid = ".$db->db_add_param($uid_arr[$i])." limit 1) as projektarbeitstitel WHERE lehre.tbl_projektarbeit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
AND lehre.tbl_projektarbeit.studiensemester_kurzbz = tbl_lehreinheit.studiensemester_kurzbz
AND student_uid = ".$db->db_add_param($uid_arr[$i])."
LIMIT 1) as projektarbeitstitel
FROM FROM
bis.tbl_bisio bis.tbl_bisio
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+1 -2
View File
@@ -95,8 +95,7 @@ echo "<gesamt_note>".$note->bezeichnung."</gesamt_note>";
if(!empty($projektarbeit->result)) if(!empty($projektarbeit->result))
{ {
$lehreinheit = new lehreinheit($projektarbeit->result[0]->lehreinheit_id); $lehrveranstaltung = new lehrveranstaltung($projektarbeit->result[0]->lehrveranstaltung_id);
$lehrveranstaltung = new lehrveranstaltung($lehreinheit->lehrveranstaltung_id);
$note = new note($projektarbeit->result[0]->note); $note = new note($projektarbeit->result[0]->note);
echo "<projektarbeit_titel>".$projektarbeit->result[0]->titel."</projektarbeit_titel>"; echo "<projektarbeit_titel>".$projektarbeit->result[0]->titel."</projektarbeit_titel>";
echo "<projektarbeit_note>".$note->bezeichnung."</projektarbeit_note>"; echo "<projektarbeit_note>".$note->bezeichnung."</projektarbeit_note>";
+17 -25
View File
@@ -120,16 +120,15 @@ if ($uid == null)
SELECT SELECT
tbl_benutzer.uid as mitarbeiter_uid tbl_benutzer.uid as mitarbeiter_uid
FROM FROM
lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter
WHERE WHERE
tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
student_uid=vw_student.uid AND student_uid=vw_student.uid AND
tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND
tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_projektarbeit.lehrveranstaltung_id AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
tbl_projektbetreuer.stunden!='0' tbl_projektbetreuer.stunden!='0'
) as mitarbeiter ORDER BY mitarbeiter_uid"; ) as mitarbeiter ORDER BY mitarbeiter_uid";
@@ -394,30 +393,23 @@ function drawLehrauftrag($uid)
,tbl_projektbetreuer.stunden ,tbl_projektbetreuer.stunden
,tbl_projektbetreuer.stundensatz ,tbl_projektbetreuer.stundensatz
,tbl_lehrveranstaltung.semester ,tbl_lehrveranstaltung.semester
,vorname ,campus.vw_student.vorname
,nachname ,campus.vw_student.nachname
,vw_student.studiengang_kz ,tbl_student.studiengang_kz
,projekttyp_kurzbz ,projekttyp_kurzbz
,lehrfach.oe_kurzbz ,lehre.tbl_lehrveranstaltung.oe_kurzbz
FROM lehre.tbl_projektbetreuer FROM lehre.tbl_projektbetreuer
,lehre.tbl_lehreinheit JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
,lehre.tbl_lehrveranstaltung AS lehrfach JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
,lehre.tbl_lehrveranstaltung JOIN public.tbl_organisationseinheit USING (oe_kurzbz)
,public.tbl_organisationseinheit JOIN public.tbl_benutzer USING (person_id)
,public.tbl_benutzer JOIN public.tbl_student ON (tbl_projektarbeit.student_uid = tbl_student.student_uid)
,lehre.tbl_projektarbeit JOIN campus.vw_student ON (campus.vw_student.uid = tbl_student.student_uid)
,campus.vw_student WHERE tbl_benutzer.uid = ".$db->db_add_param($uid)."
WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id AND lehre.tbl_projektarbeit.studiensemester_kurzbz = ".$db->db_add_param($ss);
AND tbl_benutzer.uid = ".$db->db_add_param($uid)."
AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id
AND student_uid = vw_student.uid
AND tbl_organisationseinheit.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz
AND tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id
AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($ss)."
AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id";
if ($studiengang_kz != '') if ($studiengang_kz != '')
$qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); $qry .= " AND lehre.tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
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))
+5 -7
View File
@@ -124,16 +124,15 @@ if ($uid == null)
SELECT SELECT
tbl_benutzer.uid as mitarbeiter_uid tbl_benutzer.uid as mitarbeiter_uid
FROM FROM
lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter
WHERE WHERE
tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
student_uid=vw_student.uid AND student_uid=vw_student.uid AND
tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND
tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_projektarbeit.lehrveranstaltung_id AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
tbl_projektbetreuer.stunden!='0' tbl_projektbetreuer.stunden!='0'
) as mitarbeiter ORDER BY mitarbeiter_uid"; ) as mitarbeiter ORDER BY mitarbeiter_uid";
@@ -428,8 +427,7 @@ function drawLehrauftrag($uid)
vertragsstatus_kurzbz vertragsstatus_kurzbz
FROM lehre.tbl_projektbetreuer pb FROM lehre.tbl_projektbetreuer pb
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
JOIN campus.vw_student student ON pa.student_uid = student.uid JOIN campus.vw_student student ON pa.student_uid = student.uid
@@ -438,7 +436,7 @@ function drawLehrauftrag($uid)
WHERE pb.vertrag_id IS NOT NULL WHERE pb.vertrag_id IS NOT NULL
AND vvst.vertragsstatus_kurzbz = \'akzeptiert\' AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
AND benutzer.uid = '.$db->db_add_param($uid).' AND benutzer.uid = '.$db->db_add_param($uid).'
AND le.studiensemester_kurzbz = '.$db->db_add_param($ss); AND pa.studiensemester_kurzbz = '.$db->db_add_param($ss);
if ($studiengang_kz != '') if ($studiengang_kz != '')
{ {
+6
View File
@@ -92,6 +92,12 @@ elseif($lehrveranstaltung_kompatibel_id!='')
else else
$lehrveranstaltung->load_lva($stg_kz,$sem); $lehrveranstaltung->load_lva($stg_kz,$sem);
// try to filter projektarbeit lva selection by those lva that are also assigned to students current studienplan
// so it is more likely that the thesis name gets found by the diplomasupplement script
if(isset($_GET['projektarbeit']) && isset($_GET['uid'])) {
$lehrveranstaltung->checkLvaAgainstStudentCurrentStudienplan($student_uid);
}
$rdf_url='http://www.technikum-wien.at/lehrveranstaltung/'; $rdf_url='http://www.technikum-wien.at/lehrveranstaltung/';
echo ' echo '
+4 -3
View File
@@ -70,7 +70,7 @@ else
function draw_content($row) function draw_content($row)
{ {
global $rdf_url, $datum_obj; global $rdf_url, $datum_obj;
$lehreinheit = new lehreinheit($row->lehreinheit_id); $lehreinheit = $row->lehreinheit_id ? new lehreinheit($row->lehreinheit_id) : null;
echo ' echo '
<RDF:li> <RDF:li>
<RDF:Description id="'.$row->projektarbeit_id.'" about="'.$rdf_url.'/'.$row->projektarbeit_id.'" > <RDF:Description id="'.$row->projektarbeit_id.'" about="'.$rdf_url.'/'.$row->projektarbeit_id.'" >
@@ -80,8 +80,9 @@ function draw_content($row)
<PROJEKTARBEIT:titel><![CDATA['.xmlclean($row->titel).']]></PROJEKTARBEIT:titel> <PROJEKTARBEIT:titel><![CDATA['.xmlclean($row->titel).']]></PROJEKTARBEIT:titel>
<PROJEKTARBEIT:titel_english><![CDATA['.xmlclean($row->titel_english).']]></PROJEKTARBEIT:titel_english> <PROJEKTARBEIT:titel_english><![CDATA['.xmlclean($row->titel_english).']]></PROJEKTARBEIT:titel_english>
<PROJEKTARBEIT:lehreinheit_id><![CDATA['.$row->lehreinheit_id.']]></PROJEKTARBEIT:lehreinheit_id> <PROJEKTARBEIT:lehreinheit_id><![CDATA['.$row->lehreinheit_id.']]></PROJEKTARBEIT:lehreinheit_id>
<PROJEKTARBEIT:lehreinheit_stsem><![CDATA['.$lehreinheit->studiensemester_kurzbz.']]></PROJEKTARBEIT:lehreinheit_stsem> <PROJEKTARBEIT:lehreinheit_stsem><![CDATA['.($lehreinheit ? $lehreinheit->studiensemester_kurzbz : $row->studiensemester_kurzbz).']]></PROJEKTARBEIT:lehreinheit_stsem>
<PROJEKTARBEIT:lehrveranstaltung_id><![CDATA['.$lehreinheit->lehrveranstaltung_id.']]></PROJEKTARBEIT:lehrveranstaltung_id> <PROJEKTARBEIT:projektarbeit_stsem><![CDATA['.$row->studiensemester_kurzbz.']]></PROJEKTARBEIT:projektarbeit_stsem>
<PROJEKTARBEIT:lehrveranstaltung_id><![CDATA['.$row->lehrveranstaltung_id.']]></PROJEKTARBEIT:lehrveranstaltung_id>
<PROJEKTARBEIT:student_uid><![CDATA['.$row->student_uid.']]></PROJEKTARBEIT:student_uid> <PROJEKTARBEIT:student_uid><![CDATA['.$row->student_uid.']]></PROJEKTARBEIT:student_uid>
<PROJEKTARBEIT:firma_id><![CDATA['.$row->firma_id.']]></PROJEKTARBEIT:firma_id> <PROJEKTARBEIT:firma_id><![CDATA['.$row->firma_id.']]></PROJEKTARBEIT:firma_id>
<PROJEKTARBEIT:note><![CDATA['.$row->note.']]></PROJEKTARBEIT:note> <PROJEKTARBEIT:note><![CDATA['.$row->note.']]></PROJEKTARBEIT:note>
+2 -3
View File
@@ -124,9 +124,8 @@ if(isset($_REQUEST['xmlformat']) && $_REQUEST['xmlformat']=="xml")
} }
} }
$qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english $qry_projektarbeit = "SELECT lehre.tbl_projektarbeit.lehrveranstaltung_id, titel, themenbereich, note, titel_english
FROM lehre.tbl_projektarbeit FROM lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE student_uid='$uid' WHERE student_uid='$uid'
AND projekttyp_kurzbz in('Bachelor', 'Diplom') AND projekttyp_kurzbz in('Bachelor', 'Diplom')
ORDER BY beginn ASC, projektarbeit_id ASC;"; ORDER BY beginn ASC, projektarbeit_id ASC;";
+6 -8
View File
@@ -211,15 +211,14 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$qry_proj = " $qry_proj = "
SELECT SELECT
lehrveranstaltung_id, titel, themenbereich, note, titel_english, lehre.tbl_projektarbeit.lehrveranstaltung_id, titel, themenbereich, note, titel_english,
tbl_projekttyp.bezeichnung, projekttyp_kurzbz tbl_projekttyp.bezeichnung, projekttyp_kurzbz
FROM FROM
lehre.tbl_projektarbeit lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
WHERE WHERE
student_uid=".$db->db_add_param($uid_arr[$i])." student_uid=".$db->db_add_param($uid_arr[$i])."
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND lehre.tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
AND projekttyp_kurzbz in('Bachelor', 'Diplom') AND projekttyp_kurzbz in('Bachelor', 'Diplom')
ORDER BY beginn ASC, projektarbeit_id ASC"; ORDER BY beginn ASC, projektarbeit_id ASC";
@@ -297,13 +296,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
//Firma fuer Berufspraktikum //Firma fuer Berufspraktikum
$qry = "SELECT tbl_firma.name $qry = "SELECT tbl_firma.name
FROM FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_firma lehre.tbl_projektarbeit
JOIN lehre.tbl_lehrveranstaltung ON(lehre.tbl_projektarbeit.lehrveranstaltung_id = lehre.tbl_lehrveranstaltung.lehrveranstaltung_id)
JOIN public.tbl_firma ON(lehre.tbl_projektarbeit.firma_id = public.tbl_firma.firma_id)
WHERE WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_projektarbeit.firma_id = tbl_firma.firma_id AND
tbl_projektarbeit.student_uid=".$db->db_add_param($uid_arr[$i])." AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid_arr[$i])." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND tbl_projektarbeit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id);
$firma = ''; $firma = '';
+2 -2
View File
@@ -227,7 +227,7 @@ if ($db->db_query($qry))
* Aktuelles Semester beim Studenten stimmt nicht mit dem Ausbildungssemester des aktuellen Status überein * Aktuelles Semester beim Studenten stimmt nicht mit dem Ausbildungssemester des aktuellen Status überein
*/ */
$text .= "<br><br>Suche Studenten deren Semstern nicht mit dem $text .= "<br><br>Suche Studenten deren Semestern nicht mit dem
Ausbildungssemesters des aktuellen Status übereinstimmt ... <br><br>"; Ausbildungssemesters des aktuellen Status übereinstimmt ... <br><br>";
$student = new student(); $student = new student();
@@ -350,7 +350,7 @@ $prestudentFirst = new prestudent();
$prestudentSecond = new prestudent(); $prestudentSecond = new prestudent();
$i = 0; $i = 0;
// alle aktiven Studenten die im aktuellen Semster den Status Student haben // alle aktiven Studenten die im aktuellen Semester den Status Student haben
$qry_student = " $qry_student = "
SELECT SELECT
distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
+6 -2
View File
@@ -91,6 +91,7 @@ require_once('dbupdate_3.4/68744_StV_settings.php');
require_once('dbupdate_3.4/62889_reihungstest_ueberwachung_mit_constructor.php'); require_once('dbupdate_3.4/62889_reihungstest_ueberwachung_mit_constructor.php');
require_once('dbupdate_3.4/71399_dashboard_update_widget_paths.php'); 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/75469_le_optional_4_projektarbeit.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'); require_once('dbupdate_3.4/75888_reihungstest_mehrfachdurchfuehrung.php');
@@ -101,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/76160_lvv_favorites.php');
require_once('dbupdate_3.4/77080_tabulator_presets_table.php'); require_once('dbupdate_3.4/77080_tabulator_presets_table.php');
require_once('dbupdate_3.4/78292_gehaltsanpassungtyp.php'); require_once('dbupdate_3.4/78292_gehaltsanpassungtyp.php');
require_once('dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php');
require_once('dbupdate_3.4/77757_widgets_berechtigungen.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>';
@@ -252,7 +255,7 @@ $tabellen=array(
"hr.tbl_lohnguide_modellfunktion" => array("modellfunktion_kurzbz", "bezeichnung", "jobfamilie_kurzbz", "aktiv", "sort", "insertvon", "insertamum", "updatevon", "updateamum"), "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_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_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_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" => 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"), "lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
@@ -282,7 +285,7 @@ $tabellen=array(
"lehre.tbl_notenschluesselaufteilung" => array("notenschluesselaufteilung_id","notenschluessel_kurzbz","note","punkte"), "lehre.tbl_notenschluesselaufteilung" => array("notenschluesselaufteilung_id","notenschluessel_kurzbz","note","punkte"),
"lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"), "lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"),
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"), "lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"),
"lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"), "lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"),
"lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id", "zugangstoken", "zugangstoken_gueltigbis"), "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id", "zugangstoken", "zugangstoken_gueltigbis"),
"lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"), "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"),
"lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"), "lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"),
@@ -420,6 +423,7 @@ $tabellen=array(
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"), "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_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_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_app" => array("app"),
"system.tbl_appdaten" => array("appdaten_id","uid","app","appversion","version","bezeichnung","daten","freigabe","insertamum","insertvon","updateamum","updatevon"), "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"), "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';
}
@@ -0,0 +1,98 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
$cols_to_add = [
'lehrveranstaltung_id' => "INTEGER",
'studiensemester_kurzbz' => "VARCHAR(16)"
];
foreach ($cols_to_add as $col => $type) {
$check = "SELECT 1 FROM information_schema.columns
WHERE table_schema = 'lehre' AND table_name = 'tbl_projektarbeit' AND column_name = '$col'";
if ($result = $db->db_query($check)) {
if ($db->db_num_rows($result) === 0) {
$qry = "ALTER TABLE lehre.tbl_projektarbeit ADD COLUMN IF NOT EXISTS $col $type;";
if ($db->db_query($qry)) {
echo "<br>Column $col hinzugefuegt.";
} else {
echo "<strong>Error adding $col: ".$db->db_last_error()."</strong><br>";
}
}
}
}
// run the data migration and the constraint change only once.
// Target state: lehrveranstaltung_id NOT NULL, studiensemester_kurzbz NOT NULL, lehreinheit_id NULLable.
// The check returns a row as long as one of the three columns is not in the target state.
$state_check = "SELECT 1 FROM information_schema.columns
WHERE table_schema = 'lehre' AND table_name = 'tbl_projektarbeit'
AND ((column_name IN ('lehrveranstaltung_id', 'studiensemester_kurzbz') AND is_nullable = 'YES')
OR (column_name = 'lehreinheit_id' AND is_nullable = 'NO'))";
$migration_pending = false;
if ($result = $db->db_query($state_check)) {
$migration_pending = ($db->db_num_rows($result) > 0);
} else {
echo "<strong>State Check Error: ".$db->db_last_error()."</strong><br>";
}
if ($migration_pending) {
// retrieve lehrveranstaltung_id & studiensemester_kurzbz from tbl_lehreinheit
// into new columns based on the existing reference
$migration_qry = "UPDATE lehre.tbl_projektarbeit p
SET lehrveranstaltung_id = l.lehrveranstaltung_id,
studiensemester_kurzbz = l.studiensemester_kurzbz
FROM lehre.tbl_lehreinheit l
WHERE p.lehreinheit_id = l.lehreinheit_id
AND (p.lehrveranstaltung_id IS NULL OR p.studiensemester_kurzbz IS NULL);";
if ($db->db_query($migration_qry)) {
echo "<br>Datenmigration von lehreinheit_id zu lehrveranstaltung_id & studiensemester_kurzbz abgeschlossen.";
} else {
echo "<strong>Migration Error: ".$db->db_last_error()."</strong><br>";
}
// set NOT NULL and make lehreinheit_id NULLable
$constraint_qry = "ALTER TABLE lehre.tbl_projektarbeit
ALTER COLUMN lehrveranstaltung_id SET NOT NULL,
ALTER COLUMN studiensemester_kurzbz SET NOT NULL,
ALTER COLUMN lehreinheit_id DROP NOT NULL;";
if ($db->db_query($constraint_qry)) {
echo "<br>Constraints updated lehrveranstaltung_id SET NOT NULL, studiensemester_kurzbz SET NOT NULL, lehreinheit_id DROP NOT NULL.";
} else {
echo "<strong>Alter Constraints Error: ".$db->db_last_error()."</strong><br>";
}
}
// add fkey for lehrveranstaltung_id
$fk_check_lv = "SELECT 1 FROM information_schema.table_constraints
WHERE constraint_name = 'fk_projektarbeit_lehrveranstaltung_id' AND table_schema = 'lehre'";
if ($result = $db->db_query($fk_check_lv)) {
if ($db->db_num_rows($result) === 0) {
$qry = "ALTER TABLE lehre.tbl_projektarbeit
ADD CONSTRAINT fk_projektarbeit_lehrveranstaltung_id
FOREIGN KEY (lehrveranstaltung_id)
REFERENCES lehre.tbl_lehrveranstaltung (lehrveranstaltung_id)
ON DELETE RESTRICT;";
if ($db->db_query($qry)) echo '<br>fk_projektarbeit_lehrveranstaltung_id hinzugefuegt';
}
}
// add fkey for studiensemester_kurzbz
$fk_check_sem = "SELECT 1 FROM information_schema.table_constraints
WHERE constraint_name = 'fk_projektarbeit_studiensemester_kurzbz' AND table_schema = 'lehre'";
if ($result = $db->db_query($fk_check_sem)) {
if ($db->db_num_rows($result) === 0) {
$qry = "ALTER TABLE lehre.tbl_projektarbeit
ADD CONSTRAINT fk_projektarbeit_studiensemester_kurzbz
FOREIGN KEY (studiensemester_kurzbz)
REFERENCES public.tbl_studiensemester (studiensemester_kurzbz)
ON DELETE RESTRICT;";
if ($db->db_query($qry)) echo '<br>fk_projektarbeit_studiensemester_kurzbz hinzugefuegt';
}
}
@@ -4,7 +4,7 @@ if (! defined('DB_NAME')) exit('No direct script access allowed');
//Add column entwicklungs_id to bis.tbl_entwicklungsteam //Add column entwicklungs_id to bis.tbl_entwicklungsteam
if(!@$db->db_query("SELECT taglib FROM public.tbl_notiz_typ LIMIT 1")) 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)) if(!$db->db_query($qry))
echo '<strong> public.tbl_notiz_typ '.$db->db_last_error().'</strong><br>'; 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.';
}
}
@@ -0,0 +1,57 @@
<?php
/* Copyright (C) 2026 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Beschreibung:
* Dashboard Widgets: Verknüpfung einer (einzelnen) Berechtigung pro Widget.
* Neue Spalte dashboard.tbl_widget.berechtigung_kurzbz mit FK auf
* system.tbl_berechtigung. Ist die Spalte NULL, erfordert das Widget keine
* gesonderte Berechtigung. Benutzer denen die verknüpfte Berechtigung fehlt,
* bekommen das Widget nicht mehr zur Auswahl angezeigt bzw. sehen (falls bereits
* am Dashboard) einen "Fehlende Berechtigung"-Screen.
*/
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add column dashboard.tbl_widget.berechtigung_kurzbz (FK => system.tbl_berechtigung)
if ($result = @$db->db_query("
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'dashboard'
AND table_name = 'tbl_widget'
AND column_name = 'berechtigung_kurzbz';"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
ALTER TABLE dashboard.tbl_widget
ADD COLUMN berechtigung_kurzbz VARCHAR(32) NULL;
ALTER TABLE dashboard.tbl_widget
ADD CONSTRAINT tbl_widget_berechtigung_fk
FOREIGN KEY (berechtigung_kurzbz)
REFERENCES system.tbl_berechtigung (berechtigung_kurzbz)
ON UPDATE CASCADE ON DELETE SET NULL;";
if (!$db->db_query($qry))
{
echo '<strong>dashboard.tbl_widget: '.$db->db_last_error().'</strong><br>';
}
else
{
echo 'dashboard.tbl_widget: Spalte berechtigung_kurzbz (FK system.tbl_berechtigung) hinzugefuegt<br>';
}
}
}
+182
View File
@@ -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( array(
'app' => 'international', 'app' => 'international',
'category' => '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( array(
'app' => 'international', 'app' => 'international',
'category' => '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( array(
'app' => 'core', 'app' => 'core',
'category' => 'gruppenmanagement', '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( array(
'app' => 'core', 'app' => 'core',
'category' => 'profil', 'category' => 'profil',
@@ -48495,6 +48595,26 @@ array(
) )
) )
), ),
array(
'app' => 'core',
'category' => 'abgabetool',
'phrase' => 'c4termineTimeLine',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Zeitstrahl Termine',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Timeline Deadlines',
'description' => '',
'insertvon' => 'system'
)
)
),
array( array(
'app' => 'core', 'app' => 'core',
'category' => 'abgabetool', 'category' => 'abgabetool',
@@ -49500,6 +49620,26 @@ array(
) )
) )
), ),
array(
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'widget_missing_permission',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Ihnen fehlt die erforderliche Berechtigung, um dieses Widget anzuzeigen.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'You do not have the permission required to display this widget.',
'description' => '',
'insertvon' => 'system'
)
)
),
// CIS4 phrases from legacy code end // CIS4 phrases from legacy code end
// FHC4 Phrases Abschlusspruefung // FHC4 Phrases Abschlusspruefung
array( array(
@@ -62571,6 +62711,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
); );
+1 -1
View File
@@ -152,7 +152,7 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
if(in_array($row->status_kurzbz,array('Abbrecher','Unterbrecher','Diplomand','Absolvent'))) if(in_array($row->status_kurzbz,array('Abbrecher','Unterbrecher','Diplomand','Absolvent')))
{ {
// Schauen ob fuer das vorherige Studiensemester ein eindeutiger Eintrag vorhanden ist // Schauen ob fuer das vorherige Studiensemester ein eindeutiger Eintrag vorhanden ist
// Da bei diesen Statuseintraegen Studiensemster und Ausbildungssemester meist versetzt sind // Da bei diesen Statuseintraegen Studiensemester und Ausbildungssemester meist versetzt sind
// (zB Wintersemester 2. Semester) // (zB Wintersemester 2. Semester)
$stsem_obj = new studiensemester(); $stsem_obj = new studiensemester();
@@ -1,9 +1,9 @@
INSERT INTO lehre.tbl_projektarbeit INSERT INTO lehre.tbl_projektarbeit
(projektarbeit_id, projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte, beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, themenbereich, anmerkung, updateamum, updatevon, insertamum, insertvon, ext_id, gesamtstunden, titel_english, sprache, seitenanzahl, abgabedatum, kontrollschlagwoerter, schlagwoerter, schlagwoerter_en, abstract, abstract_en, "final") VALUES (projektarbeit_id, projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte, beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, themenbereich, anmerkung, updateamum, updatevon, insertamum, insertvon, ext_id, gesamtstunden, titel_english, sprache, seitenanzahl, abgabedatum, kontrollschlagwoerter, schlagwoerter, schlagwoerter_en, abstract, abstract_en, "final", lehrveranstaltung_id, studiensemester_kurzbz) VALUES
(1, 'Bachelor', 'Auswirkung der Sonneneinstrahlung auf die Gesundheit', 46111, 's46b413', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true), (1, 'Bachelor', 'Auswirkung der Sonneneinstrahlung auf die Gesundheit', 46111, 's46b413', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, 4611, NearestWintersemester(1)),
(2, 'Bachelor', 'Neue Unterrichtsmethoden mit KI', 46111, 's46b414', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true), (2, 'Bachelor', 'Neue Unterrichtsmethoden mit KI', 46111, 's46b414', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, 4611, NearestWintersemester(1)),
(3, 'Bachelor', 'Betrugsbekämpfung bei Anwesenheitskontrolle', 46111, 's46b415', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true), (3, 'Bachelor', 'Betrugsbekämpfung bei Anwesenheitskontrolle', 46111, 's46b415', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, 4611, NearestWintersemester(1)),
(4, 'Bachelor', 'Neuronale Netze', 46111, 's46b416', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true) (4, 'Bachelor', 'Neuronale Netze', 46111, 's46b416', NULL, NULL, NULL, NULL, NULL, NULL, true, NULL, NULL, NULL, NULL, NULL, NULL, '2025-12-12 14:06:10.000', 'anondata', NULL, 3.0000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, true, 4611, NearestWintersemester(1))
; ;
INSERT INTO lehre.tbl_projektbetreuer INSERT INTO lehre.tbl_projektbetreuer
+6 -6
View File
@@ -113,7 +113,7 @@ if($action != null)
} }
$bisarchiv->readFile($meldung, 'xml'); $bisarchiv->readFile($meldung, 'xml');
$bisarchiv->studiengang_kz = $stg; $bisarchiv->studiengang_kz = $stg;
$bisarchiv->studiensemster_kurzbz = $sem; $bisarchiv->studiensemester_kurzbz = $sem;
$bisarchiv->insertvon = $uid; $bisarchiv->insertvon = $uid;
$bisarchiv->typ = $typ; $bisarchiv->typ = $typ;
$result = $bisarchiv->save(); $result = $bisarchiv->save();
@@ -129,11 +129,11 @@ $bisarchiv->getBisData($anzeige);
<title>BIS - Archiv</title> <title>BIS - Archiv</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css"> <link href="../../skin/vilesci.css" rel="stylesheet" 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/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/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>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/> <link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<style type="text/css"> <style type="text/css">
+2 -4
View File
@@ -118,8 +118,7 @@ $qry = "SELECT ma.* FROM
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN public.tbl_studiensemester ON(tbl_projektarbeit.studiensemester_kurzbz = tbl_studiensemester.studiensemester_kurzbz)
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE WHERE
tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
) a ) a
@@ -156,9 +155,8 @@ $qry = "SELECT ma.* FROM
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
tbl_lehreinheit.studiensemester_kurzbz IN(SELECT tbl_projektarbeit.studiensemester_kurzbz IN(SELECT
studiensemester_kurzbz studiensemester_kurzbz
FROM FROM
public.tbl_studiensemester public.tbl_studiensemester
@@ -164,8 +164,7 @@ $qry = "SELECT
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN public.tbl_studiensemester ON(tbl_projektarbeit.studiensemester_kurzbz = tbl_studiensemester.studiensemester_kurzbz)
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE WHERE
tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
) a ) a
@@ -203,9 +202,8 @@ $qry = "SELECT
FROM FROM
lehre.tbl_projektbetreuer lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
tbl_lehreinheit.studiensemester_kurzbz IN(SELECT tbl_projektarbeit.studiensemester_kurzbz IN(SELECT
studiensemester_kurzbz studiensemester_kurzbz
FROM FROM
public.tbl_studiensemester public.tbl_studiensemester
+1 -1
View File
@@ -473,7 +473,7 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr)
/** /**
* Verwendungen ergänzen, wenn Mitarbeiter in Verwaltung/Managment/Wartung (jedenfalls nicht in Lehre) * Verwendungen ergänzen, wenn Mitarbeiter in Verwaltung/Managment/Wartung (jedenfalls nicht in Lehre)
* zugeteilt ist und dennoch lehrt. * zugeteilt ist und dennoch lehrt.
* Die SWS werden sowohl fuer Sommer- als auch Wintersemster ermittelt und jeweils in einer eigenen * Die SWS werden sowohl fuer Sommer- als auch Wintersemester ermittelt und jeweils in einer eigenen
* Verwendung mit dem Verwendungscode 1 ergaenzt. * Verwendung mit dem Verwendungscode 1 ergaenzt.
*/ */
$bisverwendung_beginn_BIS = new DateTime($bisverwendung->beginn_imBISMeldungsJahr); $bisverwendung_beginn_BIS = new DateTime($bisverwendung->beginn_imBISMeldungsJahr);

Some files were not shown because too many files have changed in this diff Show More