mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Merge branch 'master' into feature-25999/C4_ma0594dev
This commit is contained in:
@@ -104,17 +104,16 @@ $config['digitalization_start'] = '2022-07-01';
|
||||
* @var string A string formated as PHP DateTime modifier
|
||||
* @see https://www.php.net/manual/de/datetime.modify.php
|
||||
*/
|
||||
$config['abmeldung_job_deadline_date_modifier'] = '+3 weeks';
|
||||
$config['abmeldung_job_deadline_date_modifier'] = '+2 weeks';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* System User - uid of a user that is allowed to set prestudentstatus
|
||||
* TODO(chris): DEBUG! CHANGE THIS!
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
$config['antrag_job_systemuser'] = 'ma0168';
|
||||
$config['antrag_job_systemuser'] = '';
|
||||
|
||||
|
||||
/**
|
||||
@@ -160,3 +159,11 @@ $config['stgkz_blacklist_unterbrechung'] = [];
|
||||
* @var array An array of tbl_studiengang.studiengang_kz's
|
||||
*/
|
||||
$config['stgkz_blacklist_wiederholung'] = [];
|
||||
|
||||
/**
|
||||
* Blacklisted noten for negative committee exams
|
||||
* noten with this ids won't be seen as negative
|
||||
*
|
||||
* @var array An array of noten ids
|
||||
*/
|
||||
$config['note_blacklist_wiederholung'] = [];
|
||||
|
||||
@@ -0,0 +1,438 @@
|
||||
<?php
|
||||
|
||||
if (! defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
class UHSTAT1 extends FHC_Controller
|
||||
{
|
||||
const BERECHTIGUNG_UHSTAT_VERWALTEN = 'student/uhstat1daten_verwalten';
|
||||
const PERSON_ID_SESSION_INDEX = 'bewerbung/personId';
|
||||
const CODEX_OESTERREICH = 'A';
|
||||
const LOWER_BOUNDARY_YEARS = 160;
|
||||
const UPPER_BOUNDARY_YEARS = 20;
|
||||
|
||||
private $_uid;
|
||||
private $_uhstat1Fields = array();
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// load ci libs
|
||||
$this->load->library('form_validation');
|
||||
|
||||
// load ci helpers
|
||||
$this->load->helper(array('form', 'url'));
|
||||
|
||||
// load libraries
|
||||
$this->load->library('AuthLib');
|
||||
$this->load->library('PermissionLib');
|
||||
|
||||
// load models
|
||||
$this->load->model('codex/Oehbeitrag_model', 'OehbeitragModel');
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$this->load->model('system/Sprache_model', 'SpracheModel');
|
||||
$this->load->model('codex/Abschluss_model', 'AbschlussModel');
|
||||
$this->load->model('codex/Uhstat1daten_model', 'Uhstat1datenModel');
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'ui',
|
||||
'uhstat'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
// set form field information
|
||||
$this->_uhstat1Fields = array(
|
||||
'mutter_geburtsstaat' => array('name' => 'Geburtsstaat Mutter'),
|
||||
'mutter_geburtsjahr' => array('name' => 'Geburtsjahr Mutter'),
|
||||
'mutter_bildungsstaat' => array('name' => 'Bildungsstaat Mutter'),
|
||||
'mutter_bildungmax' => array(
|
||||
'name' => 'Geburtsjahr Mutter',
|
||||
'rules' => array(
|
||||
'callback_bildungsstaat_bildungmax_check[m]' => array(
|
||||
'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung')
|
||||
)
|
||||
)
|
||||
),
|
||||
'vater_geburtsstaat' => array('name' => 'Geburtsstaat Vater'),
|
||||
'vater_geburtsjahr' => array('name' => 'Geburtsjahr Vater'),
|
||||
'vater_bildungsstaat' => array('name' => 'Bildungsstaat Vater'),
|
||||
'vater_bildungmax' => array('name' => 'Geburtsjahr Vater'),
|
||||
'vater_bildungmax' => array(
|
||||
'name' => 'Geburtsjahr Vater',
|
||||
'rules' => array(
|
||||
'callback_bildungsstaat_bildungmax_check[v]' => array(
|
||||
'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung')
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
public function index()
|
||||
{
|
||||
$formMetaData = $this->_getFormMetaData();
|
||||
|
||||
if (isError($formMetaData)) show_error(getError($formMetaData));
|
||||
|
||||
if (!hasData($formMetaData)) show_error("No form meta data could be loaded");
|
||||
|
||||
$uhstatData = $this->_getUHSTAT1Data();
|
||||
|
||||
if (isError($uhstatData)) show_error(getError($uhstatData));
|
||||
|
||||
$this->load->view("codex/uhstat1.php", array(
|
||||
'formMetaData' => getData($formMetaData),
|
||||
'uhstatData' => getData($uhstatData)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add or update UHSTAT1 data
|
||||
*/
|
||||
public function saveUHSTAT1Data()
|
||||
{
|
||||
$saved = false;
|
||||
|
||||
$person_id = $this->_getValidPersonId('sui');
|
||||
|
||||
$this->form_validation->set_error_delimiters('<span class="text-danger">', '</span>');
|
||||
|
||||
foreach ($this->_uhstat1Fields as $field => $params)
|
||||
{
|
||||
// all fields are required
|
||||
$ruleNames = 'required';
|
||||
$ruleMessages = array('required' => $this->p->t('uhstat', 'angabeFehlt'));
|
||||
|
||||
// add additional rules
|
||||
if (isset($params['rules']))
|
||||
{
|
||||
foreach ($params['rules'] as $ruleName => $ruleMessage)
|
||||
{
|
||||
$ruleNames .= '|'.$ruleName;
|
||||
$ruleMessages = array_merge($ruleMessages, $ruleMessage);
|
||||
}
|
||||
}
|
||||
|
||||
$this->form_validation->set_rules(
|
||||
$field,
|
||||
$params['name'],
|
||||
$ruleNames,
|
||||
$ruleMessages
|
||||
);
|
||||
}
|
||||
|
||||
$uhstat1datenRes = null;
|
||||
if ($this->form_validation->run()) // if valid
|
||||
{
|
||||
// get post fields
|
||||
$uhstatData = array();
|
||||
foreach ($this->_uhstat1Fields as $field => $params)
|
||||
{
|
||||
$uhstatData[$field] = $this->input->post($field);
|
||||
}
|
||||
|
||||
// check if entry already exists
|
||||
$uhstat1datenloadRes = $this->Uhstat1datenModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
// if yes, update
|
||||
if (hasData($uhstat1datenloadRes))
|
||||
{
|
||||
$uhstatData['updateamum'] = 'NOW()';
|
||||
$uhstatData['updatevon'] = $this->_uid;
|
||||
$uhstat1datenRes = $this->Uhstat1datenModel->update(
|
||||
array('person_id' => $person_id),
|
||||
$uhstatData
|
||||
);
|
||||
}
|
||||
else // otherwise insert
|
||||
{
|
||||
$uhstatData['insertamum'] = 'NOW()';
|
||||
$uhstatData['insertvon'] = $this->_uid;
|
||||
$uhstat1datenRes = $this->Uhstat1datenModel->insert(
|
||||
array_merge($uhstatData, array('person_id' => $person_id))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$formMetaData = $this->_getFormMetaData();
|
||||
|
||||
if (isError($formMetaData)) show_error(getError($formMetaData));
|
||||
|
||||
if (!hasData($formMetaData)) show_error("No form meta data could be loaded");
|
||||
|
||||
$successMessage = '';
|
||||
$errorMessage = '';
|
||||
// pass success/error messages to view
|
||||
if (isset($uhstat1datenRes))
|
||||
{
|
||||
if (isSuccess($uhstat1datenRes))
|
||||
{
|
||||
$successMessage = $this->p->t('uhstat', 'erfolgreichGespeichert');
|
||||
$saved = true;
|
||||
}
|
||||
else
|
||||
$errorMessage = $this->p->t('uhstat', 'fehlerBeimSpeichern');
|
||||
}
|
||||
|
||||
// load view with form data
|
||||
$this->load->view("codex/uhstat1.php", array(
|
||||
'formMetaData' => getData($formMetaData),
|
||||
'saved' => $saved,
|
||||
'successMessage' => $successMessage,
|
||||
'errorMessage' => $errorMessage
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check callback for Bildungsstaat - if Bildungsstaat is Austria, a highest education should be in Austria.
|
||||
* @param $bildungmax
|
||||
* @param $bildungsstaat_typ - mother (m) or father (v)
|
||||
* @return bool true if valid, false otherwise
|
||||
*/
|
||||
public function bildungsstaat_bildungmax_check($bildungmax, $bildungsstaat_typ)
|
||||
{
|
||||
// valid if no type passed
|
||||
if (!isset($bildungsstaat_typ) || !isset($bildungmax)) return true;
|
||||
|
||||
// get correct input
|
||||
if ($bildungsstaat_typ == 'm') // mutter
|
||||
$bildungsstaat = $this->input->post('mutter_bildungsstaat');
|
||||
elseif ($bildungsstaat_typ == 'v') // vater
|
||||
$bildungsstaat = $this->input->post('vater_bildungsstaat');
|
||||
else
|
||||
return true;
|
||||
|
||||
if (!isset($bildungsstaat)) return true;
|
||||
|
||||
// find out if abschluss is in Austria
|
||||
$this->AbschlussModel->addSelect("in_oesterreich");
|
||||
$abschlussRes = $this->AbschlussModel->load($bildungmax);
|
||||
|
||||
if (hasData($abschlussRes))
|
||||
{
|
||||
$in_oesterreich = getData($abschlussRes)[0]->in_oesterreich;
|
||||
// invalid if abschluss in Austria, but not Bildungsstaat, or abschluss not in Austria, but Bildungsstaat in Austria
|
||||
return ($in_oesterreich && $bildungsstaat == self::CODEX_OESTERREICH) || (!$in_oesterreich && $bildungsstaat != self::CODEX_OESTERREICH);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes UHSTAT1 entry.
|
||||
*/
|
||||
public function deleteUHSTAT1Data()
|
||||
{
|
||||
$saved = false;
|
||||
|
||||
// uhstat data can only be deleted with permission
|
||||
if (!$this->_checkPermission('suid')) show_error('no permission');
|
||||
|
||||
$person_id = $this->_getValidPersonId('suid');
|
||||
|
||||
$uhstat1datenRes = $this->Uhstat1datenModel->delete(
|
||||
array('person_id' => $person_id)
|
||||
);
|
||||
|
||||
$formMetaData = $this->_getFormMetaData();
|
||||
|
||||
if (isError($formMetaData)) show_error(getError($formMetaData));
|
||||
|
||||
if (!hasData($formMetaData)) show_error("No form meta data could be loaded");
|
||||
|
||||
$successMessage = '';
|
||||
$errorMessage = '';
|
||||
// pass success/error messages to view
|
||||
if (isset($uhstat1datenRes))
|
||||
{
|
||||
if (isSuccess($uhstat1datenRes))
|
||||
{
|
||||
$successMessage = $this->p->t('uhstat', 'erfolgreichGeloescht');
|
||||
}
|
||||
else
|
||||
$errorMessage = $this->p->t('uhstat', 'fehlerBeimLoeschen');
|
||||
}
|
||||
|
||||
// load view with form data
|
||||
$this->load->view("codex/uhstat1.php", array(
|
||||
'formMetaData' => getData($formMetaData),
|
||||
'successMessage' => $successMessage,
|
||||
'errorMessage' => $errorMessage
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Gets initial data needed to display UHSTAT1 form.
|
||||
*/
|
||||
private function _getFormMetaData()
|
||||
{
|
||||
$person_id = $this->_getValidPersonId('s');
|
||||
|
||||
// read only display param
|
||||
$readOnly = $this->input->get('readOnly');
|
||||
|
||||
// depending on permissions, editing or deleting is possible
|
||||
$editPermission = $this->_checkPermission('sui');
|
||||
$deletePermission = $this->_checkPermission('suid');
|
||||
|
||||
$languageIdx = $this->_getLanguageIndex();
|
||||
|
||||
$formMetaData = array(
|
||||
'nation' => array(),
|
||||
'abschluss_oesterreich' => array(),
|
||||
'abschluss_nicht_oesterreich' => array(),
|
||||
'jahre' => array(),
|
||||
'person_id' => $person_id,
|
||||
'editPermission' => $editPermission,
|
||||
'deletePermission' => $deletePermission,
|
||||
'readOnly' => $readOnly
|
||||
);
|
||||
|
||||
// get person data
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
$this->PersonModel->addSelect("vorname, nachname");
|
||||
$personRes = $this->PersonModel->load($person_id);
|
||||
|
||||
if (isError($personRes)) return $personRes;
|
||||
|
||||
if (hasData($personRes))
|
||||
{
|
||||
$person = getData($personRes)[0];
|
||||
$formMetaData['vorname'] = $person->vorname;
|
||||
$formMetaData['nachname'] = $person->nachname;
|
||||
}
|
||||
|
||||
$nationTextFieldName = $languageIdx == 1 ? 'langtext' : 'engltext';
|
||||
|
||||
// get nation list
|
||||
$this->load->model('codex/Nation_model', 'NationModel');
|
||||
|
||||
$this->NationModel->addSelect("nation_code, $nationTextFieldName AS nation_text");
|
||||
$this->NationModel->addOrder("nation_text");
|
||||
$nationRes = $this->NationModel->loadWhere('sperre IS NULL OR sperre = FALSE');
|
||||
|
||||
if (isError($nationRes)) return $nationRes;
|
||||
|
||||
if (hasData($nationRes))
|
||||
{
|
||||
$nations = getData($nationRes);
|
||||
|
||||
// put austria in beginning of selection
|
||||
foreach ($nations as $nation)
|
||||
{
|
||||
if ($nation->nation_code == self::CODEX_OESTERREICH) array_unshift($nations, $nation);
|
||||
}
|
||||
|
||||
$formMetaData['nation'] = $nations;
|
||||
}
|
||||
|
||||
// get abschluss list
|
||||
$abschlussRes = $this->AbschlussModel->getActiveAbschluesse($languageIdx);
|
||||
|
||||
if (isError($abschlussRes)) return $abschlussRes;
|
||||
|
||||
$abschlussData = getData($abschlussRes);
|
||||
|
||||
if (hasData($abschlussRes))
|
||||
{
|
||||
foreach (getData($abschlussRes) as $abschluss)
|
||||
{
|
||||
if ($abschluss->in_oesterreich === true)
|
||||
$formMetaData['abschluss_oesterreich'][] = $abschluss;
|
||||
elseif ($abschluss->in_oesterreich === false)
|
||||
$formMetaData['abschluss_nicht_oesterreich'][] = $abschluss;
|
||||
else
|
||||
{
|
||||
$formMetaData['abschluss_oesterreich'][] = $abschluss;
|
||||
$formMetaData['abschluss_nicht_oesterreich'][] = $abschluss;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// get realistic birth years, dated back from current year
|
||||
$currYear = date("Y");
|
||||
$formMetaData['jahre'] = range($currYear - self::UPPER_BOUNDARY_YEARS, $currYear - self::LOWER_BOUNDARY_YEARS);
|
||||
|
||||
return success($formMetaData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets initial data needed to display UHSTAT1 form.
|
||||
*/
|
||||
private function _getUHSTAT1Data()
|
||||
{
|
||||
$person_id = $this->_getValidPersonId('s');
|
||||
|
||||
$this->Uhstat1datenModel->addSelect(
|
||||
implode(', ', array_keys($this->_uhstat1Fields))
|
||||
);
|
||||
$uhstatRes = $this->Uhstat1datenModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
if (isError($uhstatRes)) return $uhstatRes;
|
||||
|
||||
return success(hasData($uhstatRes) ? getData($uhstatRes)[0] : null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets language index of currently logged in user.
|
||||
* @return int (the index, start at 1)
|
||||
*/
|
||||
private function _getLanguageIndex()
|
||||
{
|
||||
$idx = 1;
|
||||
$this->SpracheModel->addSelect('index');
|
||||
$langRes = $this->SpracheModel->loadWhere(array('sprache' => getUserLanguage()));
|
||||
|
||||
if (hasData($langRes))
|
||||
{
|
||||
$idx = getData($langRes)[0]->index;
|
||||
}
|
||||
|
||||
return $idx;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Id of person having permissions to manage UHSTAT1 data.
|
||||
* Can be passed as parameter or be in session.
|
||||
* @return int person_id
|
||||
*/
|
||||
private function _getValidPersonId($berechtigungsArt)
|
||||
{
|
||||
// if coming from bewerbungstool - person id is in session (person must be logged in bewerbungstool)
|
||||
if (isset($_SESSION[self::PERSON_ID_SESSION_INDEX]) && is_numeric($_SESSION[self::PERSON_ID_SESSION_INDEX]))
|
||||
return $_SESSION[self::PERSON_ID_SESSION_INDEX];
|
||||
|
||||
// if person id passed directly...
|
||||
$person_id = $this->input->post('person_id');
|
||||
if (!isset($person_id)) $person_id = $this->input->get('person_id');
|
||||
|
||||
if (!isset($person_id) || !is_numeric($person_id)) show_error("invalid person id");
|
||||
|
||||
// ...check if there is a permission for editing UHSTAT1 data
|
||||
if ($this->_checkPermission($berechtigungsArt)) return $person_id;
|
||||
|
||||
show_error("No permission");
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if logged user has the UHSTAT management permission.
|
||||
* @param $art - type of permission, e.g. suid for full permissions
|
||||
* @return bool
|
||||
*/
|
||||
private function _checkPermission($art)
|
||||
{
|
||||
return $this->permissionlib->isBerechtigt(self::BERECHTIGUNG_UHSTAT_VERWALTEN, $art);
|
||||
}
|
||||
}
|
||||
@@ -101,7 +101,10 @@ class Leitung extends FHC_Controller
|
||||
$this->output->set_status_header(500);
|
||||
return $this->outputJson('Internal Server Error');
|
||||
}
|
||||
$antraege = getData($result);
|
||||
if(hasData($result))
|
||||
{
|
||||
$antraege = getData($result);
|
||||
}
|
||||
}
|
||||
|
||||
$this->outputJson($antraege);
|
||||
|
||||
@@ -27,7 +27,8 @@ class Unterbrechung extends FHC_Controller
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases([
|
||||
'studierendenantrag'
|
||||
'studierendenantrag',
|
||||
'ui'
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -85,7 +86,7 @@ class Unterbrechung extends FHC_Controller
|
||||
|
||||
$data = getData($result);
|
||||
|
||||
$data->studiensemester = $this->antraglib->getSemesterForUnterbrechung($data->studiengang_kz, $data->studiensemester_kurzbz, $data->semester);
|
||||
$data->studiensemester = $this->antraglib->getSemesterForUnterbrechung($data->studiensemester_kurzbz);
|
||||
|
||||
$this->outputJsonSuccess($data);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ class Wiederholung extends FHC_Controller
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases([
|
||||
'global',
|
||||
'studierendenantrag'
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -26,6 +26,9 @@ class Filter extends FHC_Controller
|
||||
// Loads authentication library and starts authentication
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
// Loads the FiltersModel
|
||||
$this->load->model('system/Filters_model', 'FiltersModel');
|
||||
|
||||
// Loads the FilterCmptLib with HTTP GET/POST parameters
|
||||
$this->_startFilterCmptLib();
|
||||
}
|
||||
|
||||
@@ -37,6 +37,9 @@ class AnrechnungJob extends JOB_Controller
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
|
||||
$this->load->library('AnrechnungLib');
|
||||
|
||||
// Load configs
|
||||
$this->load->config('anrechnung');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -213,7 +216,7 @@ class AnrechnungJob extends JOB_Controller
|
||||
'datentabelle' => $anrechnungen_table,
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
|
||||
|
||||
// Send mail
|
||||
sendSanchoMail(
|
||||
'AnrechnungAntragStellen',
|
||||
@@ -227,6 +230,82 @@ class AnrechnungJob extends JOB_Controller
|
||||
$this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.');
|
||||
}
|
||||
|
||||
// Send Sancho mail to LV-Leitung (fallback Lectors) that were requested for recommendation yesterday.
|
||||
public function sendMailRecommendationRequests(){
|
||||
|
||||
$this->logInfo('Start AnrechnungJob sendMailRecommendationRequests to inform lecturers about yesterdays requests for recommendation.');
|
||||
|
||||
// Get Anrechnungen, für die gestern eine Empfehlung angefragt worden ist
|
||||
$this->AnrechnungModel->addSelect('astat.anrechnung_id, astat.datum, astat.insertamum');
|
||||
$this->AnrechnungModel->addDistinct('astat.anrechnung_id');
|
||||
$this->AnrechnungModel->addJoin('lehre.tbl_anrechnung_anrechnungstatus astat', 'anrechnung_id');
|
||||
|
||||
$result = $this->AnrechnungModel->loadWhere('
|
||||
studiensemester_kurzbz = (SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende)
|
||||
AND genehmigt_von IS NULL
|
||||
AND empfehlung_anrechnung IS NULL
|
||||
AND status_kurzbz = '. $this->db->escape(self::ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR) .' -- in Bearbeitung durch Lektor
|
||||
AND NOW()::date = (astat.datum + interval \'1 day\') -- nur gestrige Empfehlungsanfrage
|
||||
ORDER BY astat.anrechnung_id, astat.datum DESC, astat.insertamum DESC -- nur letzten status dabei prüfen
|
||||
');
|
||||
|
||||
// Exit, wenn es gestern keine Empfehlungsanfragen gab
|
||||
if (!hasData($result))
|
||||
{
|
||||
$this->logInfo('End AnrechnungJob sendMailRecommendationRequests, because no recommendations were requested yesterday.');
|
||||
exit;
|
||||
}
|
||||
|
||||
$anrechnung_id_arr = array_column(getData($result), 'anrechnung_id');
|
||||
|
||||
$arr_lvLector_arr = array();
|
||||
foreach ($anrechnung_id_arr as $anrechnung_id)
|
||||
{
|
||||
// Get full name of Fachbereichsleitung or LV Leitung.
|
||||
if($this->config->item('fbl') === TRUE)
|
||||
{
|
||||
$arr_lvLector_arr[] = $this->anrechnunglib->getLeitungOfLvOe($anrechnung_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$arr_lvLector_arr[] = $this->anrechnunglib->getLectors($anrechnung_id); // Returns LV Leitung. If not present, then all lectors of LV.
|
||||
}
|
||||
}
|
||||
|
||||
// Unique lector array to send only one mail per lector
|
||||
$arr_lvLector_arr = array_unique($arr_lvLector_arr, SORT_REGULAR);
|
||||
|
||||
// Link to 'Anrechnungen prüfen' dashboard
|
||||
$url =
|
||||
CIS_ROOT. 'cis/index.php?menu='.
|
||||
CIS_ROOT. 'cis/menu.php?content_id=&content='.
|
||||
CIS_ROOT. index_page(). self::REVIEW_ANRECHNUNG_URI;
|
||||
|
||||
foreach ($arr_lvLector_arr as $lvLector_arr)
|
||||
{
|
||||
foreach ($lvLector_arr as $lector)
|
||||
{
|
||||
// Prepare mail content
|
||||
$fields = array(
|
||||
'vorname' => $lector->vorname,
|
||||
'stgl_name' => 'Die Studiengangsleitung',
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
|
||||
// Send mail
|
||||
sendSanchoMail(
|
||||
'AnrechnungEmpfehlungAnfordern',
|
||||
$fields,
|
||||
$lector->uid. '@'. DOMAIN,
|
||||
'Deine Empfehlung wird benötigt zur Anerkennung nachgewiesener Kenntnisse'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->logInfo('SUCCEDED AnrechnungJob sendMailRecommendationRequests');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Send Sancho mail to students, whose Anrechnungen were approved 24 hours ago.
|
||||
*/
|
||||
@@ -308,7 +387,7 @@ class AnrechnungJob extends JOB_Controller
|
||||
|
||||
$db = new DB_Model();
|
||||
$result = $db->execReadOnlyQuery($qry);
|
||||
|
||||
|
||||
// Exit if there are no rejected Anrechnungen
|
||||
if (!hasData($result))
|
||||
{
|
||||
@@ -361,9 +440,9 @@ html;
|
||||
|
||||
$result = $this->AnrechnungModel->loadWhere('
|
||||
studiensemester_kurzbz = (
|
||||
SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende)
|
||||
SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende
|
||||
)
|
||||
AND genehmigt_von IS NULL
|
||||
AND genehmigt_von IS NULL
|
||||
AND empfehlung_anrechnung IS NULL
|
||||
AND status_kurzbz = '. $this->db->escape(self::ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR) .' -- in Bearbeitung durch Lektor
|
||||
AND NOW()::date = (astat.datum + interval \'1 week\') -- eine Woche nach Empfehlungsanfrage
|
||||
@@ -376,7 +455,7 @@ html;
|
||||
$this->logInfo('End AnrechnungJob sendMailRemindRecommendation, because no recommendations to be done.');
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$anrechnung_id_arr = array_column(getData($result), 'anrechnung_id');
|
||||
|
||||
$arr_lvLector_arr = array();
|
||||
@@ -435,7 +514,7 @@ html;
|
||||
'vorname' => $stgl->vorname
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
return $stglMailAdress_arr;
|
||||
}
|
||||
// If not available, get assistance mail address
|
||||
|
||||
@@ -25,6 +25,8 @@ class AntragJob extends JOB_Controller
|
||||
$this->load->model('education/Pruefung_model', 'PruefungModel');
|
||||
$this->load->model('person/Kontakt_model', 'KontaktModel');
|
||||
$this->load->model('crm/Student_model', 'StudentModel');
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,7 +96,7 @@ class AntragJob extends JOB_Controller
|
||||
}
|
||||
$stgLeitungen[$leitung->uid]['stgs'][] = $antrag->studiengang_kz;
|
||||
|
||||
$result = $this->StudiengangModel->load($antrag->studiengang_kz);
|
||||
$result = $this->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
|
||||
if (isError($result))
|
||||
{
|
||||
$this->logError(getError($result));
|
||||
@@ -134,7 +136,9 @@ class AntragJob extends JOB_Controller
|
||||
foreach ($stgLeitungen as $leitung)
|
||||
{
|
||||
$data = [
|
||||
'name' => trim($leitung['Details']->vorname . ' ' . $leitung['Details']->nachname)
|
||||
'name' => trim($leitung['Details']->vorname . ' ' . $leitung['Details']->nachname),
|
||||
'vorname' => $leitung['Details']->vorname,
|
||||
'nachname' => $leitung['Details']->nachname
|
||||
];
|
||||
|
||||
foreach ($languages as $lang) {
|
||||
@@ -161,9 +165,14 @@ class AntragJob extends JOB_Controller
|
||||
}
|
||||
|
||||
$data['table'] = $data['table_' . DEFAULT_LANGUAGE];
|
||||
$data['leitungLink'] = APP_ROOT. 'index.ci.php/lehre/Studierendenantrag/leitung';
|
||||
|
||||
//Mail an Stgl und Assistenz
|
||||
$to = $leitung['Details']->uid . '@' . DOMAIN;
|
||||
$cc = $leitung['Details']->email;
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
if (sendSanchoMail("Sancho_Mail_Antrag_Stgl", $data, $leitung['Details']->uid . '@' . DOMAIN, 'Anträge - Aktion(en) erforderlich'))
|
||||
if (sendSanchoMail("Sancho_Mail_Antrag_Stgl", $data, $to, 'Anträge - Aktion(en) erforderlich', DEFAULT_SANCHO_HEADER_IMG, DEFAULT_SANCHO_FOOTER_IMG, '', $cc))
|
||||
$count++;
|
||||
}
|
||||
|
||||
@@ -205,12 +214,30 @@ class AntragJob extends JOB_Controller
|
||||
$count = 0;
|
||||
foreach ($antraege as $antrag)
|
||||
{
|
||||
$res = $this->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
|
||||
$stg = '';
|
||||
$orgform = '';
|
||||
if (hasData($res)) {
|
||||
$studiengang = current(getData($res));
|
||||
$stg = $studiengang->bezeichnung;
|
||||
$orgform = $studiengang->orgform_kurzbz;
|
||||
}
|
||||
|
||||
$datum = new DateTime($antrag->datum_wiedereinstieg);
|
||||
$data = array(
|
||||
'prestudent' => $antrag->prestudent_id,
|
||||
'name' => trim($antrag->vorname . ' '. $antrag->nachname),
|
||||
'datum_wiedereinstieg' => $datum->format('d.m.Y')
|
||||
'datum_wiedereinstieg' => $datum->format('d.m.Y'),
|
||||
'vorname' => $antrag->vorname,
|
||||
'nachname' => $antrag->nachname,
|
||||
'Orgform' => $orgform,
|
||||
'stg' => $stg
|
||||
);
|
||||
$result = $this->StudentModel->loadWhere(['prestudent_id'=> $antrag->prestudent_id]);
|
||||
if (hasData($result)) {
|
||||
$student = current(getData($result));
|
||||
$data['UID'] = $student->student_uid;
|
||||
}
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
if(sendSanchoMail('Sancho_Mail_Antrag_U_Reminder', $data, $antrag->email, 'Reminder: Unterbrechung Wiedereinstieg'))
|
||||
@@ -322,6 +349,9 @@ class AntragJob extends JOB_Controller
|
||||
$this->StudierendenantragModel->addSelect('prestudent_id');
|
||||
$this->StudierendenantragModel->addSelect('studiensemester_kurzbz');
|
||||
$this->StudierendenantragModel->addSelect('s.insertamum');
|
||||
$this->StudierendenantragModel->addSelect('s.insertvon');
|
||||
|
||||
$this->StudierendenantragModel->db->where_in('public.get_rolle_prestudent(prestudent_id, studiensemester_kurzbz)', $this->config->item('antrag_prestudentstatus_whitelist'));
|
||||
|
||||
$result = $this->StudierendenantragModel->getWithLastStatusWhere([
|
||||
'typ' => Studierendenantrag_model::TYP_ABMELDUNG_STGL,
|
||||
@@ -343,16 +373,50 @@ class AntragJob extends JOB_Controller
|
||||
$result = $this->prestudentlib->setAbbrecher(
|
||||
$antrag->prestudent_id,
|
||||
$antrag->studiensemester_kurzbz,
|
||||
$insertvon,
|
||||
'AntragJob',
|
||||
'abbrecherStgl',
|
||||
$antrag->insertamum
|
||||
$antrag->insertamum,
|
||||
null,
|
||||
$antrag->insertvon ?: $insertvon
|
||||
);
|
||||
if (isError($result))
|
||||
$this->logError(getError($result));
|
||||
else
|
||||
{
|
||||
$count++;
|
||||
$result = $this->PrestudentModel->load($antrag->prestudent_id);
|
||||
if(!hasData($result)) {
|
||||
$this->logWarning('No Prestudent found');
|
||||
continue;
|
||||
}
|
||||
$prestudent = current(getData($result));
|
||||
$result = $this->StudiengangModel->load($prestudent->studiengang_kz);
|
||||
if(!hasData($result)) {
|
||||
$this->logWarning('No Studiengang found');
|
||||
continue;
|
||||
}
|
||||
$studiengang = current(getData($result));
|
||||
$result = $this->PersonModel->loadPrestudent($antrag->prestudent_id);
|
||||
if(!hasData($result))
|
||||
{
|
||||
$this->logWarning('No Person found');
|
||||
continue;
|
||||
}
|
||||
$person = current(getData($result));
|
||||
$email = $studiengang->email;
|
||||
$dataMail = array(
|
||||
'prestudent' => $antrag->prestudent_id,
|
||||
'studiensemester' => $antrag->studiensemester_kurzbz,
|
||||
'name' => trim($person->vorname . ' '. $person->nachname),
|
||||
);
|
||||
|
||||
if(!sendSanchoMail('Sancho_Mail_Antrag_A_Assist', $dataMail, $email, 'Einspruchsfrist abgelaufen'))
|
||||
{
|
||||
$this->logWarning("Failed to send Notification to " . $email);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->logInfo($count . " Students set to Abbrecher");
|
||||
$this->logInfo($count . "/" . count($antraege) . " Students set to Abbrecher");
|
||||
}
|
||||
$this->logInfo('Ende Job handleAbmeldungenStglDeadline');
|
||||
}
|
||||
@@ -369,40 +433,56 @@ class AntragJob extends JOB_Controller
|
||||
$modifier_request_2 = $this->config->item('wiederholung_job_request_2_date_modifier');
|
||||
$modifier_deadline = $this->config->item('wiederholung_job_deadline_date_modifier');
|
||||
|
||||
if ($modifier_deadline)
|
||||
{
|
||||
$digi_start = $this->config->item('digitalization_start');
|
||||
if ($digi_start) {
|
||||
try {
|
||||
$digi_start = new DateTime($digi_start);
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($modifier_deadline) {
|
||||
$dateDeadline = new DateTime();
|
||||
$dateDeadline->sub(DateInterval::createFromDateString($modifier_deadline));
|
||||
|
||||
if ($digi_start)
|
||||
$dateDeadline = max($digi_start, $dateDeadline);
|
||||
} else {
|
||||
$dateDeadline = $digi_start ?: null;
|
||||
}
|
||||
else
|
||||
$dateDeadline = null;
|
||||
|
||||
//first request
|
||||
if ($modifier_request_1)
|
||||
$this->sendReminder(
|
||||
'Request1',
|
||||
null,
|
||||
Studierendenantragstatus_model::STATUS_REQUESTSENT_1,
|
||||
$dateDeadline,
|
||||
$modifier_request_1,
|
||||
$modifier_deadline,
|
||||
'Aufforderung: Bekanntgabe Wiederholung'
|
||||
);
|
||||
else
|
||||
if ($modifier_request_1) {
|
||||
$dateStichtag = new DateTime();
|
||||
$dateStichtag->sub(DateInterval::createFromDateString($modifier_request_1));
|
||||
if (!$dateDeadline || $dateStichtag > $dateDeadline)
|
||||
$this->sendReminder(
|
||||
'Request1',
|
||||
null,
|
||||
Studierendenantragstatus_model::STATUS_REQUESTSENT_1,
|
||||
$dateDeadline,
|
||||
$dateStichtag,
|
||||
$modifier_deadline,
|
||||
'Aufforderung: Bekanntgabe Wiederholung'
|
||||
);
|
||||
} else
|
||||
$this->logError('Config "wiederholung_job_request_1_date_modifier" nicht gesetzt');
|
||||
|
||||
//second request
|
||||
if ($modifier_request_2)
|
||||
$this->sendReminder(
|
||||
'Request2',
|
||||
Studierendenantragstatus_model::STATUS_REQUESTSENT_1,
|
||||
Studierendenantragstatus_model::STATUS_REQUESTSENT_2,
|
||||
$dateDeadline,
|
||||
$modifier_request_2,
|
||||
$modifier_deadline,
|
||||
'Reminder Aufforderung: Bekanntgabe Wiederholung'
|
||||
);
|
||||
else
|
||||
if ($modifier_request_2) {
|
||||
$dateStichtag = new DateTime();
|
||||
$dateStichtag->sub(DateInterval::createFromDateString($modifier_request_2));
|
||||
if (!$dateDeadline || $dateStichtag > $dateDeadline)
|
||||
$this->sendReminder(
|
||||
'Request2',
|
||||
Studierendenantragstatus_model::STATUS_REQUESTSENT_1,
|
||||
Studierendenantragstatus_model::STATUS_REQUESTSENT_2,
|
||||
$dateDeadline,
|
||||
$dateStichtag,
|
||||
$modifier_deadline,
|
||||
'Reminder Aufforderung: Bekanntgabe Wiederholung'
|
||||
);
|
||||
} else
|
||||
$this->logError('Config "wiederholung_job_request_2_date_modifier" nicht gesetzt');
|
||||
|
||||
$this->logInfo('Ende Job sendAufforderungWiederholer');
|
||||
@@ -422,14 +502,11 @@ class AntragJob extends JOB_Controller
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function sendReminder($name, $status_from, $status_to, $deadline, $date_modifier, $modifier_deadline, $subject)
|
||||
protected function sendReminder($name, $status_from, $status_to, $deadline, $date_stichtag, $modifier_deadline, $subject)
|
||||
{
|
||||
$this->logInfo('Start Job sendAufforderungWiederholer ' . $name);
|
||||
|
||||
$dateStichtag = new DateTime();
|
||||
$dateStichtag->sub(DateInterval::createFromDateString($date_modifier));
|
||||
|
||||
$result = $this->PruefungModel->getAllPrestudentsWhereCommitteeExamFailed($status_from, $dateStichtag, $deadline);
|
||||
$result = $this->PruefungModel->getAllPrestudentsWhereCommitteeExamFailed($status_from, $date_stichtag, $deadline);
|
||||
|
||||
if(isError($result))
|
||||
{
|
||||
@@ -454,18 +531,42 @@ class AntragJob extends JOB_Controller
|
||||
$fristende = new DateTime($prestudent->datum);
|
||||
$fristende->add(DateInterval::createFromDateString($modifier_deadline));
|
||||
|
||||
$datum_kp = new DateTime($prestudent->datum);
|
||||
|
||||
$result = $this->StudiensemesterModel->getNextFrom($prestudent->studiensemester_kurzbz);
|
||||
$next_sem = "";
|
||||
$sem_after_next_sem = "";
|
||||
if (hasData($result)) {
|
||||
$next_sem = current(getData($result))->studiensemester_kurzbz;
|
||||
$result = $this->StudiensemesterModel->getNextFrom($next_sem);
|
||||
if (hasData($result)) {
|
||||
$sem_after_next_sem = current(getData($result))->studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$result = $this->PrestudentstatusModel->loadLastWithStgDetails($prestudent->prestudent_id, $prestudent->studiensemester_kurzbz);
|
||||
if (hasData($result)) {
|
||||
$ausbildungssemester = current(getData($result))->semester;
|
||||
}
|
||||
|
||||
$dataMail = array(
|
||||
'name'=> trim($prestudent->vorname . ' '. $prestudent->nachname),
|
||||
'vorname' => $prestudent->vorname,
|
||||
'nachname' => $prestudent->nachname,
|
||||
'pers_kz'=> $prestudent->matrikelnr,
|
||||
'studiengang' => $prestudent->bezeichnung,
|
||||
'stg' => $prestudent->bezeichnung,
|
||||
'lvbezeichnung' => $prestudent->lvbezeichnung,
|
||||
'datum_kp' => $prestudent->datum,
|
||||
'datum_kp' => $datum_kp->format('d.m.Y'),
|
||||
'studiensemester'=> $prestudent->studiensemester_kurzbz,
|
||||
'orgform'=> $prestudent->orgform,
|
||||
'Orgform'=> $prestudent->orgform,
|
||||
'prestudent_id' => $prestudent->prestudent_id,
|
||||
'url' => $url,
|
||||
'urlCIS' => $urlCIS,
|
||||
'fristablauf' => $fristende->format('d.m.Y')
|
||||
'fristablauf' => $fristende->format('d.m.Y'),
|
||||
'pre_wiederholer_sem' => $next_sem,
|
||||
'wiederholer_sem' => $sem_after_next_sem,
|
||||
'sem' => $ausbildungssemester
|
||||
);
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
|
||||
@@ -3,6 +3,9 @@ if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class ReihungstestJob extends JOB_Controller
|
||||
{
|
||||
|
||||
const LAST_DAYS_PRESTUDENTSTATUS = 5;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@@ -464,7 +467,7 @@ class ReihungstestJob extends JOB_Controller
|
||||
$this->PrestudentstatusModel->addJoin('public.tbl_person', 'person_id');
|
||||
|
||||
$yesterdays_applicants_arr = $this->PrestudentstatusModel->loadWhere('
|
||||
status_kurzbz = \'Interessent\' AND
|
||||
status_kurzbz IN (\'Interessent\', \'Bewerber\') AND
|
||||
typ = \'b\' AND
|
||||
bestaetigtam = current_date - 1
|
||||
');
|
||||
@@ -826,7 +829,7 @@ class ReihungstestJob extends JOB_Controller
|
||||
AND tbl_studiengang.typ IN ('b', 'm')
|
||||
)
|
||||
SELECT * FROM prst
|
||||
WHERE prestudenstatus_datum >= (SELECT CURRENT_DATE - 1)
|
||||
WHERE prestudenstatus_datum >= (SELECT CURRENT_DATE - ". self::LAST_DAYS_PRESTUDENTSTATUS .")
|
||||
AND (studiengang_typ = 'b' OR (studiengang_typ = 'm' AND EXISTS (SELECT 1 /* Master Studiengänge berücksichtigen wenn auch Bachelor im gleichen Semester */
|
||||
FROM prst prstb
|
||||
WHERE studiengang_typ = 'b'
|
||||
@@ -868,7 +871,8 @@ class ReihungstestJob extends JOB_Controller
|
||||
tbl_person.nachname,
|
||||
tbl_person.vorname,
|
||||
tbl_prestudent.*,
|
||||
tbl_studiengang.typ AS studiengang_typ
|
||||
tbl_studiengang.typ AS studiengang_typ,
|
||||
tbl_prestudentstatus.datum
|
||||
FROM PUBLIC.tbl_person
|
||||
JOIN PUBLIC.tbl_prestudent USING (person_id)
|
||||
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
|
||||
@@ -901,7 +905,7 @@ class ReihungstestJob extends JOB_Controller
|
||||
$mailArray[$rowNiedrPrios->studiengang_kz][$rowNiedrPrios->orgform_kurzbz]['AufnahmeHoeherePrio'][]
|
||||
= $rowNiedrPrios->nachname.' '.$rowNiedrPrios->vorname.' ('.$rowNiedrPrios->prestudent_id.')';
|
||||
}
|
||||
elseif ($rowNiedrPrios->laststatus == 'Bewerber')
|
||||
elseif ($rowNiedrPrios->laststatus == 'Bewerber' && $row_ps->prestudenstatus_datum > $rowNiedrPrios->datum)
|
||||
{
|
||||
// Abgewiesenen-Status mit Statusgrund "Aufnahme anderer Studiengang" (ID 5) setzen
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($rowNiedrPrios->prestudent_id);
|
||||
@@ -927,7 +931,7 @@ class ReihungstestJob extends JOB_Controller
|
||||
= $rowNiedrPrios->nachname.' '.$rowNiedrPrios->vorname.' ('.$rowNiedrPrios->prestudent_id.')';
|
||||
}
|
||||
}
|
||||
elseif ($rowNiedrPrios->laststatus == 'Wartender')
|
||||
elseif ($rowNiedrPrios->laststatus == 'Wartender' && $row_ps->prestudenstatus_datum > $rowNiedrPrios->datum)
|
||||
{
|
||||
// Abgewiesenen-Status mit Statusgrund "Aufnahme anderer Studiengang" (ID 5) setzen
|
||||
// Mail zur Info an Assistenz schicken
|
||||
|
||||
@@ -53,20 +53,24 @@ class Studierendenantrag extends FHC_Controller
|
||||
'bezeichnungStg' => $antrag->bezeichnung,
|
||||
'bezeichnungOrgform' => $antrag->orgform
|
||||
);
|
||||
$result = $this->antraglib->getPrestudentAbmeldeBerechtigt($antrag->prestudent_id);
|
||||
|
||||
$result = $this->antraglib->getPrestudentWiederholungsBerechtigt($antrag->prestudent_id);
|
||||
if (getData($result) == 1)
|
||||
$prestudentenArr[$antrag->prestudent_id]['allowedNewTypes'][] = 'Abmeldung';
|
||||
$prestudentenArr[$antrag->prestudent_id]['allowedNewTypes'][] = 'Wiederholung';
|
||||
|
||||
$result = $this->antraglib->getPrestudentUnterbrechungsBerechtigt($antrag->prestudent_id);
|
||||
if (getData($result) == 1)
|
||||
$prestudentenArr[$antrag->prestudent_id]['allowedNewTypes'][] = 'Unterbrechung';
|
||||
|
||||
$result = $this->antraglib->getPrestudentWiederholungsBerechtigt($antrag->prestudent_id);
|
||||
$result = $this->antraglib->getPrestudentAbmeldeBerechtigt($antrag->prestudent_id);
|
||||
if (getData($result) == 1)
|
||||
$prestudentenArr[$antrag->prestudent_id]['allowedNewTypes'][] = 'Wiederholung';
|
||||
$prestudentenArr[$antrag->prestudent_id]['allowedNewTypes'][] = 'Abmeldung';
|
||||
}
|
||||
if ($antrag->studierendenantrag_id == null)
|
||||
continue;
|
||||
if ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL && (!$antrag->isapproved))
|
||||
continue;
|
||||
|
||||
$prestudentenArr[$antrag->prestudent_id]['antraege'][] = $antrag;
|
||||
}
|
||||
|
||||
@@ -77,42 +81,9 @@ class Studierendenantrag extends FHC_Controller
|
||||
|
||||
public function leitung()
|
||||
{
|
||||
$studiengaenge = $this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe');
|
||||
$stgsNeuanlage = $this->permissionlib->getSTG_isEntitledFor('student/studierendenantrag');
|
||||
$stgL = $this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe') ?: [];
|
||||
|
||||
$stgL = [];
|
||||
if ($studiengaenge) {
|
||||
$result = $this->StudiengangModel->loadWithOrgform($studiengaenge);
|
||||
if (isError($result))
|
||||
return show_error(getError($result));
|
||||
$antraege = getData($result) ?: [];
|
||||
|
||||
foreach ($antraege as $antrag) {
|
||||
if (!isset($stgL[$antrag->studiengang_kz])) {
|
||||
$stgL[$antrag->studiengang_kz] = new stdClass();
|
||||
$stgL[$antrag->studiengang_kz]->bezeichnung = $antrag->bezeichnung;
|
||||
$stgL[$antrag->studiengang_kz]->orgform = $antrag->orgform;
|
||||
$stgL[$antrag->studiengang_kz]->studiengang_kz = $antrag->studiengang_kz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$stgA = [];
|
||||
if ($stgsNeuanlage) {
|
||||
$result = $this->StudiengangModel->loadWithOrgform($stgsNeuanlage);
|
||||
if (isError($result))
|
||||
return show_error(getError($result));
|
||||
$antraege = getData($result) ?: [];
|
||||
|
||||
foreach ($antraege as $antrag) {
|
||||
if (!isset($stgA[$antrag->studiengang_kz])) {
|
||||
$stgA[$antrag->studiengang_kz] = new stdClass();
|
||||
$stgA[$antrag->studiengang_kz]->bezeichnung = $antrag->bezeichnung;
|
||||
$stgA[$antrag->studiengang_kz]->orgform = $antrag->orgform;
|
||||
$stgA[$antrag->studiengang_kz]->studiengang_kz = $antrag->studiengang_kz;
|
||||
}
|
||||
}
|
||||
}
|
||||
$stgA = $this->permissionlib->getSTG_isEntitledFor('student/studierendenantrag') ?: [];
|
||||
|
||||
$this->load->view('lehre/Antrag/Leitung/List', [
|
||||
'stgA' => $stgA,
|
||||
@@ -129,7 +100,7 @@ class Studierendenantrag extends FHC_Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function abmeldungstgl($prestudent_id, $studierendenantrag_id)
|
||||
public function abmeldungstgl($prestudent_id, $studierendenantrag_id = null)
|
||||
{
|
||||
$this->load->view('lehre/Antrag/Create', [
|
||||
'prestudent_id' => $prestudent_id,
|
||||
|
||||
@@ -242,7 +242,7 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
$empfehlungsanfrage_an = !isEmptyArray($result) ? implode(', ', array_column($result, 'fullname')) : '';
|
||||
|
||||
// Request Recommendation
|
||||
if($this->anrechnunglib->requestRecommendation($anrechnung_id))
|
||||
if ($this->anrechnunglib->requestRecommendation($anrechnung_id))
|
||||
{
|
||||
$retval[]= array(
|
||||
'anrechnung_id' => $anrechnung_id,
|
||||
@@ -254,31 +254,23 @@ class approveAnrechnungDetail extends Auth_Controller
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send mails to lectors
|
||||
* NOTE: mails are sent at the end to ensure sending only ONE mail to each LV-Leitung or lector
|
||||
* even if they are required for more recommendations
|
||||
* */
|
||||
if (!isEmptyArray($retval))
|
||||
{
|
||||
if ($this->config->item('send_mail') === TRUE)
|
||||
{
|
||||
$this->_sendSanchoMailToLectors($anrechnung_id);
|
||||
}
|
||||
|
||||
// Output json to ajax
|
||||
return $this->outputJsonSuccess($retval);
|
||||
}
|
||||
|
||||
// Output json to ajax
|
||||
if ($empfehlungsanfrage_an == '')
|
||||
{
|
||||
$this->terminateWithJsonError(
|
||||
"Empfehlung wurde nicht angefordert,\nDer LV sind keine LektorInnen zugeteilt."
|
||||
);
|
||||
}
|
||||
|
||||
if (isEmptyArray($retval))
|
||||
{
|
||||
$this->terminateWithJsonError(
|
||||
"Empfehlung wurde nicht angefordert,\nDer LV sind keine LektorInnen zugeteilt."
|
||||
);
|
||||
$this->terminateWithJsonError("Empfehlung wurde nicht angefordert");
|
||||
}
|
||||
|
||||
$this->terminateWithJsonError($this->p->t('ui', 'errorNichtAusgefuehrt'));
|
||||
else
|
||||
{
|
||||
// Output json to ajax
|
||||
return $this->outputJsonSuccess($retval);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -249,19 +249,6 @@ class approveAnrechnungUebersicht extends Auth_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Send mails
|
||||
* NOTE: mails are sent at the end to ensure sending only ONE mail to each LV-Leitung or lector
|
||||
* even if they are required for more recommendations
|
||||
* */
|
||||
if (!isEmptyArray($retval))
|
||||
{
|
||||
if ($this->config->item('send_mail') === TRUE)
|
||||
{
|
||||
$this->_sendSanchoMail($retval);
|
||||
}
|
||||
}
|
||||
|
||||
// Output json to ajax
|
||||
if (isEmptyArray($retval))
|
||||
{
|
||||
@@ -273,7 +260,7 @@ class approveAnrechnungUebersicht extends Auth_Controller
|
||||
$this->terminateWithJsonError('Es wurden keine Empfehlungen angefordert');
|
||||
}
|
||||
|
||||
return $this->outputJsonSuccess($retval);
|
||||
$this->outputJsonSuccess($retval);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -111,6 +111,8 @@ class requestAnrechnung extends Auth_Controller
|
||||
$lehrveranstaltung_id = $this->input->post('lv_id');
|
||||
$studiensemester_kurzbz = $this->input->post('studiensemester');
|
||||
$bestaetigung = $this->input->post('bestaetigung');
|
||||
$begruendung_ects = $this->input->post('begruendung_ects');
|
||||
$begruendung_lvinhalt = $this->input->post('begruendung_lvinhalt');
|
||||
|
||||
// Validate data
|
||||
if (empty($_FILES['uploadfile']['name']))
|
||||
@@ -121,7 +123,9 @@ class requestAnrechnung extends Auth_Controller
|
||||
if (isEmptyString($begruendung_id) ||
|
||||
isEmptyString($anmerkung) ||
|
||||
isEmptyString($lehrveranstaltung_id) ||
|
||||
isEmptyString($studiensemester_kurzbz))
|
||||
isEmptyString($studiensemester_kurzbz) ||
|
||||
isEmptyString($begruendung_ects) ||
|
||||
isEmptyString($begruendung_lvinhalt))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('ui', 'errorFelderFehlen'));
|
||||
}
|
||||
@@ -148,10 +152,10 @@ class requestAnrechnung extends Auth_Controller
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'antragBereitsGestellt'));
|
||||
}
|
||||
|
||||
// Exit if application is not for actual studysemester
|
||||
if (!self::_applicationIsForActualSS($studiensemester_kurzbz))
|
||||
// Exit if application is a past ( < actual ) studysemester
|
||||
if (self::_applicationIsPastSS($studiensemester_kurzbz))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'antragNurImAktSS'));
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'antragNichtFuerVerganganeSS'));
|
||||
}
|
||||
|
||||
// Upload document
|
||||
@@ -172,7 +176,9 @@ class requestAnrechnung extends Auth_Controller
|
||||
$lehrveranstaltung_id,
|
||||
$begruendung_id,
|
||||
$lastInsert_dms_id,
|
||||
$anmerkung
|
||||
$anmerkung,
|
||||
$begruendung_ects,
|
||||
$begruendung_lvinhalt
|
||||
);
|
||||
|
||||
if (isError($result))
|
||||
@@ -306,18 +312,21 @@ class requestAnrechnung extends Auth_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if applications' study semester is actual study semester.
|
||||
* Check if applications' study semester is < actual study semester.
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return bool
|
||||
*/
|
||||
private function _applicationIsForActualSS($studiensemester_kurzbz)
|
||||
private function _applicationIsPastSS($studiensemester_kurzbz)
|
||||
{
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$result = $this->StudiensemesterModel->getNearest();
|
||||
$actual_ss = getData($result)[0]->studiensemester_kurzbz;
|
||||
$actual_ss = getData($result)[0];
|
||||
|
||||
return $studiensemester_kurzbz == $actual_ss;
|
||||
$result = $this->StudiensemesterModel->load($studiensemester_kurzbz);
|
||||
$anrechnung_ss = getData($result)[0];
|
||||
|
||||
return $anrechnung_ss->ende < $actual_ss->start;
|
||||
}
|
||||
|
||||
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id)
|
||||
|
||||
@@ -21,6 +21,7 @@ class InfoCenter extends Auth_Controller
|
||||
const FREIGEGEBEN_PAGE = 'freigegeben';
|
||||
const REIHUNGSTESTABSOLVIERT_PAGE = 'reihungstestAbsolviert';
|
||||
const ABGEWIESEN_PAGE = 'abgewiesen';
|
||||
const AUFGENOMMEN_PAGE = 'aufgenommen';
|
||||
const SHOW_DETAILS_PAGE = 'showDetails';
|
||||
const SHOW_ZGV_DETAILS_PAGE = 'showZGVDetails';
|
||||
const ZGV_UBERPRUEFUNG_PAGE = 'ZGVUeberpruefung';
|
||||
@@ -115,6 +116,7 @@ class InfoCenter extends Auth_Controller
|
||||
'index' => 'infocenter:r',
|
||||
'freigegeben' => 'infocenter:r',
|
||||
'abgewiesen' => 'infocenter:r',
|
||||
'aufgenommen' => 'infocenter:r',
|
||||
'reihungstestAbsolviert' => 'infocenter:r',
|
||||
'showDetails' => 'infocenter:r',
|
||||
'showZGVDetails' => 'lehre/zgvpruefung:r',
|
||||
@@ -228,6 +230,16 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$this->load->view('system/infocenter/infocenterAbgewiesen.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Aufgenommene page of the InfoCenter tool
|
||||
*/
|
||||
public function aufgenommen()
|
||||
{
|
||||
$this->_setNavigationMenu(self::AUFGENOMMEN_PAGE); // define the navigation menu for this page
|
||||
|
||||
$this->load->view('system/infocenter/infocenterAufgenommen.php');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -314,7 +326,7 @@ class InfoCenter extends Auth_Controller
|
||||
show_error('Person does not exist!');
|
||||
|
||||
$origin_page = $this->input->get(self::ORIGIN_PAGE);
|
||||
if ($origin_page == self::INDEX_PAGE)
|
||||
if (in_array($origin_page, array(self::INDEX_PAGE, self::ABGEWIESEN_PAGE)))
|
||||
{
|
||||
// mark person as locked for editing
|
||||
$result = $this->PersonLockModel->lockPerson($person_id, $this->_uid, self::APP);
|
||||
@@ -359,7 +371,14 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
if (isError($result)) show_error(getError($result));
|
||||
|
||||
$redirectLink = '/'.self::INFOCENTER_URI.'?'.self::FHC_CONTROLLER_ID.'='.$this->getControllerId();
|
||||
$origin_page = $this->input->get(self::ORIGIN_PAGE);
|
||||
|
||||
if ($origin_page === self::ABGEWIESEN_PAGE)
|
||||
$redirectLink = self::INFOCENTER_URI. '/' .self::ABGEWIESEN_PAGE;
|
||||
else
|
||||
$redirectLink = '/'.self::INFOCENTER_URI;
|
||||
|
||||
$redirectLink .= '?'.self::FHC_CONTROLLER_ID.'='.$this->getControllerId();
|
||||
|
||||
// Force reload of Dataset after Unlock
|
||||
$redirectLink .= '&'.self::KEEP_TABLESORTER_FILTER.'=true';
|
||||
@@ -1526,6 +1545,7 @@ class InfoCenter extends Auth_Controller
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$reihungstestAbsolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$abgewiesenLink = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
$aufgenommenLink = site_url(self::INFOCENTER_URI.'/'.self::AUFGENOMMEN_PAGE);
|
||||
|
||||
$currentFilterId = $this->input->get(self::FILTER_ID);
|
||||
if (isset($currentFilterId))
|
||||
@@ -1533,6 +1553,7 @@ class InfoCenter extends Auth_Controller
|
||||
$freigegebenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$reihungstestAbsolviertLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$abgewiesenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$aufgenommenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
}
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
@@ -1583,7 +1604,19 @@ class InfoCenter extends Auth_Controller
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
30 // sort
|
||||
)
|
||||
),
|
||||
'aufgenommen' => $this->navigationlib->oneLevel(
|
||||
'Aufgenommene', // description
|
||||
$aufgenommenLink, // link
|
||||
null, // children
|
||||
'check', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
40 // sort
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -1611,6 +1644,9 @@ class InfoCenter extends Auth_Controller
|
||||
if ($origin_page === self::ABGEWIESEN_PAGE)
|
||||
$link = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
|
||||
if ($origin_page === self::AUFGENOMMEN_PAGE)
|
||||
$link = site_url(self::INFOCENTER_URI.'/'.self::AUFGENOMMEN_PAGE);
|
||||
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ class FASMessages extends Auth_Controller
|
||||
|
||||
// Loads the view to write a new message with a template
|
||||
$this->load->view(
|
||||
'system/messages/htmlWriteTemplate',
|
||||
'system/messages/FAShtmlWriteTemplate',
|
||||
$this->CLMessagesModel->prepareHtmlWriteTemplatePrestudents($prestudents)
|
||||
);
|
||||
}
|
||||
@@ -53,7 +53,7 @@ class FASMessages extends Auth_Controller
|
||||
|
||||
// Loads the view to write a new message with a template
|
||||
$this->load->view(
|
||||
'system/messages/htmlWriteTemplate',
|
||||
'system/messages/FAShtmlWriteTemplate',
|
||||
$this->CLMessagesModel->prepareHtmlWriteTemplatePrestudents($prestudents, $message_id, $recipient_id)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -174,6 +174,8 @@ class AnrechnungLib
|
||||
$anrechnung_data->insertvon = '';
|
||||
$anrechnung_data->studiensemester_kurzbz = '';
|
||||
$anrechnung_data->empfehlung = '';
|
||||
$anrechnung_data->begruendung_ects = '';
|
||||
$anrechnung_data->begruendung_lvinhalt = '';
|
||||
$anrechnung_data->status_kurzbz = '';
|
||||
$anrechnung_data->status = getUserLanguage() == 'German' ? 'neu' : 'new';
|
||||
$anrechnung_data->dokumentname = '';
|
||||
@@ -894,6 +896,8 @@ class AnrechnungLib
|
||||
$anrechnung_data->insertvon= $anrechnung->insertvon;
|
||||
$anrechnung_data->studiensemester_kurzbz= $anrechnung->studiensemester_kurzbz;
|
||||
$anrechnung_data->empfehlung= $anrechnung->empfehlung_anrechnung;
|
||||
$anrechnung_data->begruendung_ects = $anrechnung->begruendung_ects;
|
||||
$anrechnung_data->begruendung_lvinhalt = $anrechnung->begruendung_lvinhalt;
|
||||
|
||||
// Get last status_kurzbz
|
||||
$result = $this->ci->AnrechnungModel->getLastAnrechnungstatus($anrechnung->anrechnung_id);
|
||||
|
||||
@@ -123,6 +123,8 @@ class AntragLib
|
||||
*/
|
||||
public function approveAbmeldung($studierendenantrag_ids, $insertvon)
|
||||
{
|
||||
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
||||
|
||||
$errors = [];
|
||||
foreach ($studierendenantrag_ids as $studierendenantrag_id) {
|
||||
$result = $this->_ci->StudierendenantragModel->load($studierendenantrag_id);
|
||||
@@ -149,6 +151,14 @@ class AntragLib
|
||||
if (isError($result))
|
||||
$errors[] = getError($result);
|
||||
else {
|
||||
$this->_ci->StudiengangModel->addJoin('public.tbl_prestudent ps','studiengang_kz');
|
||||
$result = $this->_ci->StudiengangModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
||||
$stg = '';
|
||||
$orgform = '';
|
||||
if (hasData($result)) {
|
||||
$studiengang = current(getData($result));
|
||||
$stg = $studiengang->bezeichnung;
|
||||
}
|
||||
if ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG)
|
||||
{
|
||||
$resultPrestudentStatus = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id);
|
||||
@@ -157,6 +167,7 @@ class AntragLib
|
||||
|
||||
else {
|
||||
$prestudent_status = getData($resultPrestudentStatus)[0];
|
||||
$orgform = $prestudent_status->orgform_kurzbz;
|
||||
|
||||
$vorlage ='Sancho_Mail_Antrag_A_Approve';
|
||||
$subject = $this->_ci->p->t('studierendenantrag', 'mail_subject_A_Approve');
|
||||
@@ -177,17 +188,30 @@ class AntragLib
|
||||
|
||||
$result = $this->_ci->PersonModel->loadPrestudent($antrag->prestudent_id);
|
||||
$data = [
|
||||
'nameStudent' => $this->_ci->p->t('person', 'studentIn')
|
||||
'student' => $this->_ci->p->t('person', 'studentIn'),
|
||||
'sem' => $antrag->studiensemester_kurzbz,
|
||||
'linkPdf' => base_url('content/pdfExport.php?xml=Antrag' . $antrag->typ . '.xml.php&xsl=Antrag' . $antrag->typ . '&id=' . $antrag->studierendenantrag_id . '&output=pdf')
|
||||
];
|
||||
if (hasData($result)) {
|
||||
$person = current(getData($result));
|
||||
$data['nameStudent'] = trim($person->vorname . ' ' . $person->nachname);
|
||||
$data['student'] = trim($person->vorname . ' ' . $person->nachname);
|
||||
$data['vorname'] = $person->vorname;
|
||||
$data['nachname'] = $person->nachname;
|
||||
}
|
||||
$result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $antrag->prestudent_id]);
|
||||
if (hasData($result)) {
|
||||
$student = current(getData($result));
|
||||
$data['UID'] = $student->student_uid;
|
||||
}
|
||||
|
||||
$data['Orgform'] = $prestudent_status->orgform;
|
||||
$data['stg'] = $stg;
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
sendSanchoMail($vorlage, $data, $prestudent_status->email, $subject);
|
||||
}
|
||||
} else { // ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL)
|
||||
$result = $this->_ci->PrestudentstatusModel->getLastStatus($antrag->prestudent_id, '', 'Student');
|
||||
$result = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id, '', 'Student');
|
||||
if (isError($result))
|
||||
{
|
||||
$errors[] = getError($result);
|
||||
@@ -199,6 +223,7 @@ class AntragLib
|
||||
continue;
|
||||
}
|
||||
$prestudentstatus = getData($result)[0];
|
||||
$orgform = $prestudentstatus->orgform_kurzbz;
|
||||
|
||||
$result = $this->_ci->PrestudentstatusModel->withGrund('preabbrecher')->update([
|
||||
'prestudent_id' => $prestudentstatus->prestudent_id,
|
||||
@@ -221,13 +246,16 @@ class AntragLib
|
||||
if (hasData($res)) {
|
||||
$person = current(getData($res));
|
||||
$name = trim($person->vorname . ' ' . $person->nachname);
|
||||
$vorname = $person->vorname;
|
||||
$nachname = $person->nachname;
|
||||
} else {
|
||||
$name = $this->_ci->p->t('person', 'studentIn');
|
||||
$vorname = '';
|
||||
$nachname = $name;
|
||||
}
|
||||
$res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
|
||||
$res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
||||
if (hasData($res)) {
|
||||
$kontakt = current(getData($res));
|
||||
$email = $kontakt->kontakt;
|
||||
$email = $this->_ci->StudentModel->getEmailFH(current(getData($res))->student_uid);
|
||||
$vorlage = $antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG ? 'Student' : 'Stgl';
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
@@ -235,7 +263,11 @@ class AntragLib
|
||||
'Sancho_Mail_Antrag_A_' . $vorlage,
|
||||
[
|
||||
'name' => $name,
|
||||
'grund' => $antrag->grund
|
||||
'grund' => $antrag->grund,
|
||||
'vorname' => $vorname,
|
||||
'nachname' => $nachname,
|
||||
'Orgform' => $orgform,
|
||||
'stg' => $stg
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_' . $vorlage)
|
||||
@@ -281,9 +313,6 @@ class AntragLib
|
||||
|
||||
$status = current(getData($result));
|
||||
|
||||
if ($grund)
|
||||
$grund = $this->_ci->p->t('studierendenantrag', 'mail_part_grund', ['grund' => $grund]);
|
||||
|
||||
$result = $this->_ci->StudierendenantragstatusModel->insert([
|
||||
'studierendenantrag_id' => $studierendenantrag_id,
|
||||
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_OBJECTION_DENIED,
|
||||
@@ -307,23 +336,41 @@ class AntragLib
|
||||
$res = $this->_ci->PrestudentModel->load($antrag->prestudent_id);
|
||||
|
||||
if (hasData($res)) {
|
||||
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
||||
|
||||
$prestudent = current(getData($res));
|
||||
$res = $this->_ci->PersonModel->load($prestudent->person_id);
|
||||
if (hasData($res)) {
|
||||
$person = current(getData($res));
|
||||
$name = trim($person->vorname . ' ' . $person->nachname);
|
||||
$vorname = $person->vorname;
|
||||
$nachname = $person->nachname;
|
||||
} else {
|
||||
$name = $this->_ci->p->t('person', 'studentIn');
|
||||
}
|
||||
$res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
|
||||
|
||||
$res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
||||
if (hasData($res)) {
|
||||
$kontakt = current(getData($res));
|
||||
$email = $kontakt->kontakt;
|
||||
$email = $this->_ci->StudentModel->getEmailFH(current(getData($res))->student_uid);
|
||||
|
||||
$res = $this->_ci->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
|
||||
$stg = '';
|
||||
$orgform = '';
|
||||
if (hasData($res)) {
|
||||
$studiengang = current(getData($res));
|
||||
$stg = $studiengang->bezeichnung;
|
||||
$orgform = $studiengang->orgform_kurzbz;
|
||||
}
|
||||
|
||||
sendSanchoMail(
|
||||
'Sancho_Mail_Antrag_A_ObjDenied',
|
||||
[
|
||||
'name' => $name,
|
||||
'grund' => $grund
|
||||
'vorname' => $vorname,
|
||||
'nachname' => $nachname,
|
||||
'grund' => $grund,
|
||||
'Orgform' => $orgform,
|
||||
'stg' => $stg
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_ObjectionDenied')
|
||||
@@ -388,6 +435,7 @@ class AntragLib
|
||||
public function approveUnterbrechung($studierendenantrag_ids, $insertvon)
|
||||
{
|
||||
$this->_ci->load->model('person/Kontakt_model', 'KontaktModel');
|
||||
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
||||
|
||||
$errors = [];
|
||||
|
||||
@@ -405,6 +453,7 @@ class AntragLib
|
||||
'<br>Details:<br>' .
|
||||
$error_msg;
|
||||
} else {
|
||||
|
||||
$data = getData($data);
|
||||
|
||||
$result = $this->_ci->StudierendenantragstatusModel->insert([
|
||||
@@ -432,17 +481,18 @@ class AntragLib
|
||||
|
||||
// Prestudentstatus und Unterbrechungsfolgeaktionen setzen
|
||||
$result = $this->_ci->prestudentlib->setUnterbrecher(
|
||||
$resultAntrag->prestudent_id,
|
||||
$resultAntrag->studiensemester_kurzbz,
|
||||
$studierendenantrag_id
|
||||
);
|
||||
$resultAntrag->prestudent_id,
|
||||
$resultAntrag->studiensemester_kurzbz,
|
||||
$studierendenantrag_id
|
||||
);
|
||||
|
||||
if (isError($result)) {
|
||||
$this->_ci->StudierendenantragstatusModel->delete($studierendenantrag_status_id);
|
||||
return $result;
|
||||
}
|
||||
|
||||
//Mail
|
||||
|
||||
//Mail
|
||||
$subject = $this->_ci->p->t('studierendenantrag', 'mail_subject_U_Approve');
|
||||
$mail = [];
|
||||
|
||||
@@ -456,15 +506,15 @@ class AntragLib
|
||||
{
|
||||
if (isset($data['errors']['person']))
|
||||
{
|
||||
//send assistenz mit id
|
||||
//send assistenz mit id
|
||||
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_mail_and_name', [
|
||||
'message' => $data['errors']['email'] . '<br>' . $data['errors']['person']
|
||||
]);
|
||||
'message' => $data['errors']['email'] . '<br>' . $data['errors']['person']
|
||||
]);
|
||||
$mail['ass'] = $this->_ci->p->t('studierendenantrag', 'StudentIn', ['prestudent_id' => $data['antrag']->prestudent_id]);
|
||||
}
|
||||
else
|
||||
{
|
||||
//send assistenz mit name
|
||||
//send assistenz mit name
|
||||
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_mail', ['message' => $data['errors']['email']]);
|
||||
$mail['ass'] = trim($data['person']->vorname . ' ' . $data['person']->nachname);
|
||||
}
|
||||
@@ -473,26 +523,49 @@ class AntragLib
|
||||
{
|
||||
if (isset($data['errors']['person']))
|
||||
{
|
||||
//send assistenz mit id & student mit "Student/in"
|
||||
//send assistenz mit id & student mit "Student/in"
|
||||
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_name', ['message' => $data['errors']['person']]);
|
||||
$mail['ass'] = $this->_ci->p->t('studierendenantrag', 'StudentIn', ['prestudent_id' => $data['antrag']->prestudent_id]);
|
||||
$mail['stu'] = $this->_ci->p->t('person', 'StudentIn');
|
||||
}
|
||||
else
|
||||
{
|
||||
//send normal
|
||||
//send normal
|
||||
$mail['ass'] = $mail['stu'] = trim($data['person']->vorname . ' ' . $data['person']->nachname);
|
||||
}
|
||||
}
|
||||
$mailVorlage = 'Sancho_Mail_Antrag_U_Approve';
|
||||
if ($data['studienbeitrag'])
|
||||
$mailVorlage .= '_SB';
|
||||
|
||||
if (isset($mail['ass'])) {
|
||||
// NOTE(chris): Sancho mail
|
||||
$mailVorlage = 'Sancho_Mail_Antrag_U_Approve';
|
||||
|
||||
$result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $data['antrag']->prestudent_id]);
|
||||
if (hasData($result)) {
|
||||
$student = current(getData($result));
|
||||
$data['UID'] = $student->student_uid;
|
||||
}
|
||||
|
||||
$result = $this->_ci->PersonModel->getFullName($insertvon);
|
||||
if (isError($result))
|
||||
return $result;
|
||||
$approvedBy = $insertvon;
|
||||
if (hasData($result))
|
||||
{
|
||||
$approvedBy = getData($result);
|
||||
}
|
||||
|
||||
if (!sendSanchoMail(
|
||||
$mailVorlage,
|
||||
[
|
||||
'name' => $mail['ass']
|
||||
'name' => $mail['ass'],
|
||||
'stg' => $data['studiengang']->bezeichnung,
|
||||
'Orgform' => $data['prestudent_status']->orgform_kurzbz,
|
||||
'vorname' => $data['person']->vorname,
|
||||
'nachname' => $data['person']->nachname,
|
||||
'UID' => $data['UID'],
|
||||
'sem' => $resultAntrag->studiensemester_kurzbz,
|
||||
'linkPdf' => base_url('content/pdfExport.php?xml=AntragUnterbrechung.xml.php&xsl=AntragUnterbrechung&id=' . $studierendenantrag_id . '&output=pdf'),
|
||||
'insertvon' => $approvedBy
|
||||
],
|
||||
$data['prestudent_status']->email,
|
||||
$subject
|
||||
@@ -502,10 +575,17 @@ class AntragLib
|
||||
}
|
||||
if (isset($mail['stu'])) {
|
||||
// NOTE(chris): Sancho mail
|
||||
$mailVorlage = 'Sancho_Mail_Antrag_U_Student';
|
||||
if ($data['studienbeitrag'])
|
||||
$mailVorlage .= '_SB';
|
||||
if (!sendSanchoMail(
|
||||
$mailVorlage,
|
||||
[
|
||||
'name' => $mail['stu']
|
||||
'name' => $mail['stu'],
|
||||
'stg' => $data['studiengang']->bezeichnung,
|
||||
'Orgform' => $data['prestudent_status']->orgform_kurzbz,
|
||||
'vorname' => $data['person']->vorname,
|
||||
'nachname' => $data['person']->nachname
|
||||
],
|
||||
$data['email'],
|
||||
$subject
|
||||
@@ -533,6 +613,7 @@ class AntragLib
|
||||
public function rejectUnterbrechung($studierendenantrag_ids, $insertvon, $grund)
|
||||
{
|
||||
$this->_ci->load->model('person/Kontakt_model', 'KontaktModel');
|
||||
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
||||
|
||||
$errors = [];
|
||||
|
||||
@@ -577,10 +658,14 @@ class AntragLib
|
||||
if (isset($data['errors']['person'])) {
|
||||
//send student mit "Student/in"
|
||||
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_name', ['message' => $data['errors']['person']]);
|
||||
$name = 'Student/in';
|
||||
$name = $this->_ci->p->t('person', 'studentIn');
|
||||
$vorname = "";
|
||||
$nachname = $name;
|
||||
} else {
|
||||
//send normal
|
||||
$name = trim($data['person']->vorname . ' ' . $data['person']->nachname);
|
||||
$vorname = $data['person']->vorname;
|
||||
$nachname = $data['person']->nachname;
|
||||
}
|
||||
}
|
||||
if ($name)
|
||||
@@ -589,7 +674,11 @@ class AntragLib
|
||||
'Sancho_Mail_Antrag_U_Reject',
|
||||
[
|
||||
'name' => $name,
|
||||
'vorname' => $vorname,
|
||||
'nachname' => $nachname,
|
||||
'grund' => $grund,
|
||||
'stg' => $data['studiengang']->bezeichnung,
|
||||
'Orgform' => $data['prestudent_status']->orgform_kurzbz,
|
||||
'prestudent_id' => $data['prestudent_status']->prestudent_id,
|
||||
'abmeldungLink' => site_url('lehre/Studierendenantrag/abmeldung/' . $data['prestudent_status']->prestudent_id),
|
||||
'abmeldungLinkCIS' => CIS_ROOT . 'index.ci.php/lehre/Studierendenantrag/abmeldung/' . $data['prestudent_status']->prestudent_id
|
||||
@@ -627,7 +716,15 @@ class AntragLib
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_no_antrag_found', ['id' => $studierendenantrag_id]));
|
||||
|
||||
$result['antrag'] = $antrag = current($res);
|
||||
|
||||
$this->_ci->StudiengangModel->addJoin('public.tbl_prestudent ps','studiengang_kz');
|
||||
$res = $this->_ci->StudiengangModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
||||
if (hasData($res)) {
|
||||
$result['studiengang'] = current(getData($res));
|
||||
}
|
||||
else{
|
||||
$result['studiengang'] = new stdClass();
|
||||
$result['studiengang']->bezeichnung = "";
|
||||
}
|
||||
|
||||
$res = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id);
|
||||
if (isError($res))
|
||||
@@ -663,7 +760,7 @@ class AntragLib
|
||||
}
|
||||
}
|
||||
|
||||
$res = $this->_ci->KontaktModel->getZustellKontakt($person_id, ['email']);
|
||||
$res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
||||
if (isError($res)) {
|
||||
$errors['email'] = getError($res);
|
||||
} else {
|
||||
@@ -672,7 +769,7 @@ class AntragLib
|
||||
if (!$res) {
|
||||
$errors['email'] = $this->_ci->p->t('studierendenantrag', 'error_no_email', ['person_id' => $person_id]);
|
||||
} else {
|
||||
$result['email'] = current($res)->kontakt;
|
||||
$result['email'] = $this->_ci->StudentModel->getEmailFH(current($res)->student_uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -762,12 +859,18 @@ class AntragLib
|
||||
$prestudent_status = current($res);
|
||||
$email = $prestudent_status->email;
|
||||
// NOTE(chris): Sancho mail
|
||||
$lvzuweisungLink = site_url('lehre/Antrag/Wiederholung/assistenz/' . $antrag_id);
|
||||
if( defined('VILESCI_ROOT') )
|
||||
{
|
||||
$lvzuweisungLink = VILESCI_ROOT . 'index.ci.php/lehre/Antrag/Wiederholung/assistenz/' . $antrag_id;
|
||||
}
|
||||
sendSanchoMail(
|
||||
'Sancho_Mail_Antrag_W_New',
|
||||
[
|
||||
'antrag_id' => $antrag_id,
|
||||
'lvzuweisungLink' => site_url('lehre/Antrag/Wiederholung/assistenz/' . $antrag_id),
|
||||
'lvzuweisungLinkCIS' => CIS_ROOT . 'index.ci.php/lehre/Antrag/Wiederholung/assistenz/' . $antrag_id
|
||||
'stg' => $prestudent_status->stg_bezeichnung,
|
||||
'Orgform' => $prestudent_status->orgform,
|
||||
'lvzuweisungLink' => $lvzuweisungLink
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_New')
|
||||
@@ -1255,13 +1358,14 @@ class AntragLib
|
||||
$where = [
|
||||
'prestudent_id' => $prestudent_id
|
||||
];
|
||||
$types = null;
|
||||
if ($typ) {
|
||||
if (is_array($typ))
|
||||
$this->_ci->StudierendenantragModel->db->where_in('typ', $typ);
|
||||
$types = $typ;
|
||||
else
|
||||
$where['typ'] = $typ;
|
||||
}
|
||||
$result = $this->_ci->StudierendenantragModel->loadWithStatusWhere($where);
|
||||
$result = $this->_ci->StudierendenantragModel->loadWithStatusWhere($where, $types);
|
||||
if (isError($result))
|
||||
return $result;
|
||||
|
||||
@@ -1325,42 +1429,52 @@ class AntragLib
|
||||
return success($resultDetails);
|
||||
}
|
||||
|
||||
public function getSemesterForUnterbrechung($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester)
|
||||
public function getSemesterForUnterbrechung($studiensemester_kurzbz)
|
||||
{
|
||||
$this->_ci->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||
$this->_ci->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
$semester = [];
|
||||
|
||||
$result = $this->_ci->StudienplanModel->getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester);
|
||||
if (!hasData($result))
|
||||
return $semester;
|
||||
|
||||
$result = $this->_ci->StudiensemesterModel->getNextFrom($studiensemester_kurzbz);
|
||||
if (!hasData($result))
|
||||
return $semester;
|
||||
$nextSem = current(getData($result));
|
||||
|
||||
$semester[] = [
|
||||
$semester[0] = [
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'wiedereinstieg' => $nextSem->start
|
||||
'wiedereinstieg' => [$nextSem]
|
||||
];
|
||||
|
||||
$result = $this->_ci->StudienplanModel->getStudienplaeneBySemester($studiengang_kz, $nextSem->studiensemester_kurzbz, $ausbildungssemester+1);
|
||||
if (!hasData($result))
|
||||
return $semester;
|
||||
|
||||
$result = $this->_ci->StudiensemesterModel->getNextFrom($nextSem->studiensemester_kurzbz);
|
||||
if (!hasData($result))
|
||||
return $semester;
|
||||
|
||||
$semAfterNext = current(getData($result));
|
||||
$currSemester = current(getData($result));
|
||||
$followingSemester = [$currSemester];
|
||||
|
||||
$semester[] = [
|
||||
$max = $this->_ci->config->item('unterbrecher_semester_max_length');
|
||||
if(!$max || $max < 1)
|
||||
$max = 2;
|
||||
|
||||
for ($i = 1; $i < $max; $i++) {
|
||||
$result = $this->_ci->StudiensemesterModel->getNextFrom($currSemester->studiensemester_kurzbz);
|
||||
if (!hasData($result))
|
||||
break;
|
||||
$currSemester = current(getData($result));
|
||||
$followingSemester[] = $currSemester;
|
||||
}
|
||||
|
||||
$semester[1] = [
|
||||
'studiensemester_kurzbz' => $nextSem->studiensemester_kurzbz,
|
||||
'wiedereinstieg' => $semAfterNext->start
|
||||
'wiedereinstieg' => $followingSemester
|
||||
];
|
||||
|
||||
//remove last Semester of the array
|
||||
array_pop($followingSemester);
|
||||
|
||||
foreach ($followingSemester as $sem)
|
||||
$semester[0]['wiedereinstieg'][] = $sem;
|
||||
|
||||
return $semester;
|
||||
}
|
||||
|
||||
@@ -1408,6 +1522,8 @@ class AntragLib
|
||||
|
||||
public function approveWiederholung($antrag_id, $insertvon)
|
||||
{
|
||||
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
||||
|
||||
$result = $this->_ci->StudierendenantragstatusModel->insert([
|
||||
'studierendenantrag_id' => $antrag_id,
|
||||
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
|
||||
@@ -1434,18 +1550,9 @@ class AntragLib
|
||||
if (!$result)
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_antrag', ['id' => $antrag_id]));
|
||||
|
||||
$result = current($result);
|
||||
$studiengang_kz = $result->studiengang_kz;
|
||||
$semester = $result->ausbildungssemester;
|
||||
|
||||
$result = $this->_ci->StudiengangModel->load($studiengang_kz);
|
||||
if (isError($result))
|
||||
return $result;
|
||||
$result = getData($result);
|
||||
if (!$result)
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_antrag', ['id' => $antrag_id]));
|
||||
|
||||
$stg = current($result);
|
||||
$studiengang_kz = $stg->studiengang_kz;
|
||||
$semester = $stg->ausbildungssemester;
|
||||
|
||||
$result = $this->_ci->StudierendenantragModel->load($antrag_id);
|
||||
if (isError($result))
|
||||
@@ -1471,6 +1578,13 @@ class AntragLib
|
||||
$mitarbeiter = getData($result);
|
||||
}
|
||||
|
||||
$result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $prestudent_id]);
|
||||
if (hasData($result)) {
|
||||
$studentObj = current(getData($result));
|
||||
$student_uid = $studentObj->student_uid;
|
||||
}
|
||||
else
|
||||
$student_uid = '';
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
if (!sendSanchoMail(
|
||||
@@ -1480,17 +1594,43 @@ class AntragLib
|
||||
'stg' => $stg->bezeichnung,
|
||||
'sem' => $semester,
|
||||
'student' => $student,
|
||||
'mitarbeiter' => $mitarbeiter
|
||||
'mitarbeiter' => $mitarbeiter,
|
||||
'Orgform' => $stg->orgform_kurzbz,
|
||||
'UID' => $student_uid
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_Approve')
|
||||
))
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_mail_to', ['email' => $email]));
|
||||
|
||||
$result = $this->_ci->KontaktModel->getZustellKontakt($person->person_id, ['email']);
|
||||
if (hasData($result)) {
|
||||
$kontakt = current(getData($result));
|
||||
$email = $kontakt->kontakt;
|
||||
if ($student_uid) {
|
||||
$email = $this->_ci->StudentModel->getEmailFH($student_uid);
|
||||
|
||||
$sem_not_allowed = $sem_to_repeat = '';
|
||||
$list_not_allowed = $list_to_repeat = $this->_ci->p->t('studierendenantrag', 'mail_part_error_no_lvs');
|
||||
|
||||
$result = $this->getLvsForAntrag($antrag_id);
|
||||
if (hasData($result)) {
|
||||
$lvs = getData($result);
|
||||
foreach ($lvs as $sem => $lv_list) {
|
||||
$lvs_filtered = array_filter($lv_list, function ($el) {
|
||||
return property_exists($el, 'antrag_zugelassen') && $el->antrag_zugelassen;
|
||||
});
|
||||
if (substr($sem, 0, 1) == '1') {
|
||||
$sem_not_allowed = substr($sem, 1);
|
||||
$list_not_allowed = array_map(function ($el) {
|
||||
return $el->bezeichnung . '(' . $el->lehrform_kurzbz . ')';
|
||||
}, $lvs_filtered);
|
||||
$list_not_allowed = '<ul><li>' . implode('</li><li>', $list_not_allowed) . '</li></ul>';
|
||||
} else {
|
||||
$sem_to_repeat = substr($sem, 1);
|
||||
$list_to_repeat = array_map(function ($el) {
|
||||
return $el->bezeichnung . '(' . $el->lehrform_kurzbz . ')';
|
||||
}, $lvs_filtered);
|
||||
$list_to_repeat = '<ul><li>' . implode('</li><li>', $list_to_repeat) . '</li></ul>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
sendSanchoMail(
|
||||
@@ -1500,7 +1640,12 @@ class AntragLib
|
||||
'stg' => $stg->bezeichnung,
|
||||
'sem' => $semester,
|
||||
'mitarbeiter' => $mitarbeiter,
|
||||
'name' => $student
|
||||
'student' => $student,
|
||||
'sem_not_allowed' => $sem_not_allowed,
|
||||
'list_not_allowed' => $list_not_allowed,
|
||||
'sem_to_repeat' => $sem_to_repeat,
|
||||
'list_to_repeat' => $list_to_repeat,
|
||||
'Orgform' => $stg->orgform_kurzbz
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_Student')
|
||||
|
||||
@@ -182,6 +182,7 @@ class MailLib
|
||||
{
|
||||
if ($this->sended == $this->email_number_per_time_range)
|
||||
{
|
||||
$this->sended = 0;
|
||||
sleep($this->email_time_range); // Wait!!!
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,12 +32,15 @@ class PrestudentLib
|
||||
$this->_ci->load->model('organisation/Lehrverband_model', 'LehrverbandModel');
|
||||
$this->_ci->load->model('education/Studentlehrverband_model', 'StudentlehrverbandModel');
|
||||
$this->_ci->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
$this->_ci->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
}
|
||||
|
||||
public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null)
|
||||
public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null, $bestaetigtvon = null)
|
||||
{
|
||||
if (!$insertvon)
|
||||
$insertvon = getAuthUID();
|
||||
if (!$bestaetigtvon)
|
||||
$bestaetigtvon = $insertvon;
|
||||
|
||||
$result = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id, $studiensemester_kurzbz);
|
||||
if (isError($result))
|
||||
@@ -78,7 +81,7 @@ class PrestudentLib
|
||||
'insertamum' => date('c'),
|
||||
'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz,
|
||||
'studienplan_id'=> $prestudent_status->studienplan_id,
|
||||
'bestaetigtvon' => $insertvon,
|
||||
'bestaetigtvon' => $bestaetigtvon,
|
||||
'bestaetigtam' => $bestaetigtam
|
||||
]);
|
||||
|
||||
@@ -205,6 +208,7 @@ class PrestudentLib
|
||||
|
||||
public function setUnterbrecher($prestudent_id, $studiensemester_kurzbz, $studierendenantrag_id, $insertvon = null)
|
||||
{
|
||||
$ausbildungssemester_plus = 0;
|
||||
if (!$insertvon)
|
||||
$insertvon = getAuthUID();
|
||||
|
||||
@@ -213,14 +217,38 @@ class PrestudentLib
|
||||
return $result;
|
||||
$result = getData($result);
|
||||
if (!$result) {
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_no_prestudent_in_sem', [
|
||||
'prestudent_id' => $prestudent_id,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz
|
||||
]));
|
||||
//NOTE(manu): only valid if nextSemester focus max
|
||||
|
||||
$result = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
if (isError($result))
|
||||
return $result;
|
||||
$result = getData($result);
|
||||
|
||||
//check if ausbildungssemester is last
|
||||
$this->_ci->StudiengangModel->addJoin('public.tbl_prestudent p', 'studiengang_kz');
|
||||
$res = $this->_ci->StudiengangModel->loadWhere(['p.prestudent_id' => $prestudent_id]);
|
||||
if(isError($res))
|
||||
return $res;
|
||||
if(!hasData($res))
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_for_prestudent', [
|
||||
'prestudent_id' => $prestudent_id
|
||||
]));
|
||||
|
||||
$studiengang = current(getData($res));
|
||||
$prestudent_status = current($result);
|
||||
if($prestudent_status->ausbildungssemester + 1 < $studiengang->max_semester)
|
||||
$ausbildungssemester_plus = 1;
|
||||
|
||||
if(!$result)
|
||||
{
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_no_prestudent_in_sem', [
|
||||
'prestudent_id' => $prestudent_id,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
$prestudent_status = current($result);
|
||||
|
||||
$result = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $prestudent_id]);
|
||||
|
||||
if (isError($result))
|
||||
@@ -245,7 +273,7 @@ class PrestudentLib
|
||||
'prestudent_id' => $prestudent_id,
|
||||
'status_kurzbz' => Prestudentstatus_model::STATUS_UNTERBRECHER,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'ausbildungssemester' => $prestudent_status->ausbildungssemester,
|
||||
'ausbildungssemester' => $prestudent_status->ausbildungssemester + $ausbildungssemester_plus,
|
||||
'datum' => date('c'),
|
||||
'insertvon' => $insertvon,
|
||||
'insertamum' => date('c'),
|
||||
@@ -256,7 +284,6 @@ class PrestudentLib
|
||||
'anmerkung'=> 'Wiedereinstieg ' . $antrag->datum_wiedereinstieg
|
||||
]);
|
||||
|
||||
//error try manu
|
||||
if (isError($result))
|
||||
return $result;
|
||||
|
||||
@@ -351,17 +378,34 @@ class PrestudentLib
|
||||
]);
|
||||
|
||||
//Studentlehrverband setzen
|
||||
$this->_ci->StudentlehrverbandModel->update([
|
||||
$result = $this->_ci->StudentlehrverbandModel->loadWhere([
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'student_uid' => $student->student_uid
|
||||
], [
|
||||
'studiengang_kz' => $student->studiengang_kz,
|
||||
'semester' => 0,
|
||||
'verband' => 'B',
|
||||
'gruppe' => '',
|
||||
'updateamum' => date('c'),
|
||||
'updatevon' => $insertvon
|
||||
]);
|
||||
if (hasData($result)) {
|
||||
$this->_ci->StudentlehrverbandModel->update([
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'student_uid' => $student->student_uid
|
||||
], [
|
||||
'studiengang_kz' => $student->studiengang_kz,
|
||||
'semester' => 0,
|
||||
'verband' => 'B',
|
||||
'gruppe' => '',
|
||||
'updateamum' => date('c'),
|
||||
'updatevon' => $insertvon
|
||||
]);
|
||||
} else {
|
||||
$this->_ci->StudentlehrverbandModel->insert([
|
||||
'student_uid' => $student->student_uid,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'studiengang_kz' => $student->studiengang_kz,
|
||||
'semester' => 0,
|
||||
'verband' => 'B',
|
||||
'gruppe' => '',
|
||||
'insertamum' => date('c'),
|
||||
'insertvon' => $insertvon
|
||||
]);
|
||||
}
|
||||
|
||||
return success();
|
||||
}
|
||||
|
||||
@@ -85,6 +85,12 @@ class GbDatumWeitZurueck extends PlausiChecker
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($exkludierte_studiengang_kz) && !isEmptyArray($exkludierte_studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz NOT IN ?";
|
||||
$params[] = $exkludierte_studiengang_kz;
|
||||
}
|
||||
|
||||
$qry .= ")";
|
||||
|
||||
if (isset($person_id))
|
||||
@@ -93,12 +99,6 @@ class GbDatumWeitZurueck extends PlausiChecker
|
||||
$params[] = $person_id;
|
||||
}
|
||||
|
||||
if (isset($exkludierte_studiengang_kz) && !isEmptyArray($exkludierte_studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz NOT IN ?";
|
||||
$params[] = $exkludierte_studiengang_kz;
|
||||
}
|
||||
|
||||
return $this->_db->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
class Abschluss_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'bis.tbl_abschluss';
|
||||
$this->pk = 'ausbildung_code';
|
||||
}
|
||||
|
||||
public function getActiveAbschluesse($languageIndex)
|
||||
{
|
||||
return $this->execQuery(
|
||||
'
|
||||
SELECT
|
||||
ausbildung_code, bezeichnung[?], in_oesterreich
|
||||
FROM
|
||||
bis.tbl_abschluss
|
||||
WHERE
|
||||
aktiv
|
||||
ORDER BY
|
||||
CASE WHEN in_oesterreich THEN 0 ELSE 1 END, ausbildung_code',
|
||||
array($languageIndex)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
class Uhstat1daten_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'bis.tbl_uhstat1daten';
|
||||
$this->pk = 'uhstat1daten_id';
|
||||
}
|
||||
}
|
||||
@@ -309,18 +309,19 @@ class Prestudentstatus_model extends DB_Model
|
||||
{
|
||||
$this->addSelect('tbl_prestudentstatus.*,
|
||||
tbl_studienplan.bezeichnung AS studienplan_bezeichnung,
|
||||
tbl_studienplan.orgform_kurzbz AS orgform,
|
||||
tbl_orgform.orgform_kurzbz AS orgform,
|
||||
tbl_studienplan.sprache,
|
||||
tbl_orgform.bezeichnung_mehrsprachig AS bezeichnung_orgform,
|
||||
tbl_status.bezeichnung_mehrsprachig,
|
||||
tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund,
|
||||
tbl_studiengang.bezeichnung AS stg_bezeichnung,
|
||||
tbl_studiengang.email');
|
||||
$this->addJoin('lehre.tbl_studienplan', 'studienplan_id', 'LEFT');
|
||||
$this->addJoin('lehre.tbl_studienordnung', 'studienordnung_id', 'LEFT');
|
||||
$this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT');
|
||||
$this->addJoin('public.tbl_status', 'tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz');
|
||||
$this->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
|
||||
$this->addJoin('bis.tbl_orgform', 'tbl_studienplan.orgform_kurzbz = tbl_orgform.orgform_kurzbz', 'LEFT');
|
||||
$this->addJoin('bis.tbl_orgform', 'COALESCE(tbl_studienplan.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) = tbl_orgform.orgform_kurzbz', 'LEFT');
|
||||
$this->db->where('tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz');
|
||||
|
||||
$where = array('prestudent_id' => $prestudent_id);
|
||||
@@ -365,7 +366,8 @@ class Prestudentstatus_model extends DB_Model
|
||||
$this->addJoin('public.tbl_studiensemester ss', 'studiensemester_kurzbz');
|
||||
$this->addJoin('public.tbl_person pers', 'person_id');
|
||||
$this->addJoin('public.tbl_studiengang g', 'p.studiengang_kz=g.studiengang_kz');
|
||||
$this->addJoin('bis.tbl_orgform o', 'g.orgform_kurzbz=o.orgform_kurzbz');
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
|
||||
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
|
||||
|
||||
$this->addOrder($this->dbTable . '.datum', 'DESC');
|
||||
$this->addOrder($this->dbTable . '.insertamum', 'DESC');
|
||||
|
||||
@@ -322,7 +322,7 @@ class Reihungstest_model extends DB_Model
|
||||
JOIN lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id)
|
||||
LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code)
|
||||
WHERE rt_id = ?
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = \'Interessent\'
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) IN (\'Interessent\', \'Bewerber\')
|
||||
AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz
|
||||
AND bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND bestaetigtam IS NOT NULL
|
||||
@@ -411,7 +411,7 @@ class Reihungstest_model extends DB_Model
|
||||
JOIN lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id)
|
||||
LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code)
|
||||
WHERE rt.studiengang_kz = ?
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = \'Interessent\'
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) IN (\'Interessent\', \'Bewerber\')
|
||||
AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz
|
||||
AND bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND bestaetigtam IS NOT NULL
|
||||
@@ -462,7 +462,7 @@ class Reihungstest_model extends DB_Model
|
||||
LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code)
|
||||
LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz)
|
||||
WHERE rt_id = ?
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = \'Interessent\'
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) IN (\'Interessent\', \'Bewerber\')
|
||||
AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz
|
||||
AND bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND bestaetigtam IS NOT NULL
|
||||
|
||||
@@ -20,7 +20,7 @@ class Rueckstellung_model extends DB_Model
|
||||
$this->addLimit(1);
|
||||
$this->addJoin('tbl_rueckstellung_status', 'status_kurzbz');
|
||||
$this->addSelect('*,
|
||||
array_to_json(bezeichnung_mehrsprachig::varchar[])->>'.$language_index . 'as bezeichnung');
|
||||
array_to_json(bezeichnung_mehrsprachig::varchar[])->>'.$language_index . ' as bezeichnung');
|
||||
$this->addOrder('datum_bis', 'DESC');
|
||||
|
||||
$where['person_id'] = $person_id;
|
||||
|
||||
@@ -106,7 +106,7 @@ class Student_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the FH-Email for a student (not the private kontakt emailt)
|
||||
* Get the FH-Email for a student (not the private kontakt email)
|
||||
* @param $student_uid
|
||||
* @return string
|
||||
*/
|
||||
|
||||
@@ -30,7 +30,7 @@ class Anrechnung_model extends DB_Model
|
||||
*/
|
||||
public function createAnrechnungsantrag(
|
||||
$prestudent_id, $studiensemester_kurzbz, $lehrveranstaltung_id,
|
||||
$begruendung_id, $dms_id, $anmerkung_student = null
|
||||
$begruendung_id, $dms_id, $anmerkung_student = null, $begruendung_ects = null, $begruendung_lvinhalt = null
|
||||
)
|
||||
{
|
||||
// Start DB transaction
|
||||
@@ -44,6 +44,8 @@ class Anrechnung_model extends DB_Model
|
||||
'dms_id' => $dms_id,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'anmerkung_student' => $anmerkung_student,
|
||||
'begruendung_ects' => $begruendung_ects,
|
||||
'begruendung_lvinhalt' => $begruendung_lvinhalt,
|
||||
'insertvon' => $this->_uid
|
||||
));
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@ class Pruefung_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* NOTE(chris): not used
|
||||
* @return string
|
||||
*/
|
||||
protected function loadWhereThreeExamsFailed()
|
||||
@@ -115,8 +116,10 @@ class Pruefung_model extends DB_Model
|
||||
$this->addJoin('public.tbl_person pers', 'person_id');
|
||||
$this->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
|
||||
$this->addJoin('public.tbl_studiengang g', 'ps.studiengang_kz=g.studiengang_kz');
|
||||
$this->addJoin('bis.tbl_orgform o', 'g.orgform_kurzbz=o.orgform_kurzbz');
|
||||
$this->db->join('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ = ?', 'LEFT', false);
|
||||
$this->addJoin('public.tbl_prestudentstatus pss', 'pss.prestudent_id=ps.prestudent_id AND pss.studiensemester_kurzbz=le.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(ps.prestudent_id, le.studiensemester_kurzbz)', 'LEFT');
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
|
||||
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
|
||||
$this->db->join('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ = ?', 'LEFT', false);
|
||||
|
||||
$this->db->where("n.positiv", false);
|
||||
/* $this->db->where_in("p.pruefungstyp_kurzbz1", ['kommPruef','zusKommPruef']);*/
|
||||
@@ -146,8 +149,81 @@ class Pruefung_model extends DB_Model
|
||||
return $this->db->get_compiled_select($this->dbTable);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return stdClass
|
||||
*/
|
||||
public function loadWhereCommitteeExamsFailed()
|
||||
{
|
||||
$this->load->config('studierendenantrag');
|
||||
|
||||
$this->dbTable = 'lehre.tbl_pruefung p';
|
||||
|
||||
$this->addSelect('p.datum');
|
||||
|
||||
$this->addJoin('lehre.tbl_note n', 'note');
|
||||
|
||||
$this->db->where("n.positiv", false);
|
||||
$note_blacklist = $this->config->item('note_blacklist_wiederholung');
|
||||
if ($note_blacklist)
|
||||
$this->db->where_not_in("n.note", $note_blacklist);
|
||||
$this->db->where_in("p.pruefungstyp_kurzbz", ['kommPruef','zusKommPruef']);
|
||||
|
||||
return $this->load();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
protected function withDetailsForStudierendenAntrag()
|
||||
{
|
||||
$this->load->config('studierendenantrag');
|
||||
|
||||
$sprache_index = "SELECT index FROM public.tbl_sprache WHERE sprache='" . getUserLanguage() . "' LIMIT 1";
|
||||
|
||||
$this->addSelect('pers.vorname');
|
||||
$this->addSelect('pers.nachname');
|
||||
$this->addSelect('pers.person_id');
|
||||
$this->addSelect('s.matrikelnr');
|
||||
$this->addSelect('g.bezeichnung');
|
||||
$this->addSelect('g.studiengang_kz');
|
||||
$this->addSelect('o.bezeichnung_mehrsprachig[(' . $sprache_index . ')] AS orgform', false);
|
||||
$this->addSelect('ps.prestudent_id');
|
||||
$this->addSelect('lv.bezeichnung as lvbezeichnung');
|
||||
$this->addSelect('le.studiensemester_kurzbz');
|
||||
$this->addSelect('a.typ');
|
||||
$this->addSelect('campus.get_status_studierendenantrag(a.studierendenantrag_id) status');
|
||||
|
||||
$this->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id');
|
||||
$this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id');
|
||||
$this->addJoin('public.tbl_student s', 'student_uid');
|
||||
$this->addJoin('public.tbl_prestudent ps', 'prestudent_id');
|
||||
$this->addJoin('public.tbl_person pers', 'person_id');
|
||||
$this->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
|
||||
$this->addJoin('public.tbl_studiengang g', 'ps.studiengang_kz=g.studiengang_kz');
|
||||
$this->addJoin('public.tbl_prestudentstatus pss', 'pss.prestudent_id=ps.prestudent_id AND pss.studiensemester_kurzbz=le.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(ps.prestudent_id, le.studiensemester_kurzbz)', 'LEFT');
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
|
||||
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
|
||||
$this->addJoin('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ=' . $this->escape(Studierendenantrag_model::TYP_WIEDERHOLUNG), 'LEFT');
|
||||
|
||||
$this->db->where_in("get_rolle_prestudent(ps.prestudent_id, null)", $this->config->item('antrag_prestudentstatus_whitelist'));
|
||||
|
||||
$this->db->where("g.aktiv", true);
|
||||
|
||||
$statusgruende = $this->config->item('status_gruende_wiederholer');
|
||||
if (is_array($statusgruende) && !isEmptyArray($statusgruende)) {
|
||||
foreach ($statusgruende as $k => $v) {
|
||||
$statusgruende[$k] = $this->db->escape($v);
|
||||
}
|
||||
$this->db->where('lv.studiengang_kz NOT IN(
|
||||
SELECT ps1.studiengang_kz
|
||||
FROM
|
||||
public.tbl_prestudent ps1
|
||||
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
|
||||
WHERE pss.statusgrund_id in (' . implode(',', $statusgruende) . ')
|
||||
AND ps.prestudent_id = ps1.prestudent_id)', null, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $prestudent_id student_uid
|
||||
@@ -156,28 +232,28 @@ class Pruefung_model extends DB_Model
|
||||
*/
|
||||
public function loadWhereCommitteeExamFailedForPrestudent($prestudent_id)
|
||||
{
|
||||
$this->withDetailsForStudierendenAntrag();
|
||||
|
||||
$sql = $this->loadWhereThreeExamsFailed();
|
||||
$this->db->where('ps.prestudent_id', $prestudent_id);
|
||||
|
||||
$statusgruende = $this->config->item('status_gruende_wiederholer');
|
||||
if (!is_array($statusgruende))
|
||||
$statusgruende = [];
|
||||
|
||||
return $this->execQuery('select * from ( ' . $sql . ') temp where count >= 3 AND prestudent_id = ?', [
|
||||
Studierendenantrag_model::TYP_WIEDERHOLUNG,
|
||||
$statusgruende,
|
||||
$prestudent_id
|
||||
]);
|
||||
return $this->loadWhereCommitteeExamsFailed();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $status
|
||||
* @param \DateTime $maxDate
|
||||
* @param \DateTime $minDate
|
||||
*
|
||||
* @return stdClass
|
||||
*/
|
||||
public function getAllPrestudentsWhereCommitteeExamFailed($status, $maxDate, $minDate)
|
||||
{
|
||||
$this->load->model('education/Studierendenantrag_model', 'StudierendenantragModel');
|
||||
$this->withDetailsForStudierendenAntrag();
|
||||
|
||||
if ($maxDate)
|
||||
$this->db->where("p.datum < ", $maxDate->format('c'));
|
||||
$this->db->where("p.datum <= ", $maxDate->format('Y-m-d'));
|
||||
if ($minDate)
|
||||
$this->db->where("p.datum > ", $minDate->format('c'));
|
||||
$this->db->where("p.datum > ", $minDate->format('Y-m-d'));
|
||||
|
||||
$this->db->where("b.aktiv", true);
|
||||
|
||||
@@ -199,12 +275,6 @@ class Pruefung_model extends DB_Model
|
||||
$this->db->where('campus.get_status_studierendenantrag(a.studierendenantrag_id)', $status);
|
||||
}
|
||||
|
||||
$sql = $this->loadWhereThreeExamsFailed();
|
||||
|
||||
$statusgruende = $this->config->item('status_gruende_wiederholer');
|
||||
if (!is_array($statusgruende))
|
||||
$statusgruende = [];
|
||||
|
||||
return $this->execQuery('select * from ( ' . $sql . ') temp where count >= 3', [Studierendenantrag_model::TYP_WIEDERHOLUNG, $statusgruende]);
|
||||
return $this->loadWhereCommitteeExamsFailed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,18 +30,18 @@ class Studierendenantrag_model extends DB_Model
|
||||
{
|
||||
$sql = "SELECT index FROM public.tbl_sprache WHERE sprache='" . getUserLanguage() . "' LIMIT 1";
|
||||
|
||||
$this->addSelect('stg.bezeichnung');
|
||||
$this->addSelect('UPPER(stg.typ) || UPPER(stg.kurzbz) || \' \' || stg.bezeichnung AS bezeichnung');
|
||||
$this->addSelect('bezeichnung_mehrsprachig[(' . $sql . ')] AS orgform', false);
|
||||
$this->addSelect('s.studierendenantrag_id');
|
||||
$this->addSelect('matrikelnr');
|
||||
$this->addSelect('studienjahr_kurzbz');
|
||||
$this->addSelect('vorname');
|
||||
$this->addSelect('nachname');
|
||||
$this->addSelect('prestudent_id');
|
||||
$this->addSelect('p.prestudent_id');
|
||||
$this->addSelect('p.studiengang_kz');
|
||||
$this->addSelect('semester');
|
||||
$this->addSelect($this->dbTable . '.grund');
|
||||
$this->addSelect('datum');
|
||||
$this->addSelect($this->dbTable . '.datum');
|
||||
$this->addSelect('datum_wiedereinstieg');
|
||||
$this->addSelect($this->dbTable . '.typ');
|
||||
$this->addSelect('st.studierendenantrag_statustyp_kurzbz as status');
|
||||
@@ -52,8 +52,10 @@ class Studierendenantrag_model extends DB_Model
|
||||
$this->addJoin('public.tbl_student', 'prestudent_id');
|
||||
$this->addJoin('public.tbl_person', 'person_id');
|
||||
$this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz');
|
||||
$this->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
|
||||
$this->addJoin('bis.tbl_orgform', 'orgform_kurzbz');
|
||||
$this->addJoin('public.tbl_studiensemester ss', 'studiensemester_kurzbz');
|
||||
$this->addJoin('public.tbl_prestudentstatus ps', 'ps.prestudent_id=p.prestudent_id AND ps.studiensemester_kurzbz=ss.studiensemester_kurzbz AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, ss.studiensemester_kurzbz)');
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
|
||||
$this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, stg.orgform_kurzbz)');
|
||||
$this->addJoin(
|
||||
'campus.tbl_studierendenantrag_status as s',
|
||||
'campus.get_status_id_studierendenantrag('. $this->dbTable .'.studierendenantrag_id) = studierendenantrag_status_id'
|
||||
@@ -120,14 +122,17 @@ class Studierendenantrag_model extends DB_Model
|
||||
public function getStgAndSem($antrag_id)
|
||||
{
|
||||
$this->addSelect('p.studiengang_kz');
|
||||
$this->addSelect('stg.bezeichnung');
|
||||
$this->addSelect('s.ausbildungssemester');
|
||||
$this->addSelect('s.orgform_kurzbz');
|
||||
$this->addSelect('COALESCE(plan.orgform_kurzbz, s.orgform_kurzbz, stg.orgform_kurzbz) AS orgform_kurzbz');
|
||||
|
||||
$this->addJoin(
|
||||
'public.tbl_prestudentstatus s',
|
||||
$this->dbTable . '.prestudent_id=s.prestudent_id AND ' . $this->dbTable . '.studiensemester_kurzbz=s.studiensemester_kurzbz'
|
||||
);
|
||||
$this->addJoin('public.tbl_prestudent p', $this->dbTable . '.prestudent_id=p.prestudent_id');
|
||||
$this->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
|
||||
|
||||
$this->addOrder('s.datum', 'DESC');
|
||||
$this->addOrder('s.insertamum', 'DESC');
|
||||
@@ -188,15 +193,21 @@ class Studierendenantrag_model extends DB_Model
|
||||
$this->addSelect($this->dbTable . '.datum_wiedereinstieg');
|
||||
$this->addSelect($this->dbTable . '.grund');
|
||||
$this->addSelect($this->dbTable . '.dms_id');
|
||||
$this->addSelect("(SELECT count(1) FROM campus.tbl_studierendenantrag_status WHERE studierendenantrag_id = " . $this->dbTable . ".studierendenantrag_id AND studierendenantrag_statustyp_kurzbz = 'Genehmigt') AS isapproved", false);
|
||||
|
||||
$this->addJoin('public.tbl_prestudent p', 'prestudent_id', 'RIGHT');
|
||||
$this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz');
|
||||
$this->addJoin('bis.tbl_orgform', 'orgform_kurzbz');
|
||||
$this->addJoin('public.tbl_prestudentstatus ps', 'ps.prestudent_id=p.prestudent_id AND ps.studiensemester_kurzbz=' . $this->dbTable . '.studiensemester_kurzbz AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, ' . $this->dbTable . '.studiensemester_kurzbz)', 'LEFT');
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
|
||||
$this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, stg.orgform_kurzbz)');
|
||||
$this->addJoin(
|
||||
'campus.tbl_studierendenantrag_statustyp st',
|
||||
'campus.get_status_studierendenantrag(studierendenantrag_id)=st.studierendenantrag_statustyp_kurzbz',
|
||||
'LEFT'
|
||||
);
|
||||
|
||||
$this->db->where("(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=p.prestudent_id AND status_kurzbz='Student' LIMIT 1) IS NOT NULL", null, false);
|
||||
|
||||
|
||||
return $this->loadWhere([
|
||||
'p.person_id' => $person_id
|
||||
|
||||
@@ -70,6 +70,7 @@ class Studierendenantraglehrveranstaltung_model extends DB_Model
|
||||
'z.lehrveranstaltung_id=lv.lehrveranstaltung_id AND z.student_uid=s.student_uid AND z.studiensemester_kurzbz=a.studiensemester_kurzbz',
|
||||
'LEFT'
|
||||
);
|
||||
$this->addJoin('lehre.tbl_note zn', 'z.note = zn.note', 'LEFT');
|
||||
|
||||
return $this->loadWhere([
|
||||
'ps.prestudent_id' => $prestudent_id,
|
||||
@@ -77,7 +78,7 @@ class Studierendenantraglehrveranstaltung_model extends DB_Model
|
||||
'stat.studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
|
||||
'n.note <> ' => 0,
|
||||
$this->dbTable . '.studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'(n.note<>19 OR z.note IS NOT NULL)' => null
|
||||
'(n.note<>19 OR (z.note IS NOT NULL AND zn.positiv))' => null
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ class Studierendenantragstatus_model extends DB_Model
|
||||
const STATUS_REJECTED = 'Abgelehnt';
|
||||
const STATUS_PASS = 'Verzichtet';
|
||||
const STATUS_REOPENED = 'Offen';
|
||||
const STATUS_CANCELLED = 'Zurückgezogen';
|
||||
const STATUS_CANCELLED = 'Zurueckgezogen';
|
||||
const STATUS_LVSASSIGNED = 'Lvszugewiesen';
|
||||
const STATUS_REMINDERSENT = 'EmailVersandt';
|
||||
const STATUS_REQUESTSENT_1 = 'ErsteAufforderungVersandt';
|
||||
|
||||
@@ -572,20 +572,6 @@ class Studiengang_model extends DB_Model
|
||||
return $this->execQuery($query, $params);
|
||||
}
|
||||
|
||||
public function loadWithOrgform($studiengang_kzs)
|
||||
{
|
||||
$sql = "SELECT index FROM public.tbl_sprache WHERE sprache='" . getUserLanguage() . "' LIMIT 1";
|
||||
|
||||
$this->addSelect($this->dbTable . '.*');
|
||||
$this->addSelect('o.bezeichnung_mehrsprachig[(' . $sql . ')] AS orgform');
|
||||
|
||||
$this->addJoin('bis.tbl_orgform o', 'orgform_kurzbz');
|
||||
|
||||
$this->db->where_in($this->dbTable . '.studiengang_kz', $studiengang_kzs);
|
||||
|
||||
return $this->load();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $studiengang_kzs
|
||||
* @param array $not_antrag_typ (optional) If the prestudent has an antrag with one of the specified types it will be excluded from the result
|
||||
@@ -618,8 +604,10 @@ class Studiengang_model extends DB_Model
|
||||
AND ps.ausbildungssemester=get_absem_prestudent(p.prestudent_id, NULL)
|
||||
AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, NULL)'
|
||||
);
|
||||
$this->addJoin('bis.tbl_orgform o', $this->dbTable . '.orgform_kurzbz=o.orgform_kurzbz');
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id');
|
||||
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz)=o.orgform_kurzbz');
|
||||
$this->addJoin('public.tbl_person pers', 'person_id');
|
||||
$this->addJoin('public.tbl_student stud', 'p.prestudent_id=stud.prestudent_id', 'LEFT');
|
||||
|
||||
$this->db->where_in($this->dbTable . '.studiengang_kz', $studiengang_kzs);
|
||||
$this->db->where_in('ps.status_kurzbz', $this->config->item('antrag_prestudentstatus_whitelist'));
|
||||
@@ -646,6 +634,7 @@ class Studiengang_model extends DB_Model
|
||||
$this->db->group_start();
|
||||
$this->db->where('pers.vorname ILIKE', "%" . $q . "%");
|
||||
$this->db->or_where('pers.nachname ILIKE', "%" . $q . "%");
|
||||
$this->db->or_where('stud.student_uid ILIKE', "%" . $q . "%");
|
||||
$this->db->or_where($this->dbTable . '.bezeichnung ILIKE', "%" . $q . "%");
|
||||
if (is_numeric($q))
|
||||
$this->db->or_where('p.prestudent_id', $q);
|
||||
|
||||
@@ -205,6 +205,16 @@ class Studiensemester_model extends DB_Model
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz));
|
||||
}
|
||||
|
||||
public function getAktAndFutureSemester()
|
||||
{
|
||||
$query = 'SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE start >= NOW() OR (start <= NOW() AND ende >= NOW())
|
||||
ORDER BY start';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $student_uid
|
||||
*
|
||||
|
||||
@@ -326,10 +326,12 @@ class Person_model extends DB_Model
|
||||
|
||||
SELECT p2.person_id
|
||||
FROM tbl_person p1
|
||||
JOIN tbl_prestudent ps ON p1.person_id = ps.person_id
|
||||
INNER JOIN (
|
||||
SELECT vorname, nachname, gebdatum, person_id
|
||||
FROM tbl_person
|
||||
) p2
|
||||
SELECT vorname, nachname, gebdatum, person.person_id
|
||||
FROM tbl_person person
|
||||
JOIN tbl_prestudent sps ON person.person_id = sps.person_id
|
||||
) p2
|
||||
ON (lower(p1.vorname) = lower(p2.vorname) AND lower(p1.nachname) = lower(p2.nachname) AND p1.gebdatum = p2.gebdatum)
|
||||
WHERE p1.person_id != p2.person_id AND (p1.person_id = ?)";
|
||||
|
||||
|
||||
@@ -0,0 +1,274 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'UHSTAT1Formular',
|
||||
'jquery3' => true,
|
||||
'bootstrap3' => true,
|
||||
'fontawesome4' => true,
|
||||
'phrases' => array(
|
||||
'ui' => array('speichern')
|
||||
),
|
||||
'customCSSs' => array('public/css/codex/uhstat1.css'),
|
||||
'customJSs' => array('public/js/codex/uhstat1.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?php
|
||||
// initialise form fields
|
||||
$mutter_geburtsjahr = isset($uhstatData->mutter_geburtsjahr) ? $uhstatData->mutter_geburtsjahr : set_value('mutter_geburtsjahr');
|
||||
$mutter_geburtsstaat = isset($uhstatData->mutter_geburtsstaat) ? $uhstatData->mutter_geburtsstaat : set_value('mutter_geburtsstaat');
|
||||
$mutter_bildungsstaat = isset($uhstatData->mutter_bildungsstaat) ? $uhstatData->mutter_bildungsstaat : set_value('mutter_bildungsstaat');
|
||||
$mutter_bildungmax = isset($uhstatData->mutter_bildungmax) ? $uhstatData->mutter_bildungmax : set_value('mutter_bildungmax');
|
||||
$vater_geburtsjahr = isset($uhstatData->vater_geburtsjahr) ? $uhstatData->vater_geburtsjahr : set_value('vater_geburtsjahr');
|
||||
$vater_geburtsstaat = isset($uhstatData->vater_geburtsstaat) ? $uhstatData->vater_geburtsstaat : set_value('vater_geburtsstaat');
|
||||
$vater_bildungsstaat = isset($uhstatData->vater_bildungsstaat) ? $uhstatData->vater_bildungsstaat : set_value('vater_bildungsstaat');
|
||||
$vater_bildungmax = isset($uhstatData->vater_bildungmax) ? $uhstatData->vater_bildungmax : set_value('vater_bildungmax');
|
||||
$readOnly = isset($formMetaData['readOnly']);
|
||||
$disabled = $readOnly ? ' disabled' : '';
|
||||
$editPermission = isset($formMetaData['editPermission']) && $formMetaData['editPermission'] === true;
|
||||
$deletePermission = isset($formMetaData['deletePermission']) && $formMetaData['deletePermission'] === true;
|
||||
$saved = isset($saved) && $saved === true;
|
||||
?>
|
||||
|
||||
<div class='container' id='uhstat1Container'>
|
||||
<h1 class="text-center">
|
||||
<?php echo isset($formMetaData['nachname'])
|
||||
? 'UHSTAT1 Daten für '.(isset($formMetaData['vorname']) ? $formMetaData['vorname'].' ' : '').$formMetaData['nachname']
|
||||
: ''
|
||||
?>
|
||||
</h1>
|
||||
<div id="uhstat1Subcontainer">
|
||||
<input type='hidden' id='uhstat1Saved' value='<?php echo $saved ? 1 : 0 ?>' />
|
||||
<h2><?php echo $this->p->t('uhstat', 'uhstat1AnmeldungUeberschrift') ?></h2>
|
||||
<p>
|
||||
<?php echo $this->p->t('uhstat', 'rechtsbelehrung') ?>
|
||||
</p>
|
||||
<p>
|
||||
<?php echo $this->p->t('uhstat', 'uhstat1AnmeldungEinleitungstext') ?>
|
||||
</p>
|
||||
<br>
|
||||
<?php if ($editPermission): ?>
|
||||
<?php if (isset($successMessage) && !isEmptyString($successMessage)): ?>
|
||||
<div class="alert alert-success" id="uhstat_success_alert">
|
||||
<button type="button" class="close" data-dismiss="alert">x</button>
|
||||
<strong><?php echo $successMessage ?></strong>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($errorMessage) && !isEmptyString($errorMessage)): ?>
|
||||
<div class='alert alert-danger text-center'><?php echo $errorMessage ?></div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<form class="form-horizontal" method="POST" action="<?php echo site_url('codex/UHSTAT1/saveUHSTAT1Data') ?>" id="uhstat1Form">
|
||||
<input type='hidden' id='person_id' name='person_id' value='<?php echo $formMetaData['person_id'] ?>' />
|
||||
<fieldset>
|
||||
<legend><?php echo $this->p->t('uhstat', 'angabenErziehungsberechtigte') ?></legend>
|
||||
<p>
|
||||
<?php echo $this->p->t('uhstat', 'angabenErziehungsberechtigteEinleitungstext') ?>
|
||||
</p>
|
||||
<br>
|
||||
<h4><?php echo $this->p->t('uhstat', 'erziehungsberechtigtePersonEins') ?></h4>
|
||||
<div class="form-group">
|
||||
<label for="mutter_geburtsjahr" class="col-sm-3 control-label"><?php echo ucfirst($this->p->t('uhstat', 'geburtsjahr')) ?></label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="mutter_geburtsjahr" id="mutter_geburtsjahr" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<?php foreach ($formMetaData['jahre'] as $jahr): ?>
|
||||
<option
|
||||
value="<?php echo $jahr ?>"
|
||||
<?php echo $jahr == $mutter_geburtsjahr ? " selected" : "" ?>>
|
||||
<?php echo $jahr ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php echo form_error('mutter_geburtsjahr'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mutter_geburtsstaat" class="col-sm-3 control-label">
|
||||
<?php echo ucfirst($this->p->t('uhstat', 'geburtsstaat')) ?>
|
||||
<br>
|
||||
<?php echo '('.ucfirst($this->p->t('uhstat', 'inDenHeutigenGrenzen')).')' ?>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="mutter_geburtsstaat" id="mutter_geburtsstaat" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<?php foreach ($formMetaData['nation'] as $nation): ?>
|
||||
<option
|
||||
value="<?php echo $nation->nation_code ?>"
|
||||
<?php echo $mutter_geburtsstaat == $nation->nation_code ? " selected" : "" ?>>
|
||||
<?php echo $nation->nation_text ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php echo form_error('mutter_geburtsstaat'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mutter_bildungsstaat" class="col-sm-3 control-label">
|
||||
<?php echo ucfirst($this->p->t('uhstat', 'hoechsterAbschlussStaat')) ?>
|
||||
<br>
|
||||
<?php echo '('.ucfirst($this->p->t('uhstat', 'inDenHeutigenGrenzen')).')' ?>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="mutter_bildungsstaat" id="mutter_bildungsstaat" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<?php foreach ($formMetaData['nation'] as $nation): ?>
|
||||
<option
|
||||
value="<?php echo $nation->nation_code ?>"
|
||||
<?php echo $mutter_bildungsstaat == $nation->nation_code ? " selected" : "" ?>>
|
||||
<?php echo $nation->nation_text ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php echo form_error('mutter_bildungsstaat'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mutter_bildungmax" class="col-sm-3 control-label"><?php echo ucfirst($this->p->t('uhstat', 'hoechsterAbschluss')) ?></label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="mutter_bildungmax" id="mutter_bildungmax" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<optgroup label="<?php echo $this->p->t('uhstat', 'wennAbschlussInOesterreich') ?>">
|
||||
<?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?>
|
||||
<?php foreach ($formMetaData['abschluss_oesterreich'] as $abschluss): ?>
|
||||
<option
|
||||
value="<?php echo $abschluss->ausbildung_code ?>"
|
||||
<?php echo $mutter_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
|
||||
<?php echo $abschluss->bezeichnung ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</optgroup>
|
||||
<optgroup label="<?php echo $this->p->t('uhstat', 'wennAbschlussNichtInOesterreich') ?>">
|
||||
<?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?>
|
||||
<?php foreach ($formMetaData['abschluss_nicht_oesterreich'] as $abschluss): ?>
|
||||
<option
|
||||
value="<?php echo $abschluss->ausbildung_code ?>"
|
||||
<?php echo $mutter_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
|
||||
<?php echo $abschluss->bezeichnung ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</optgroup>
|
||||
</select>
|
||||
<?php echo form_error('mutter_bildungmax'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<h4><?php echo $this->p->t('uhstat', 'erziehungsberechtigtePersonZwei') ?></h4>
|
||||
<div class="form-group">
|
||||
<label for="vater_geburtsjahr" class="col-sm-3 control-label"><?php echo ucfirst($this->p->t('uhstat', 'geburtsjahr')) ?></label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="vater_geburtsjahr" id="vater_geburtsjahr" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<?php foreach ($formMetaData['jahre'] as $jahr): ?>
|
||||
<option
|
||||
value="<?php echo $jahr ?>"
|
||||
<?php echo $vater_geburtsjahr == $jahr ? " selected" : "" ?>>
|
||||
<?php echo $jahr ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php echo form_error('vater_geburtsjahr'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="vater_geburtsstaat" class="col-sm-3 control-label">
|
||||
<?php echo ucfirst($this->p->t('uhstat', 'geburtsstaat')) ?>
|
||||
<br>
|
||||
<?php echo '('.ucfirst($this->p->t('uhstat', 'inDenHeutigenGrenzen')).')' ?>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="vater_geburtsstaat" id="vater_geburtsstaat" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<?php foreach ($formMetaData['nation'] as $nation): ?>
|
||||
<option
|
||||
value="<?php echo $nation->nation_code ?>"
|
||||
<?php echo $vater_geburtsstaat == $nation->nation_code ? " selected" : "" ?>>
|
||||
<?php echo $nation->nation_text ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php echo form_error('vater_geburtsstaat'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="vater_bildungsstaat" class="col-sm-3 control-label">
|
||||
<?php echo $this->p->t('uhstat', 'hoechsterAbschlussStaat') ?>
|
||||
<br>
|
||||
<?php echo '('.ucfirst($this->p->t('uhstat', 'inDenHeutigenGrenzen')).')' ?>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="vater_bildungsstaat" id="vater_bildungsstaat" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<?php foreach ($formMetaData['nation'] as $nation): ?>
|
||||
<option
|
||||
value="<?php echo $nation->nation_code ?>"
|
||||
<?php echo $vater_bildungsstaat == $nation->nation_code ? " selected" : "" ?>>
|
||||
<?php echo $nation->nation_text ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php echo form_error('vater_bildungsstaat'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="vater_bildungmax" class="col-sm-3 control-label">
|
||||
<?php echo ucfirst($this->p->t('uhstat', 'hoechsterAbschluss')) ?>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<select type="text" name="vater_bildungmax" id="vater_bildungmax" class="form-control" <?php echo $disabled ?>>
|
||||
<option disabled selected value=""><?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?></option>
|
||||
<optgroup label="<?php echo $this->p->t('uhstat', 'wennAbschlussInOesterreich') ?>">
|
||||
<?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?>
|
||||
<?php foreach ($formMetaData['abschluss_oesterreich'] as $abschluss): ?>
|
||||
<option
|
||||
value="<?php echo $abschluss->ausbildung_code ?>"
|
||||
<?php echo $vater_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
|
||||
<?php echo $abschluss->bezeichnung ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</optgroup>
|
||||
<optgroup label="<?php echo $this->p->t('uhstat', 'wennAbschlussNichtInOesterreich') ?>">
|
||||
<?php echo $this->p->t('uhstat', 'bitteAuswaehlen') ?>
|
||||
<?php foreach ($formMetaData['abschluss_nicht_oesterreich'] as $abschluss): ?>
|
||||
<option
|
||||
value="<?php echo $abschluss->ausbildung_code ?>"
|
||||
<?php echo $vater_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
|
||||
<?php echo $abschluss->bezeichnung ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</optgroup>
|
||||
</select>
|
||||
<?php echo form_error('vater_bildungmax'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php if ($editPermission && !$readOnly): ?>
|
||||
<br>
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12 text-right">
|
||||
<button class="btn btn-success btn-md" type="submit" id="uhstat1Submit">
|
||||
<?php echo $this->p->t('uhstat', 'pruefenUndSpeichern') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php endif; ?>
|
||||
</form>
|
||||
<?php if ($deletePermission && !$readOnly): ?>
|
||||
<form class="form-horizontal" method="POST" action="<?php echo site_url('codex/UHSTAT1/deleteUHSTAT1Data') ?>" id="uhstat1DeleteForm">
|
||||
<input type='hidden' id='person_id' name='person_id' value='<?php echo $formMetaData['person_id'] ?>' />
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
<button class="btn btn-danger btn-md" type="submit" id="uhstat1Delete">
|
||||
<?php echo $this->p->t('uhstat', 'datenLoeschen') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -11,7 +11,7 @@ $sitesettings = array(
|
||||
'customJSModules' => array('public/js/apps/lehre/Antrag.js'),
|
||||
'customCSSs' => array(
|
||||
'public/css/Fhc.css',
|
||||
'vendor/vuepic/vue-datepicker-css/main.css'
|
||||
'vendor/vuejs/vuedatepicker_css/main.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
)
|
||||
@@ -35,13 +35,13 @@ $this->load->view(
|
||||
antrag-type="<?= $antrag_type; ?>"
|
||||
studierendenantrag-id="<?= $studierendenantrag_id; ?>"
|
||||
v-model:info-array="infoArray"
|
||||
v-model:status-msg="statusMsg"
|
||||
v-model:status-severity="statusSeverity"
|
||||
v-model:status-msg="status.msg"
|
||||
v-model:status-severity="status.severity"
|
||||
>
|
||||
</studierendenantrag-antrag>
|
||||
</div>
|
||||
<div class="col-sm-4 mb-3">
|
||||
<studierendenantrag-status :msg="statusMsg" :severity="statusSeverity"></studierendenantrag-status>
|
||||
<studierendenantrag-status :msg="status.msg" :severity="status.severity"></studierendenantrag-status>
|
||||
<studierendenantrag-infoblock :infos="infoArray"></studierendenantrag-infoblock>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,6 +13,7 @@ $sitesettings = array(
|
||||
'primevue3' => true,
|
||||
'phrases' => array(
|
||||
'global',
|
||||
'ui',
|
||||
'studierendenantrag',
|
||||
'lehre',
|
||||
'person',
|
||||
|
||||
@@ -39,7 +39,7 @@ $this->load->view(
|
||||
<p><?= $this->p->t('studierendenantrag', 'calltoaction_' . $type); ?></p>
|
||||
<hr>
|
||||
<a href="<?= site_url('lehre/Studierendenantrag/' . strtolower($type) . '/' . $prestudent_id); ?>" class="btn btn-outline-secondary">
|
||||
<i class="fa-regular fa-plus fa-xl"></i> <?= $this->p->t('studierendenantrag', 'antrag_typ_' . $type); ?>
|
||||
<i class="fa fa-plus"></i> <?= $this->p->t('studierendenantrag', 'antrag_typ_' . $type); ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
@@ -82,7 +82,7 @@ $this->load->view(
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<pre><?= $antrag->grund; ?></pre>
|
||||
<textarea class="form-control" style="width: 100%; height: 250px;" readonly><?= $antrag->grund; ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -101,14 +101,17 @@ $this->load->view(
|
||||
</td>
|
||||
<td>
|
||||
<a href="<?= site_url('lehre/Studierendenantrag/' . strtolower($antrag->typ) . '/' . $antrag->prestudent_id . '/' . $antrag->studierendenantrag_id); ?>"><i class="fa-solid fa-pen" title="<?= $this->p->t('studierendenantrag', 'btn_edit'); ?>"></i></a>
|
||||
<?php if ($antrag->typ != Studierendenantrag_model::TYP_WIEDERHOLUNG && $antrag->status == Studierendenantragstatus_model::STATUS_APPROVED) { ?>
|
||||
<a class="ms-2" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xml=Antrag' . str_replace('AbmeldungStgl', 'Abmeldung', $antrag->typ) . '.xml.php&xsl=Antrag' . str_replace('AbmeldungStgl', 'Abmeldung', $antrag->typ) . '&id=' . $antrag->studierendenantrag_id . '&uid=' . getAuthUID()); ?>"><i class="fa-solid fa-download" title="<?= $this->p->t('studierendenantrag', 'btn_download_antrag'); ?>"></i></a>
|
||||
<?php if ($antrag->typ != Studierendenantrag_model::TYP_WIEDERHOLUNG && in_array($antrag->status, [
|
||||
Studierendenantragstatus_model::STATUS_APPROVED,
|
||||
Studierendenantragstatus_model::STATUS_OBJECTED,
|
||||
Studierendenantragstatus_model::STATUS_OBJECTION_DENIED,
|
||||
Studierendenantragstatus_model::STATUS_REMINDERSENT
|
||||
])) { ?>
|
||||
<a class="ms-2" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xml=Antrag' . $antrag->typ . '.xml.php&xsl=Antrag' . $antrag->typ . '&id=' . $antrag->studierendenantrag_id . '&uid=' . getAuthUID()); ?>"><i class="fa-solid fa-download" title="<?= $this->p->t('studierendenantrag', 'btn_download_antrag'); ?>"></i></a>
|
||||
<?php } ?>
|
||||
<?php if ($antrag->typ == Studierendenantrag_model::TYP_WIEDERHOLUNG && $antrag->status == Studierendenantragstatus_model::STATUS_APPROVED) { ?>
|
||||
<a class="btn btn-outline-secondary" href="#modalgrund<?= $antrag->studierendenantrag_id; ?>" data-bs-toggle="modal">
|
||||
<?= $this->p->t('studierendenantrag', 'btn_show_lvs'); ?>
|
||||
</a>
|
||||
<lv-popup id="modalgrund<?= $antrag->studierendenantrag_id; ?>" antrag-id = "<?= $antrag->studierendenantrag_id; ?>">
|
||||
<a class="ms-2" href="#modallv<?= $antrag->studierendenantrag_id; ?>" data-bs-toggle="modal"><?= $this->p->t('studierendenantrag', 'btn_show_lvs'); ?></a>
|
||||
<lv-popup id="modallv<?= $antrag->studierendenantrag_id; ?>" antrag-id = "<?= $antrag->studierendenantrag_id; ?>">
|
||||
<?= $this->p->t('studierendenantrag', 'my_lvs'); ?>
|
||||
</lv-popup>
|
||||
<?php } ?>
|
||||
|
||||
@@ -92,85 +92,93 @@ $this->load->view(
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-4">
|
||||
<table class="table table-bordered table-condensed table-fixed">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
|
||||
<th class="col-xs-5"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
|
||||
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
|
||||
<td><?php echo $antragData->matrikelnr ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
|
||||
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
|
||||
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
|
||||
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
|
||||
<td><?php echo $antragData->stg_bezeichnung ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
|
||||
<td><?php echo $antragData->lv_bezeichnung ?></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<table class="table table-bordered table-condensed table-fixed">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'ects'); ?></th>
|
||||
<td colspan="3"><span id="ects"><?php echo $antragData->ects ?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4">
|
||||
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
|
||||
<td>
|
||||
<?php $len = count($antragData->lektoren) - 1 ?>
|
||||
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
|
||||
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
|
||||
echo $key === $len ? '' : ', ' ?>
|
||||
<?php endforeach; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
|
||||
<td><span id="ects"><?php echo $antragData->ects ?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-5">
|
||||
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
|
||||
<span class="approveAnrechnungDetail-anrechnungEctsTooltip"
|
||||
data-toggle="tooltip" data-placement="right"
|
||||
title="<?php echo $this->p->t('anrechnung', 'anrechnungEctsTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</span>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<td>
|
||||
Total: <span id="sumEctsTotal"><?php echo number_format($antragData->sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?></span>
|
||||
[Schulisch: <span id="sumEctsSchulisch" value="<?php echo $antragData->sumEctsSchulisch ?>"><?php echo $antragData->sumEctsSchulisch ?></span> /
|
||||
Beruflich: <span id="sumEctsBeruflich" value="<?php echo $antragData->sumEctsBeruflich ?>"><?php echo $antragData->sumEctsBeruflich ?></span> ]
|
||||
<span id="sumEctsMsg"></span>
|
||||
<span id="sumEctsMsg"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<table class="table table-bordered table-condensed table-fixed">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
|
||||
<td colspan="3">
|
||||
<?php $len = count($antragData->lektoren) - 1 ?>
|
||||
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
|
||||
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
|
||||
echo $key === $len ? '' : ', ' ?>
|
||||
<?php endforeach; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
|
||||
<td colspan="3"><?php echo $antragData->zgv ?></td>
|
||||
<th class="col-xs-3"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
|
||||
<td><?php echo $antragData->zgv ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></th>
|
||||
<td colspan="3"><?php echo $anrechnungData->anmerkung ?></td>
|
||||
<td><?php echo $anrechnungData->anmerkung ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?></th>
|
||||
<td colspan="3">
|
||||
<td>
|
||||
<a href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
|
||||
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('global', 'begruendung'); ?></th>
|
||||
<td colspan="3"><span id="begruendung_id" data-begruendung_id="<?php echo $anrechnungData->begruendung_id ?>" ><?php echo $anrechnungData->begruendung ?></span></td>
|
||||
<td><span id="begruendung_id" data-begruendung_id="<?php echo $anrechnungData->begruendung_id ?>" ><?php echo $anrechnungData->begruendung ?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?></th>
|
||||
<td><span><?php echo $anrechnungData->begruendung_ects ?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?></th>
|
||||
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<?php
|
||||
const HERKUNFT_DER_KENNTNISSE_MAX_LENGTH = 125;
|
||||
const CHAR_LENGTH125 = 125;
|
||||
const CHAR_LENGTH150 = 150;
|
||||
const CHAR_LENGTH500 = 500;
|
||||
const CHAR_LENGTH1000 = 1000;
|
||||
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
@@ -197,6 +200,46 @@ $this->load->view(
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Begruendung ECTS -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<b><?php echo $this->p->t('anrechnung', 'begruendungEcts'); ?></b> 
|
||||
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
|
||||
title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungEctsTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<textarea class="form-control" name="begruendung_ects" rows="1" id="requestAnrechnung-begruendungEcts"
|
||||
maxlength="<?php echo CHAR_LENGTH150 ?>" required><?php echo $anrechnungData->begruendung_ects; ?></textarea>
|
||||
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungEcts-charCounter"><?php echo CHAR_LENGTH150 ?></span></span></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Begruendung LV Inhalt -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<b><?php echo $this->p->t('anrechnung', 'begruendungLvinhalt'); ?></b> 
|
||||
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
|
||||
title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungLvinhaltTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<textarea class="form-control" name="begruendung_lvinhalt" rows="7" id="requestAnrechnung-begruendungLvinhalt"
|
||||
minlength="<?php echo CHAR_LENGTH500 ?>"
|
||||
maxlength="<?php echo CHAR_LENGTH1000 ?>" required><?php echo $anrechnungData->begruendung_lvinhalt; ?></textarea>
|
||||
<small><span class="text-muted pull-right"> / <?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMax"><?php echo CHAR_LENGTH1000 ?></span></span></small>
|
||||
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'fehlendeMinZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMin"><?php echo CHAR_LENGTH500 ?></span></span></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Dokument Upload-->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
@@ -242,8 +285,8 @@ $this->load->view(
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<textarea class="form-control" name="anmerkung" rows="1" id="requestAnrechnung-herkunftDerKenntnisse"
|
||||
maxlength="<?php echo HERKUNFT_DER_KENNTNISSE_MAX_LENGTH ?>" required><?php echo $anrechnungData->anmerkung; ?></textarea>
|
||||
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo HERKUNFT_DER_KENNTNISSE_MAX_LENGTH ?></span></span></small>
|
||||
maxlength="<?php echo CHAR_LENGTH125 ?>" required><?php echo $anrechnungData->anmerkung; ?></textarea>
|
||||
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo CHAR_LENGTH125 ?></span></span></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -16,6 +16,23 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Referenzbeispiele ECTS Berechnung panel -->
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading" role="tab" id="headingBegruendung">
|
||||
<h4 class="panel-title">
|
||||
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseBegruendung"
|
||||
aria-expanded="false" aria-controls="collapseBegruendung">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i> 
|
||||
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
|
||||
</a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseBegruendung" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingBegruendung">
|
||||
<div class="panel-body">
|
||||
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Nachweisdokumente: Voraussetzung panel -->
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading" role="tab" id="headingTwo">
|
||||
|
||||
@@ -84,49 +84,50 @@ $this->load->view(
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-4">
|
||||
<table class="table table-bordered table-condensed table-fixed">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
|
||||
<th class="col-xs-5"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
|
||||
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
|
||||
<td><?php echo $antragData->matrikelnr ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
|
||||
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
|
||||
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
|
||||
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
|
||||
<td><?php echo $antragData->stg_bezeichnung ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
|
||||
<td><?php echo $antragData->lv_bezeichnung ?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<table class="table table-bordered table-condensed table-fixed">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'ects'); ?></th>
|
||||
<td><?php echo $antragData->ects ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
|
||||
<td>
|
||||
<tr>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
|
||||
<td><?php echo $antragData->ects ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
|
||||
<td>
|
||||
<?php $len = count($antragData->lektoren) - 1 ?>
|
||||
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
|
||||
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
|
||||
echo $key === $len ? '' : ', ' ?>
|
||||
<?php endforeach; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<table class="table table-bordered table-condensed table-fixed">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
|
||||
<td><?php echo $antragData->zgv ?></td>
|
||||
@@ -142,6 +143,14 @@ $this->load->view(
|
||||
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?></th>
|
||||
<td><span><?php echo $anrechnungData->begruendung_ects ?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?></th>
|
||||
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -15,6 +15,22 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading" role="tab" id="headingBegruendung">
|
||||
<h4 class="panel-title">
|
||||
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseBegruendung"
|
||||
aria-expanded="false" aria-controls="collapseBegruendung">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i> 
|
||||
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
|
||||
</a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseBegruendung" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingBegruendung">
|
||||
<div class="panel-body">
|
||||
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading" role="tab" id="headingZero">
|
||||
<h4 class="panel-title">
|
||||
|
||||
@@ -142,7 +142,7 @@ FROM
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
TRUNC(lema.semesterstunden, 1) AS "stunden",
|
||||
TRUNC(lema.semesterstunden, 2) AS "stunden",
|
||||
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
@@ -232,7 +232,7 @@ FROM
|
||||
SELECT
|
||||
pa.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
pa.projektarbeit_id AS "projektarbeit_id",
|
||||
pa.projektarbeit_id::text AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
@@ -375,9 +375,9 @@ $filterWidgetArray = array(
|
||||
orgform_kurzbz: {visible: false, headerFilter:"input"},
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}
|
||||
},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
|
||||
@@ -149,7 +149,7 @@ FROM
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(person.nachname || \' \' || person.vorname) AS "lektor",
|
||||
TRUNC(lema.semesterstunden, 1) AS "stunden",
|
||||
TRUNC(lema.semesterstunden, 2) AS "stunden",
|
||||
lema.stundensatz,
|
||||
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
@@ -400,9 +400,9 @@ $filterWidgetArray = array(
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 2},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}},
|
||||
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
|
||||
@@ -159,7 +159,7 @@ FROM
|
||||
(
|
||||
SELECT
|
||||
/* lehrauftraege also planned with dummies, therefore personalnummer is needed */
|
||||
ma.personalnummer,
|
||||
ma.personalnummer::text,
|
||||
lema.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.bezeichnung AS "lv_bezeichnung",
|
||||
@@ -179,7 +179,7 @@ FROM
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(person.nachname || \' \' || person.vorname) AS "lektor",
|
||||
TRUNC(lema.semesterstunden, 1) AS "stunden",
|
||||
TRUNC(lema.semesterstunden, 2) AS "stunden",
|
||||
lema.stundensatz,
|
||||
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
@@ -219,7 +219,7 @@ FROM
|
||||
(SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
ON tbl_benutzer.uid = ma.mitarbeiter_uid
|
||||
WHERE
|
||||
person_id = tmp_projektbetreuung.person_id
|
||||
@@ -272,7 +272,7 @@ FROM
|
||||
pa.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.bezeichnung AS "lv_bezeichnung",
|
||||
pa.projektarbeit_id AS "projektarbeit_id",
|
||||
pa.projektarbeit_id::text AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
@@ -414,7 +414,7 @@ $filterWidgetArray = array(
|
||||
row_index: {visible: false},
|
||||
personalnummer: {visible: false, headerFilter:"input"},
|
||||
auftrag: {
|
||||
headerFilter:"input", widthGrow: 2,
|
||||
headerFilter:"input", widthGrow: 2,
|
||||
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
|
||||
},
|
||||
stg_typ_kurzbz: {headerFilter:"input"},
|
||||
@@ -432,9 +432,9 @@ $filterWidgetArray = array(
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 2},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}},
|
||||
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
'jqueryui1' => true,
|
||||
'ajaxlib' => true,
|
||||
'tablesorter2' => true,
|
||||
'tinymce4' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'addons' => true,
|
||||
'navigationwidget' => true,
|
||||
@@ -126,10 +125,18 @@
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-4 table-responsive">
|
||||
<form action="<?php echo base_url('soap/datenverbund_client.php?action=pruefeBPK');?>" method="POST" target="_blank">
|
||||
<form
|
||||
action="<?php echo base_url('soap/datenverbund_client.php?action=pruefeBPK');?>"
|
||||
method="POST"
|
||||
target="_blank"
|
||||
>
|
||||
<input type="hidden" name="vorname" value="<?php echo $stammdaten->vorname; ?>"/>
|
||||
<input type="hidden" name="nachname" value="<?php echo $stammdaten->nachname; ?>"/>
|
||||
<input type="hidden" name="geburtsdatum" value="<?php echo mb_str_replace('-', '',$stammdaten->gebdatum); ?>"/>
|
||||
<input
|
||||
type="hidden"
|
||||
name="geburtsdatum"
|
||||
value="<?php echo mb_str_replace('-', '', $stammdaten->gebdatum); ?>"
|
||||
/>
|
||||
<input type="hidden" name="geschlecht" value="<?php echo mb_strtoupper($stammdaten->geschlecht); ?>"/>
|
||||
<input type="submit" value="Namenssuche starten" class="btn btn-default"/>
|
||||
</form>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
$this->config->load('infocenter');
|
||||
$APP = '\'infocenter\'';
|
||||
$ABGEWIESENEN_STATUS = '\'Abgewiesener\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
@@ -17,6 +18,8 @@ $query = '
|
||||
p.nachname AS "Nachname",
|
||||
so.studiengangkurzbzlang as "Studiengang",
|
||||
pss.insertamum AS "AbgewiesenAm",
|
||||
pl.zeitpunkt AS "LockDate",
|
||||
pl.lockuser AS "LockUser",
|
||||
(
|
||||
SELECT l.zeitpunkt
|
||||
FROM system.tbl_log l
|
||||
@@ -28,21 +31,35 @@ $query = '
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
AND '. $LOGDATA_VON .' = (
|
||||
AND ('. $LOGDATA_VON .' = (
|
||||
SELECT l.insertvon
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
OR
|
||||
(
|
||||
(
|
||||
SELECT l.insertvon
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) IS NULL
|
||||
)
|
||||
)
|
||||
AND l.zeitpunkt >= pss.insertamum
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "Nachricht",
|
||||
(
|
||||
SELECT SUM(konto.betrag)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
|
||||
ELSE SUM(konto.betrag)
|
||||
END AS "Kaution"
|
||||
FROM public.tbl_konto konto
|
||||
LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr)
|
||||
WHERE konto.person_id = p.person_id
|
||||
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .'
|
||||
@@ -54,6 +71,15 @@ $query = '
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
|
||||
LEFT JOIN (
|
||||
SELECT tpl.person_id,
|
||||
tpl.zeitpunkt,
|
||||
sp.nachname AS lockuser
|
||||
FROM system.tbl_person_lock tpl
|
||||
JOIN public.tbl_benutzer sb USING (uid)
|
||||
JOIN public.tbl_person sp ON sb.person_id = sp.person_id
|
||||
WHERE tpl.app = '.$APP.'
|
||||
) pl USING(person_id)
|
||||
WHERE pss.status_kurzbz = '. $ABGEWIESENEN_STATUS .'
|
||||
AND pss.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
AND (sg.typ IN ('. $STUDIENGANG_TYP .')
|
||||
@@ -70,6 +96,7 @@ $query = '
|
||||
'requiredPermissions' => 'infocenter',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array(
|
||||
'PersonId',
|
||||
'PreStudentID',
|
||||
@@ -77,11 +104,23 @@ $query = '
|
||||
ucfirst($this->p->t('person', 'nachname')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('infocenter', 'abgewiesenam')),
|
||||
ucfirst($this->p->t('global', 'sperrdatum')),
|
||||
ucfirst($this->p->t('global', 'gesperrtVon')),
|
||||
ucfirst($this->p->t('global', 'nachricht')),
|
||||
ucfirst($this->p->t('infocenter', 'kaution'))
|
||||
),
|
||||
|
||||
'formatRow' => function($datasetRaw) {
|
||||
/* NOTE: Dont use $this here for PHP Version compatibility */
|
||||
$datasetRaw->{'Details'} = sprintf(
|
||||
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s&prev_filter_id=%s">Details</a>',
|
||||
site_url('system/infocenter/InfoCenter/showDetails'),
|
||||
$datasetRaw->{'PersonId'},
|
||||
'abgewiesen',
|
||||
(isset($_GET['fhc_controller_id']) ? $_GET['fhc_controller_id'] : ''),
|
||||
(isset($_GET['filter_id']) ? $_GET['filter_id'] : '')
|
||||
);
|
||||
|
||||
if ($datasetRaw->{'Nachricht'} === null)
|
||||
{
|
||||
$datasetRaw->{'Nachricht'} = 'Nein';
|
||||
@@ -103,10 +142,29 @@ $query = '
|
||||
{
|
||||
$datasetRaw->{'Kaution'} = 'Offen';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'LockDate'} == null)
|
||||
{
|
||||
$datasetRaw->{'LockDate'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'LockUser'} == null)
|
||||
{
|
||||
$datasetRaw->{'LockUser'} = '-';
|
||||
}
|
||||
|
||||
$datasetRaw->{'AbgewiesenAm'} = date_format(date_create($datasetRaw->{'AbgewiesenAm'}),'Y-m-d H:i');
|
||||
return $datasetRaw;
|
||||
},
|
||||
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
if ($datasetRaw->LockDate != null)
|
||||
{
|
||||
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
|
||||
}
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Info Center',
|
||||
'jquery3' => true,
|
||||
'jqueryui1' => true,
|
||||
'jquerycheckboxes1' => true,
|
||||
'bootstrap3' => true,
|
||||
'fontawesome4' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'tablesorter2' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
Aufgenommen
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/infocenter/infocenterAufgenommenData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
$this->config->load('infocenter');
|
||||
$AUFGENOMMENER_STATUS = '\'Aufgenommener\'';
|
||||
$REJECTED_STATUS = '\'Abgewiesener\'';
|
||||
$STUDIENGANG_TYP = '\'l\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$LOGDATA_NAME = '\'Message sent\'';
|
||||
$LOGDATA_VON = '\'online\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
p.person_id AS "PersonId",
|
||||
p.vorname AS "Vorname",
|
||||
p.nachname AS "Nachname",
|
||||
(
|
||||
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ) || UPPER(sg.kurzbz)), \', \')
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
WHERE
|
||||
pss.status_kurzbz = '. $AUFGENOMMENER_STATUS .'
|
||||
AND ps.person_id = p.person_id
|
||||
AND sg.typ IN ('.$STUDIENGANG_TYP.')
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = pss.prestudent_id
|
||||
AND spss.status_kurzbz = '. $REJECTED_STATUS .'
|
||||
AND spss.studiensemester_kurzbz IN (
|
||||
SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '. $STUDIENSEMESTER .'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "Studiengang"
|
||||
FROM
|
||||
public.tbl_person p
|
||||
WHERE
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM public.tbl_prestudent sps
|
||||
JOIN public.tbl_studiengang ssg USING(studiengang_kz)
|
||||
WHERE sps.person_id = p.person_id
|
||||
AND ssg.typ IN (' . $STUDIENGANG_TYP . ')
|
||||
AND ' . $AUFGENOMMENER_STATUS . ' = (
|
||||
SELECT spss.status_kurzbz
|
||||
FROM public.tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = sps.prestudent_id
|
||||
ORDER BY spss.datum DESC, spss.insertamum DESC, spss.ext_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = sps.prestudent_id
|
||||
AND spss.status_kurzbz = ' . $AUFGENOMMENER_STATUS . '
|
||||
AND spss.studiensemester_kurzbz = ' . $STUDIENSEMESTER . '
|
||||
)
|
||||
)
|
||||
|
||||
';
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'app' => InfoCenter::APP,
|
||||
'datasetName' => 'aufgenommen',
|
||||
'filter_id' => $this->input->get('filter_id'),
|
||||
'requiredPermissions' => 'infocenter',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array(
|
||||
'PersonId',
|
||||
ucfirst($this->p->t('person', 'vorname')) ,
|
||||
ucfirst($this->p->t('person', 'nachname')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang'))
|
||||
),
|
||||
|
||||
'formatRow' => function($datasetRaw)
|
||||
{
|
||||
$datasetRaw->{'Details'} = sprintf(
|
||||
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s&prev_filter_id=%s">Details</a>',
|
||||
site_url('system/infocenter/InfoCenter/showDetails'),
|
||||
$datasetRaw->{'PersonId'},
|
||||
'aufgenommen',
|
||||
(isset($_GET['fhc_controller_id']) ? $_GET['fhc_controller_id'] : ''),
|
||||
(isset($_GET['filter_id']) ? $_GET['filter_id'] : '')
|
||||
);
|
||||
return $datasetRaw;
|
||||
}
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
@@ -292,9 +292,12 @@
|
||||
rueck.datum_bis AS "HoldDate",
|
||||
rueck.bezeichnung AS "Rueckstellgrund",
|
||||
(
|
||||
SELECT SUM(konto.betrag)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
|
||||
ELSE SUM(konto.betrag)
|
||||
END AS "Kaution"
|
||||
FROM public.tbl_konto konto
|
||||
LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr)
|
||||
WHERE konto.person_id = p.person_id
|
||||
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .'
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'tablesorter2' => true,
|
||||
'tinymce4' => true,
|
||||
'tinymce5' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'addons' => true,
|
||||
'navigationwidget' => true,
|
||||
@@ -57,10 +57,11 @@
|
||||
if (isset($lockedby)):
|
||||
echo $this->p->t('global', 'wirdBearbeitetVon').': ';
|
||||
echo $lockedby;
|
||||
if ($origin_page == 'index'):
|
||||
if (in_array($origin_page, array('index', 'abgewiesen'))):
|
||||
$unlockpath = 'unlockPerson/'.$stammdaten->person_id;
|
||||
$unlockpath .= '?fhc_controller_id='.$fhc_controller_id;
|
||||
$unlockpath .= '&filter_id='.$prev_filter_id;
|
||||
$unlockpath .= '&origin_page='.$origin_page;
|
||||
?>
|
||||
|
||||
<a href="<?php echo $unlockpath; ?>">
|
||||
|
||||
@@ -267,9 +267,12 @@ $query = '
|
||||
LIMIT 1
|
||||
) AS "AktenId",
|
||||
(
|
||||
SELECT SUM(konto.betrag)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
|
||||
ELSE SUM(konto.betrag)
|
||||
END AS "Kaution"
|
||||
FROM public.tbl_konto konto
|
||||
LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr)
|
||||
WHERE konto.person_id = p.person_id
|
||||
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .'
|
||||
|
||||
@@ -198,7 +198,11 @@ $query = '
|
||||
LIMIT 1
|
||||
) AS "InfoCenterMitarbeiter",
|
||||
(
|
||||
SELECT SUM(konto.betrag)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
|
||||
ELSE SUM(konto.betrag)
|
||||
END AS "Kaution"
|
||||
FROM public.tbl_konto konto
|
||||
WHERE konto.person_id = p.person_id
|
||||
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'tablesorter2' => true,
|
||||
'tinymce4' => true,
|
||||
'tinymce5' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'addons' => true,
|
||||
'navigationwidget' => true,
|
||||
@@ -131,7 +131,11 @@
|
||||
<?php echo $this->p->t('infocenter', 'zgvNichtErfuellt') ?>
|
||||
</button>
|
||||
<?php if ($studiengang_typ === 'm') : ?>
|
||||
<button type="button" class="btn btn-default zgvAkzeptierenPruefung" id="zgvAkzeptierenPruefung_<?php echo $prestudent_id ?>">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default zgvAkzeptierenPruefung"
|
||||
id="zgvAkzeptierenPruefung_<?php echo $prestudent_id ?>"
|
||||
>
|
||||
<?php echo $this->p->t('infocenter', 'zgvErfuelltPruefung') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -447,7 +447,6 @@
|
||||
<div class="form-inline">
|
||||
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<select name="absgstatusgrund"
|
||||
<?php echo $disabledStg ?>
|
||||
<?php echo $disabledPer ?>
|
||||
class="d-inline float-right"
|
||||
required>
|
||||
@@ -460,7 +459,7 @@
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="button"
|
||||
class="btn btn-default absageBtn" <?php echo $disabledStg . ' ' . $disabledPer?> id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
class="btn btn-default absageBtn" <?php echo $disabledPer?> id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('ui', 'absagen') ?>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Write a new message or reply using templates',
|
||||
'jquery3' => true,
|
||||
'jqueryui1' => true,
|
||||
'bootstrap3' => true,
|
||||
'ajaxlib' => true,
|
||||
'fontawesome4' => true,
|
||||
'tinymce3' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'dialoglib' => true,
|
||||
'widgets' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/fasMessageWrite.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
|
||||
<?php echo ucfirst($this->p->t('ui', 'nachrichtSenden')); ?>
|
||||
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<form id="sendForm" method="post" action="<?php echo site_url('/system/messages/Messages/sendImplicitTemplate'); ?>">
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-1 msgfieldcol-left">
|
||||
<label>
|
||||
|
||||
<?php echo ucfirst($this->p->t('global', 'empfaenger')); ?>:
|
||||
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-lg-11 msgfieldcol-right">
|
||||
<?php echo $recipientsList; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-1 msgfield msgfieldcol-left">
|
||||
<label>
|
||||
|
||||
<?php echo ucfirst($this->p->t('global', 'betreff')); ?>:
|
||||
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-7">
|
||||
<input id="subject" class="form-control" type="text" value="<?php echo $subject; ?>" name="subject">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<label>
|
||||
|
||||
<?php echo ucfirst($this->p->t('global', 'nachricht')); ?>:
|
||||
|
||||
</label>
|
||||
<textarea id="bodyTextArea" class="bodyTextArea" name="body">
|
||||
|
||||
<?php echo $body; ?>
|
||||
|
||||
</textarea>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label>
|
||||
|
||||
<?php echo ucfirst($this->p->t('ui', 'felder')); ?>:
|
||||
|
||||
</label>
|
||||
|
||||
<?php
|
||||
$size = count($variables) > 19 ? 19 : count($variables);
|
||||
echo $this->widgetlib->widget(
|
||||
'MultipleDropdown_widget',
|
||||
array('elements' => success($variables)),
|
||||
array(
|
||||
'name' => 'variables[]',
|
||||
'id' => 'variables',
|
||||
'size' => $size,
|
||||
'multiple' => true
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<br>
|
||||
<div class="form-group">
|
||||
<label>
|
||||
|
||||
<?php echo ucfirst($this->p->t('ui', 'meineFelder')); ?>:
|
||||
|
||||
</label>
|
||||
|
||||
<?php
|
||||
$size = count($user_fields) > 5 ? 5 : count($user_fields);
|
||||
echo $this->widgetlib->widget(
|
||||
'MultipleDropdown_widget',
|
||||
array('elements' => success($user_fields)),
|
||||
array(
|
||||
'name' => 'user_fields[]',
|
||||
'id' => 'user_fields',
|
||||
'size' => $size,
|
||||
'multiple' => true
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Vorlage_widget',
|
||||
array('oe_kurzbz' => $organisationUnits, 'isAdmin' => $senderIsAdmin),
|
||||
array('name' => 'vorlage', 'id' => 'vorlageDnD')
|
||||
);
|
||||
?>
|
||||
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<button id="sendButton" class="btn btn-default pull-right" type="button">
|
||||
|
||||
<?php echo $this->p->t('ui', 'senden'); ?>
|
||||
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label>
|
||||
|
||||
<?php echo ucfirst($this->p->t('global', 'vorschau')); ?>:
|
||||
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="well" id="templatePreviewDiv">
|
||||
<div class="row">
|
||||
<div class="col-sm-12" style="display: inline">
|
||||
<div class="form-group form-inline">
|
||||
<div class="input-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Dropdown_widget',
|
||||
array(
|
||||
'elements' => success($recipientsArray),
|
||||
'emptyElement' => ucfirst($this->p->t('global', 'empfaenger')).'...'
|
||||
),
|
||||
array(
|
||||
'name' => 'recipients[]',
|
||||
'id' => 'recipients'
|
||||
)
|
||||
);
|
||||
?>
|
||||
<span class="input-group-btn">
|
||||
<a class="btn btn-default" href="#templatePreviewDiv" id="refresh">
|
||||
<?php echo ucfirst($this->p->t('ui', 'refresh')); ?>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<textarea id="tinymcePreview" class="tinymcePreview"></textarea>
|
||||
</div>
|
||||
|
||||
<?php echo $recipients_ids; ?>
|
||||
<?php echo $relationmessage_id; ?>
|
||||
<?php echo $type; ?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
'tabulator4' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tinymce4' => true,
|
||||
'tinymce5' => true,
|
||||
'phrases' => array('global', 'ui'),
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/read.js')
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
'sbadmintemplate3' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tinymce4' => true,
|
||||
'tinymce5' => true,
|
||||
'phrases' => array('global', 'ui'),
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/write.js')
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
'sbadmintemplate3' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tinymce4' => true,
|
||||
'tinymce5' => true,
|
||||
'phrases' => array('global', 'ui'),
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/writeReply.js')
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
'jquery3' => true,
|
||||
'bootstrap3' => true,
|
||||
'fontawesome4' => true,
|
||||
'tinymce4' => true,
|
||||
'tinymce5' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/messageWriteReply.js')
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
'bootstrap3' => true,
|
||||
'ajaxlib' => true,
|
||||
'fontawesome4' => true,
|
||||
'tinymce4' => true,
|
||||
'tinymce5' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'dialoglib' => true,
|
||||
'widgets' => true,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
$this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce4' => true, 'jsonforms' => true));
|
||||
$this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce5' => true, 'jsonforms' => true));
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
$tablesorter2 = isset($tablesorter2) ? $tablesorter2 : false;
|
||||
$tabulator4 = isset($tabulator4) ? $tabulator4 : false;
|
||||
$tabulator5 = isset($tabulator5) ? $tabulator5 : false;
|
||||
$tinymce4 = isset($tinymce4) ? $tinymce4 : false;
|
||||
$tinymce3 = isset($tinymce3) ? $tinymce3 : false;
|
||||
$tinymce5 = isset($tinymce5) ? $tinymce5 : false;
|
||||
$vue3 = isset($vue3) ? $vue3 : false;
|
||||
$primevue3 = isset($primevue3) ? $primevue3 : false;
|
||||
|
||||
@@ -100,14 +100,14 @@
|
||||
// Tabulator 5 JS
|
||||
if ($tabulator5 === true) generateJSsInclude('vendor/olifolkerd/tabulator5/dist/js/tabulator.min.js');
|
||||
|
||||
// Tinymce 4 JS
|
||||
if ($tinymce4 === true) generateJSsInclude('vendor/tinymce/tinymce4/tinymce.min.js');
|
||||
// Tinymce 3 JS
|
||||
if ($tinymce3 === true) generateJSsInclude('include/tiny_mce/tiny_mce.js');
|
||||
|
||||
// Tinymce 5 JS
|
||||
if ($tinymce5 === true) generateJSsInclude('vendor/tinymce/tinymce5/tinymce.min.js');
|
||||
|
||||
// Vue 3 JS
|
||||
if ($vue3 === true)
|
||||
if ($vue3 === true)
|
||||
{
|
||||
generateJSsInclude('vendor/vuejs/vuejs3/vue.global.prod.js');
|
||||
generateJSsInclude('vendor/vuejs/vuerouter4/vue-router.global.js');
|
||||
|
||||
@@ -77,10 +77,7 @@
|
||||
}
|
||||
|
||||
// Tabulator 5 CSS
|
||||
if ($tabulator5 === true) generateCSSsInclude('vendor/olifolkerd/tabulator5/dist/css/tabulator_bootstrap5.min.css');
|
||||
|
||||
// Tinymce 4 CSS
|
||||
if ($tinymce4 === true) generateCSSsInclude('public/css/TinyMCE4.css');
|
||||
if ($tabulator5 === true) generateCSSsInclude('public/css/Tabulator5.css');
|
||||
|
||||
// Tinymce 5 CSS
|
||||
if ($tinymce5 === true) generateCSSsInclude('public/css/TinyMCE5.css');
|
||||
|
||||
@@ -95,7 +95,7 @@ if($jqueryV1 && $jqueryV2) show_error("Two JQuery versions used: composer and in
|
||||
<?php endif ?>
|
||||
|
||||
<?php if($tinymce) : ?>
|
||||
<script type="text/javascript" src="<?php echo base_url('vendor/tinymce/tinymce4/tinymce.min.js');?>"></script>
|
||||
<script type="text/javascript" src="<?php echo base_url('vendor/tinymce/tinymce5/tinymce.min.js');?>"></script>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if($textile) : ?>
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
plugins: [<?php echo $plugins; ?>],
|
||||
toolbar: "<?php echo $toolbar; ?>"
|
||||
});
|
||||
</script>
|
||||
<<?=$selector?> name="<?=$name?>" style="<?=$style?>"><?=$text?></<?=$selector?>>
|
||||
</script>
|
||||
<<?=$selector?> name="<?=$name?>" style="<?=$style?>"><?=$text?></<?=$selector?>>
|
||||
|
||||
|
||||
@@ -121,15 +121,15 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<td><input type="text" name="sprache" id="sprache" value="'.$db->convert_html_chars($row_zd->sprache).'" size="10" maxlength="8" readonly="readonly"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%"><b>'.$p->t('abgabetool/kontrollierteSchlagwoerter').':*</b></td>
|
||||
<td width="30%"><b>'.$p->t('abgabetool/kontrollierteSchlagwoerter').':</b></td>
|
||||
<td width="40%"><input type="text" name="kontrollschlagwoerter" id="kontrollschlagwoerter" value="'.$db->convert_html_chars($row_zd->kontrollschlagwoerter).'" size="60" maxlength="150" readonly="readonly"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>'.$p->t('abgabetool/deutscheSchlagwoerter').': </b></td>
|
||||
<td><b>'.$p->t('abgabetool/deutscheSchlagwoerter').':* </b></td>
|
||||
<td><input type="text" name="schlagwoerter" value="'.$db->convert_html_chars($row_zd->schlagwoerter).'" size="60" maxlength="150" readonly="readonly"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>'.$p->t('abgabetool/englischeSchlagwoerter').': </b></td>
|
||||
<td><b>'.$p->t('abgabetool/englischeSchlagwoerter').':* </b></td>
|
||||
<td><input type="text" name="schlagwoerter_en" value="'.$db->convert_html_chars($row_zd->schlagwoerter_en).'" size="60" maxlength="150" readonly="readonly"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -64,7 +64,6 @@ if(!isset($_POST['uid']))
|
||||
$fixtermin = false;
|
||||
$datum = '01.01.1980';
|
||||
$kurzbz = '';
|
||||
$kontrollschlagwoerter = '';
|
||||
$schlagwoerter = '';
|
||||
$schlagwoerter_en = '';
|
||||
$abstract = '';
|
||||
@@ -88,7 +87,6 @@ else
|
||||
$kurzbz = (isset($_POST['kurzbz'])?$_POST['kurzbz']:'');
|
||||
$betreuer = (isset($_POST['betreuer'])?$_POST['betreuer']:'-1');
|
||||
$sprache = (isset($_POST['sprache'])?$_POST['sprache']:'German');
|
||||
$kontrollschlagwoerter = (isset($_POST['kontrollschlagwoerter'])?$_POST['kontrollschlagwoerter']:'-1');
|
||||
$schlagwoerter = (isset($_POST['schlagwoerter'])?$_POST['schlagwoerter']:'-1');
|
||||
$schlagwoerter_en = (isset($_POST['schlagwoerter_en'])?$_POST['schlagwoerter_en']:'-1');
|
||||
$abstract = (isset($_POST['abstract'])?$_POST['abstract']:'-1');
|
||||
@@ -211,23 +209,7 @@ if($command=='add')
|
||||
{
|
||||
//zusätzliche Daten bearbeiten
|
||||
//Check der Eingabedaten
|
||||
if(strlen($kontrollschlagwoerter)<1)
|
||||
{
|
||||
$error=true;
|
||||
}
|
||||
if(mb_strlen($kontrollschlagwoerter)>=150)
|
||||
{
|
||||
$kontrollschlagwoerter = mb_substr($kontrollschlagwoerter, 0, 146).'...';
|
||||
}
|
||||
if(strlen($abstract)<1)
|
||||
{
|
||||
$error=true;
|
||||
}
|
||||
if(strlen($abstract_en)<1)
|
||||
{
|
||||
$error=true;
|
||||
}
|
||||
if($seitenanzahl<1)
|
||||
if((strlen($schlagwoerter) < 1) || (strlen($schlagwoerter_en) < 1) || (strlen($abstract) < 1) || (strlen($abstract_en) < 1) || ($seitenanzahl < 1))
|
||||
{
|
||||
$error=true;
|
||||
}
|
||||
@@ -237,7 +219,6 @@ if($command=='add')
|
||||
seitenanzahl = ".$db->db_add_param($seitenanzahl).",
|
||||
abgabedatum = now(),
|
||||
sprache = ".$db->db_add_param($sprache).",
|
||||
kontrollschlagwoerter = ".$db->db_add_param($kontrollschlagwoerter).",
|
||||
schlagwoerter_en = ".$db->db_add_param($schlagwoerter_en).",
|
||||
schlagwoerter = ".$db->db_add_param($schlagwoerter).",
|
||||
abstract = ".$db->db_add_param($abstract).",
|
||||
@@ -413,12 +394,9 @@ if($command=="update" && $error!=true)
|
||||
$htmlstr .= "</SELECT> \n";
|
||||
}
|
||||
$htmlstr .= "</td></tr>\n";
|
||||
$htmlstr .= '<tr><td width="30%"><b>'.$p->t('abgabetool/kontrollierteSchlagwoerter').':*</b></td>
|
||||
<td width="40%"><input type="text" name="kontrollschlagwoerter" id="kontrollschlagwoerter" value="'.$db->convert_html_chars($kontrollschlagwoerter).'" size="60" maxlength="150"></td>
|
||||
<td width="30%" align="left"><input type="button" name="SWD" value=" SWD " onclick="window.open(\'swd.php\')"></td></tr>'."\n";
|
||||
$htmlstr .= '<tr><td><b>'.$p->t('abgabetool/deutscheSchlagwoerter').':</b></td>
|
||||
$htmlstr .= '<tr><td><b>'.$p->t('abgabetool/deutscheSchlagwoerter').':*</b></td>
|
||||
<td><input type="text" name="schlagwoerter" value="'.$db->convert_html_chars($schlagwoerter).'" size="60" maxlength="150"></td></tr>'."\n";
|
||||
$htmlstr .= '<tr><td><b>'.$p->t('abgabetool/englischeSchlagwoerter').':</b></td>
|
||||
$htmlstr .= '<tr><td><b>'.$p->t('abgabetool/englischeSchlagwoerter').':*</b></td>
|
||||
<td><input type="text" name="schlagwoerter_en" value="'.$db->convert_html_chars($schlagwoerter_en).'" size="60" maxlength="150"></td></tr>'."\n";
|
||||
$htmlstr .= '<tr><td valign="top"><b>'.$p->t('abgabetool/abstract').' </b>'.$p->t('abgabetool/maxZeichen').':*</td>
|
||||
<td><textarea name="abstract" cols="46" rows="7">'.$db->convert_html_chars($abstract).'</textarea></td></tr>'."\n";
|
||||
@@ -657,7 +635,6 @@ if($command!="add")
|
||||
$htmlstr .= '<input type="hidden" name="uid" value="'.$db->convert_html_chars($uid).'">'."\n";
|
||||
$htmlstr .= '<input type="hidden" name="betreuer" value="'.$db->convert_html_chars($betreuer).'">'."\n";
|
||||
$htmlstr .= '<input type="hidden" name="command" value="update">'."\n";
|
||||
$htmlstr .= '<input type="hidden" name="kontrollschlagwoerter" value="'.$db->convert_html_chars($kontrollschlagwoerter).'">'."\n";
|
||||
$htmlstr .= '<input type="hidden" name="schlagwoerter" value="'.$db->convert_html_chars($schlagwoerter).'">'."\n";
|
||||
$htmlstr .= '<input type="hidden" name="schlagwoerter_en" value="'.$db->convert_html_chars($schlagwoerter_en).'">'."\n";
|
||||
$htmlstr .= '<input type="hidden" name="abstract" value="'.$db->convert_html_chars($abstract).'">'."\n";
|
||||
|
||||
@@ -98,9 +98,9 @@ if($stsem=='')
|
||||
|
||||
//$note = $_REQUEST["note"];
|
||||
|
||||
if(!$rechte->isBerechtigt('admin',0) &&
|
||||
!$rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) &&
|
||||
!$rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz))
|
||||
if(!$rechte->isBerechtigt('admin', 0) &&
|
||||
!$rechte->isBerechtigt('admin', $lv_obj->studiengang_kz) &&
|
||||
!$rechte->isBerechtigt('lehre', $lv_obj->studiengang_kz))
|
||||
{
|
||||
$qry = "SELECT lehreinheit_id FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
@@ -117,11 +117,11 @@ if(!$rechte->isBerechtigt('admin',0) &&
|
||||
}
|
||||
}
|
||||
|
||||
function savenote($db,$lvid, $student_uid, $note, $punkte=null)
|
||||
function savenote($db, $lvid, $student_uid, $note, $punkte = null)
|
||||
{
|
||||
global $stsem, $user, $p, $noten_anmerkung;
|
||||
$jetzt = date("Y-m-d H:i:s");
|
||||
$punkte = str_replace(',','.',$punkte);
|
||||
$punkte = str_replace(',', '.', $punkte);
|
||||
//Ermitteln ob der Student diesem Kurs zugeteilt ist
|
||||
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
|
||||
if($result = $db->db_query($qry))
|
||||
@@ -207,13 +207,12 @@ if (isset($_REQUEST["submit"]))
|
||||
$note = $_REQUEST["note"];
|
||||
$punkte = (isset($_REQUEST["punkte"])?$_REQUEST["punkte"]:'');
|
||||
|
||||
$response = savenote($db,$lvid, $student_uid, $note, $punkte);
|
||||
$response = savenote($db, $lvid, $student_uid, $note, $punkte);
|
||||
echo $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
foreach ($_POST as $row=>$val)
|
||||
foreach ($_POST as $row => $val)
|
||||
{
|
||||
if(mb_strstr(mb_strtolower($row), 'matrikelnr_'))
|
||||
{
|
||||
@@ -232,7 +231,7 @@ if (isset($_REQUEST["submit"]))
|
||||
$response.="\nNote oder Punkte fehlen";
|
||||
continue;
|
||||
}
|
||||
$punkte=str_replace(',','.', $punkte);
|
||||
$punkte=str_replace(',', '.', $punkte);
|
||||
|
||||
//check ob statt Matrikelnummer nicht bereits student_uid (Moodle Grade Import) vorliegt..
|
||||
$student = new student();
|
||||
@@ -241,7 +240,7 @@ if (isset($_REQUEST["submit"]))
|
||||
//UID ermitteln
|
||||
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
|
||||
{
|
||||
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
|
||||
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($matrikelnummer));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -268,7 +267,7 @@ if (isset($_REQUEST["submit"]))
|
||||
}
|
||||
}
|
||||
|
||||
$val=savenote($db,$lvid, $student_uid, $note, $punkte);
|
||||
$val=savenote($db, $lvid, $student_uid, $note, $punkte);
|
||||
if($val!='neu' && $val!='update' && $val!='update_f')
|
||||
$response.=$val;
|
||||
}
|
||||
|
||||
@@ -20,33 +20,33 @@
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
* Manuela Thamer <manuela.thamer@technikum-wien.at>
|
||||
*/
|
||||
require_once ('../../../../config/cis.config.inc.php');
|
||||
require_once ('../../../../config/global.config.inc.php');
|
||||
require_once ('../../../../include/functions.inc.php');
|
||||
require_once ('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once ('../../../../include/studiengang.class.php');
|
||||
require_once ('../../../../include/studiensemester.class.php');
|
||||
require_once ('../../../../include/lehreinheit.class.php');
|
||||
require_once ('../../../../include/benutzerberechtigung.class.php');
|
||||
require_once ('../../../../include/uebung.class.php');
|
||||
require_once ('../../../../include/beispiel.class.php');
|
||||
require_once ('../../../../include/studentnote.class.php');
|
||||
require_once ('../../../../include/datum.class.php');
|
||||
require_once ('../../../../include/legesamtnote.class.php');
|
||||
require_once ('../../../../include/lvgesamtnote.class.php');
|
||||
require_once ('../../../../include/zeugnisnote.class.php');
|
||||
require_once ('../../../../include/pruefung.class.php');
|
||||
require_once ('../../../../include/person.class.php');
|
||||
require_once ('../../../../include/benutzer.class.php');
|
||||
require_once ('../../../../include/mitarbeiter.class.php');
|
||||
require_once ('../../../../include/mail.class.php');
|
||||
require_once ('../../../../include/phrasen.class.php');
|
||||
require_once ('../../../../include/note.class.php');
|
||||
require_once ('../../../../include/notenschluessel.class.php');
|
||||
require_once ('../../../../include/studienplan.class.php');
|
||||
require_once ('../../../../include/addon.class.php');
|
||||
require_once ('../../../../include/mobilitaet.class.php');
|
||||
require_once ('../../../../include/student.class.php');
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../config/global.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/lehreinheit.class.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../../include/uebung.class.php');
|
||||
require_once('../../../../include/beispiel.class.php');
|
||||
require_once('../../../../include/studentnote.class.php');
|
||||
require_once('../../../../include/datum.class.php');
|
||||
require_once('../../../../include/legesamtnote.class.php');
|
||||
require_once('../../../../include/lvgesamtnote.class.php');
|
||||
require_once('../../../../include/zeugnisnote.class.php');
|
||||
require_once('../../../../include/pruefung.class.php');
|
||||
require_once('../../../../include/person.class.php');
|
||||
require_once('../../../../include/benutzer.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
require_once('../../../../include/mail.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/note.class.php');
|
||||
require_once('../../../../include/notenschluessel.class.php');
|
||||
require_once('../../../../include/studienplan.class.php');
|
||||
require_once('../../../../include/addon.class.php');
|
||||
require_once('../../../../include/mobilitaet.class.php');
|
||||
require_once('../../../../include/student.class.php');
|
||||
|
||||
$summe_stud = 0;
|
||||
$summe_t2 = 0;
|
||||
@@ -104,6 +104,152 @@ $sprachen->getAll(true);
|
||||
|
||||
$errormsg = '';
|
||||
|
||||
// eingetragene lv-gesamtnoten freigeben
|
||||
if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
|
||||
{
|
||||
// Passwort pruefen
|
||||
if (checkldapuser($user, $_REQUEST['passwort']))
|
||||
{
|
||||
$jetzt = date("Y-m-d H:i:s");
|
||||
$neuenoten = 0;
|
||||
|
||||
$studlist = "<table border='1'>
|
||||
<tr>";
|
||||
|
||||
// entweder personenbezogene Daten einbinden
|
||||
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
|
||||
{
|
||||
$studlist .= "
|
||||
<td><b>" . $p->t('global/personenkz') . "</b></td>
|
||||
<td><b>" . $p->t('global/studiengang') . "</b></td>
|
||||
<td><b>" . $p->t('global/nachname') . "</b></td>
|
||||
<td><b>" . $p->t('global/vorname') . "</b></td>
|
||||
";
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
$studlist .= "<td><b>" . $p->t('benotungstool/punkte') . "</b></td>\n";
|
||||
}
|
||||
$studlist .= "<td><b>" . $p->t('benotungstool/note') . "</b></td>\n";
|
||||
|
||||
$studlist .= "<td><b>" . $p->t('benotungstool/bearbeitetvon') . "</b></td></tr>\n";
|
||||
}
|
||||
// oder anonymisiert nur die UIDs einbinden
|
||||
else
|
||||
{
|
||||
$studlist .= "
|
||||
<td><b>" . $p->t('global/uid') . "</b></td></tr>\n
|
||||
";
|
||||
}
|
||||
|
||||
// studentenquery
|
||||
$qry_stud = "SELECT
|
||||
DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN campus.vw_student USING(uid)
|
||||
JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
|
||||
WHERE
|
||||
studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
|
||||
AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
|
||||
ORDER BY nachname, vorname ";
|
||||
if ($result_stud = $db->db_query($qry_stud))
|
||||
{
|
||||
$i = 1;
|
||||
while ($row_stud = $db->db_fetch_object($result_stud))
|
||||
{
|
||||
$lvgesamtnote = new lvgesamtnote();
|
||||
if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
|
||||
{
|
||||
if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
|
||||
{
|
||||
$lvgesamtnote->freigabedatum = $jetzt;
|
||||
$lvgesamtnote->freigabevon_uid = $user;
|
||||
$lvgesamtnote->save();
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
|
||||
{
|
||||
$studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->kurzbzlang) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->nachname) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->vorname) . "</td>";
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
$studlist .= "<td>";
|
||||
if ($lvgesamtnote->punkte != '')
|
||||
$studlist .= trim(number_format($lvgesamtnote->punkte, 2));
|
||||
$studlist .= "</td>\n";
|
||||
}
|
||||
$studlist .= "<td>" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "</td>";
|
||||
|
||||
$studlist .= "<td>" . $lvgesamtnote->mitarbeiter_uid;
|
||||
if ($lvgesamtnote->updatevon != '')
|
||||
$studlist .= " (" . $lvgesamtnote->updatevon . ")";
|
||||
$studlist .= "</td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$studlist .= "<tr><td>" . trim($row_stud->uid) . "</td></tr>\n";
|
||||
}
|
||||
|
||||
$neuenoten ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$studlist .= "</table>";
|
||||
|
||||
// mail an assistentin und den user selber verschicken
|
||||
if ($neuenoten > 0)
|
||||
{
|
||||
$lv = new lehrveranstaltung($lvid);
|
||||
$sg = new studiengang($lv->studiengang_kz);
|
||||
$lektor_adresse = $user . "@" . DOMAIN;
|
||||
$adressen = $sg->email . ", " . $user . "@" . DOMAIN;
|
||||
|
||||
$studienplan = new studienplan();
|
||||
$studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
|
||||
$studienplan_bezeichnung = '';
|
||||
foreach ($studienplan->result as $row)
|
||||
$studienplan_bezeichnung .= $row->bezeichnung . ' ';
|
||||
|
||||
$mit = new mitarbeiter();
|
||||
$mit->load($user);
|
||||
$name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
|
||||
|
||||
$betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
|
||||
$mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, '');
|
||||
$htmlcontent = "<html>
|
||||
<body>
|
||||
$name hat neue Noten für die Lehrveranstaltung\n\n<br>
|
||||
<b>" . $sg->kuerzel . ' ' . $lv->semester . '.Semester
|
||||
' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "</b>
|
||||
<br>eingetragen.\n<br><br>
|
||||
Die Noten können jetzt ins Zeugnis übernommen werden.\n";
|
||||
|
||||
$htmlcontent .= $studlist;
|
||||
|
||||
$htmlcontent.= "
|
||||
<br>Anzahl der Noten:" . $neuenoten . "
|
||||
<br><br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
|
||||
</body></html>";
|
||||
$mail->setHTMLContent($htmlcontent);
|
||||
$mail->setReplyTo($lektor_adresse);
|
||||
$mail->send();
|
||||
}
|
||||
|
||||
http_response_code(303);
|
||||
header('Location: ' . $_SERVER['REQUEST_URI']);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $p->t('gesamtnote/passwortFalsch');
|
||||
}
|
||||
}
|
||||
|
||||
echo '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
@@ -145,8 +291,8 @@ echo '<!DOCTYPE HTML>
|
||||
position:absolute;
|
||||
top:100px;
|
||||
left:300px;
|
||||
width:400px;
|
||||
height:200px;
|
||||
min-width:450px;
|
||||
min-height:200px;
|
||||
background-color:#cccccc;
|
||||
visibility:hidden;
|
||||
border-style:solid;
|
||||
@@ -190,11 +336,14 @@ foreach ($noten_obj->result as $row)
|
||||
$noten_array[$row->note]['lehre'] = $row->lehre;
|
||||
$noten_array[$row->note]['lkt_ueberschreibbar'] = $row->lkt_ueberschreibbar;
|
||||
$noten_array[$row->note]['anmerkung'] = $row->anmerkung;
|
||||
foreach ($sprachen->result AS $s)
|
||||
foreach ($sprachen->result as $s)
|
||||
$noten_array[$row->note]['bezeichnung_mehrsprachig'][$s->sprache] = $row->bezeichnung_mehrsprachig[$s->sprache];
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
const CIS_GESAMTNOTE_PUNKTE = <?php echo CIS_GESAMTNOTE_PUNKTE ? 'true' : 'false';?>;
|
||||
|
||||
function getOffset(pos)
|
||||
{
|
||||
var x,y;
|
||||
@@ -376,7 +525,7 @@ foreach ($noten_obj->result as $row)
|
||||
var datum_test = datum.split(".");
|
||||
if (datum_test[0].length != 2 || datum_test[1].length != 2 || datum_test[2].length!=4
|
||||
|| isNaN(datum_test[2]) || datum_test[1]>12 || datum_test[1]<1 || datum_test[0]>31 || datum_test[0]<1)
|
||||
alert("Invalid Date Format: DD.MM.YYYY");
|
||||
alert("Das Datum entspricht nicht dem Format TT.MM.JJJJ!");
|
||||
else
|
||||
{
|
||||
var anlegendiv = document.getElementById("nachpruefung_div");
|
||||
@@ -402,6 +551,7 @@ foreach ($noten_obj->result as $row)
|
||||
url += '&typ='+typ;
|
||||
url += '&'+ts;
|
||||
|
||||
|
||||
$.ajax({
|
||||
type:"GET",
|
||||
url: url,
|
||||
@@ -593,8 +743,8 @@ foreach ($noten_obj->result as $row)
|
||||
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
|
||||
var anlegendiv = document.getElementById("nachpruefung_div");
|
||||
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
|
||||
str += '<tr><td><?php echo $p->t('benotungstool/importAnweisung');?>:</td>';
|
||||
str += '<td></td><tr><td><textarea id="noteimporttextarea" name="notenimport"></textarea></td></tr>';
|
||||
str += '<tr><td><div style="width: 400px;"><?php echo $p->t('benotungstool/importAnweisung');?>:</div></td>';
|
||||
str += '<td></td><tr><td><textarea style="width: 400px;" id="noteimporttextarea" name="notenimport"></textarea></td></tr>';
|
||||
str += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulk();'>";
|
||||
str += "</td><td></td></tr></table></center></form>";
|
||||
anlegendiv.innerHTML = str;
|
||||
@@ -602,6 +752,25 @@ foreach ($noten_obj->result as $row)
|
||||
$('#noteimporttextarea').focus();
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Oeffnet ein Fenster fuer den Import von Noten für die Nachprüfung aus dem Excel
|
||||
// ****
|
||||
function GradeImportNachp(termin)
|
||||
{
|
||||
var str = "<form name='gradeimportNachp_form'><center><table style='width: 95%'>";
|
||||
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
|
||||
var anlegendiv = document.getElementById("nachpruefung_div");
|
||||
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
|
||||
str += '<tr><td><div style="width: 400px;"><?php echo $p->t('benotungstool/importAnweisungNachp');?>:</div></td>';
|
||||
str += '<td></td><tr><td><textarea style="width: 400px;" id="noteimporttextareaNachp" name="notenimportNachp"></textarea></td></tr>';
|
||||
|
||||
str += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulkNachp(\""+ termin +"\");'>";
|
||||
str += "</td><td></td></tr></table></center></form>";
|
||||
anlegendiv.innerHTML = str;
|
||||
anlegendiv.style.visibility = "visible";
|
||||
$('#noteimporttextareaNachp').focus();
|
||||
}
|
||||
|
||||
// Speichert die Noten ueber den Import
|
||||
function saveGradeBulk()
|
||||
{
|
||||
@@ -633,33 +802,48 @@ foreach ($noten_obj->result as $row)
|
||||
}
|
||||
?>
|
||||
|
||||
var linenumber = 0;
|
||||
for(row in rows)
|
||||
{
|
||||
zeile = rows[row].split(" ");
|
||||
|
||||
<?php
|
||||
// If CIS_GESAMTNOTE_PUNKTE is false, check for valid grades
|
||||
if (CIS_GESAMTNOTE_PUNKTE == false)
|
||||
echo ' // check for valid grades
|
||||
if (validGrades.indexOf(zeile[1]) === -1 && typeof(zeile[1]) != "undefined" && zeile[1] != "")
|
||||
{
|
||||
alertMsg = alertMsg+"Die Note "+zeile[1]+" ist nicht zulaessig. Die Zeile wurde uebersprungen. \n";
|
||||
continue;
|
||||
}';
|
||||
?>
|
||||
|
||||
if (zeile[0]!='' && zeile[1]!='')
|
||||
linenumber++;
|
||||
if( rows[row] == '' )
|
||||
{
|
||||
gradedata['matrikelnr_'+i]=zeile[0];
|
||||
<?php
|
||||
if (CIS_GESAMTNOTE_PUNKTE)
|
||||
echo "gradedata['punkte_'+i]= zeile[1];";
|
||||
else
|
||||
echo "gradedata['note_'+i]= zeile[1];";
|
||||
?>
|
||||
|
||||
i++;
|
||||
//skip empty lines
|
||||
continue;
|
||||
}
|
||||
zeile = rows[row].split(" ");
|
||||
|
||||
if( zeile.length < 2 )
|
||||
{
|
||||
alertMsg = alertMsg + "Zeile " + linenumber + ': '
|
||||
+ 'Zu wenig Paramter - 2 erforderlich. '
|
||||
+ 'Die Zeile wurde uebersprungen.' + "\n\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
if (CIS_GESAMTNOTE_PUNKTE == false)
|
||||
{
|
||||
// check for valid grades
|
||||
if (validGrades.indexOf(zeile[1]) === -1)
|
||||
{
|
||||
alertMsg = alertMsg + "Zeile " + linenumber + ': '
|
||||
+ "Die Note "+zeile[1]+" ist nicht zulaessig. "
|
||||
+ "Die Zeile wurde uebersprungen. \n\n";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
gradedata['matrikelnr_'+i]=zeile[0];
|
||||
if (CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
gradedata['punkte_'+i]= zeile[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
gradedata['note_'+i]= zeile[1];
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
if (alertMsg != "")
|
||||
@@ -698,6 +882,142 @@ foreach ($noten_obj->result as $row)
|
||||
}
|
||||
}
|
||||
|
||||
// Speichert die Noten der Nachprüfung ueber den Import
|
||||
function saveGradeBulkNachp(typ)
|
||||
{
|
||||
data = $('#noteimporttextareaNachp').val();
|
||||
closeDiv();
|
||||
|
||||
//Reihen ermitteln
|
||||
var rows = data.split("\n");
|
||||
var i=0;
|
||||
var params='';
|
||||
alertMsg = '';
|
||||
|
||||
var gradedata = {};
|
||||
var validGrades = '';
|
||||
|
||||
<?php
|
||||
// If CIS_GESAMTNOTE_PUNKTE is false, check for valid grades
|
||||
// Fill Array $gradesArray with valid grades
|
||||
if (CIS_GESAMTNOTE_PUNKTE == false)
|
||||
{
|
||||
$gradesArray = array();
|
||||
foreach ($noten_obj->result as $row_note)
|
||||
{
|
||||
if ($row_note->lehre && $row_note->aktiv)
|
||||
$gradesArray[] = '"' . $row_note->anmerkung . '"';
|
||||
}
|
||||
// Output JS variable with valid grades
|
||||
echo 'var validGrades = [' . implode(',', $gradesArray) . '];';
|
||||
}
|
||||
?>
|
||||
|
||||
var linenumber = 0;
|
||||
for(row in rows)
|
||||
{
|
||||
linenumber++;
|
||||
if( rows[row] == '' )
|
||||
{
|
||||
//skip empty lines
|
||||
continue;
|
||||
}
|
||||
zeile = rows[row].split(" ");
|
||||
|
||||
if( zeile.length < 3 )
|
||||
{
|
||||
alertMsg = alertMsg + "Zeile " + linenumber + ': '
|
||||
+ 'Zu wenig Paramter - 3 erforderlich. '
|
||||
+ 'Die Zeile wurde uebersprungen.' + "\n\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
if( zeile[1] == '' && zeile[2] == '' )
|
||||
{
|
||||
// ignore lines just copied from excel
|
||||
continue;
|
||||
}
|
||||
|
||||
if( zeile[2] == '' )
|
||||
{
|
||||
alertMsg = alertMsg + "Zeile " + linenumber + ': '
|
||||
+ "Die Note oder Punkte fehlen. "
|
||||
+ "Die Zeile wurde uebersprungen. \n\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
if (CIS_GESAMTNOTE_PUNKTE == false)
|
||||
{
|
||||
// check for valid grades
|
||||
if (validGrades.indexOf(zeile[2]) === -1)
|
||||
{
|
||||
alertMsg = alertMsg + "Zeile " + linenumber + ': '
|
||||
+ "Die Note "+zeile[2]+" ist nicht zulaessig. "
|
||||
+ "Die Zeile wurde uebersprungen. \n\n";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if( !zeile[1].match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/) )
|
||||
{
|
||||
alertMsg = alertMsg + "Zeile " + linenumber + ': '
|
||||
+ "Das Datum "+zeile[1]+" fehlt oder ist nicht zulaessig. "
|
||||
+ "Die Zeile wurde uebersprungen. \n\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
gradedata['student_uid_'+i]=zeile[0];
|
||||
gradedata['datumNachp_'+i]=zeile[1];
|
||||
if (CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
gradedata['punkte_'+i]= zeile[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
gradedata['note_'+i]= zeile[2];
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
|
||||
if (alertMsg != "")
|
||||
alert(alertMsg);
|
||||
|
||||
if (i>0)
|
||||
{
|
||||
|
||||
var jetzt = new Date();
|
||||
var ts = jetzt.getTime();
|
||||
var url= '<?php echo "nachpruefungeintragen.php?lvid=".urlencode($lvid)."&stsem=".urlencode($stsem); ?>';
|
||||
url += '&sammel=1';
|
||||
url += '&typ=' + typ;
|
||||
url += '&submit=1&'+ts;
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data: gradedata,
|
||||
success:function(result)
|
||||
{
|
||||
var resp = result;
|
||||
if (resp!='')
|
||||
{
|
||||
alert(resp);
|
||||
}
|
||||
window.location.reload();
|
||||
},
|
||||
error:function(result)
|
||||
{
|
||||
alert('Request Nachprüfung fehlgeschlagen');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('<?php echo $p->t('benotungstool/hilfeImport');?>');
|
||||
}
|
||||
}
|
||||
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
@@ -803,149 +1123,6 @@ if (defined('CIS_ANWESENHEITSLISTE_NOTENLISTE_ANZEIGEN') && CIS_ANWESENHEITSLIST
|
||||
{
|
||||
$hrefpath = "../notenliste.xls.php?stg=$stg_obj->studiengang_kz&lvid=$lvid&stsem=$stsem";
|
||||
echo "<br><a class='Item' href='" . $hrefpath . "'>" . $p->t('benotungstool/notenlisteImport') . "</a>";
|
||||
|
||||
}
|
||||
|
||||
// eingetragene lv-gesamtnoten freigeben
|
||||
if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
|
||||
{
|
||||
// Passwort pruefen
|
||||
if (checkldapuser($user, $_REQUEST['passwort']))
|
||||
{
|
||||
$jetzt = date("Y-m-d H:i:s");
|
||||
$neuenoten = 0;
|
||||
|
||||
$studlist = "<table border='1'>
|
||||
<tr>";
|
||||
|
||||
// entweder personenbezogene Daten einbinden
|
||||
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
|
||||
{
|
||||
$studlist .= "
|
||||
<td><b>" . $p->t('global/personenkz') . "</b></td>
|
||||
<td><b>" . $p->t('global/studiengang') . "</b></td>
|
||||
<td><b>" . $p->t('global/nachname') . "</b></td>
|
||||
<td><b>" . $p->t('global/vorname') . "</b></td>
|
||||
";
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
$studlist .= "<td><b>" . $p->t('benotungstool/punkte') . "</b></td>\n";
|
||||
}
|
||||
$studlist .= "<td><b>" . $p->t('benotungstool/note') . "</b></td>\n";
|
||||
|
||||
$studlist .= "<td><b>" . $p->t('benotungstool/bearbeitetvon') . "</b></td></tr>\n";
|
||||
}
|
||||
// oder anonymisiert nur die UIDs einbinden
|
||||
else
|
||||
{
|
||||
$studlist .= "
|
||||
<td><b>" . $p->t('global/uid') . "</b></td></tr>\n
|
||||
";
|
||||
}
|
||||
|
||||
// studentenquery
|
||||
$qry_stud = "SELECT
|
||||
DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN campus.vw_student USING(uid)
|
||||
JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
|
||||
WHERE
|
||||
studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
|
||||
AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
|
||||
ORDER BY nachname, vorname ";
|
||||
if ($result_stud = $db->db_query($qry_stud))
|
||||
{
|
||||
$i = 1;
|
||||
while ($row_stud = $db->db_fetch_object($result_stud))
|
||||
{
|
||||
$lvgesamtnote = new lvgesamtnote();
|
||||
if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
|
||||
{
|
||||
if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
|
||||
{
|
||||
$lvgesamtnote->freigabedatum = $jetzt;
|
||||
$lvgesamtnote->freigabevon_uid = $user;
|
||||
$lvgesamtnote->save();
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
|
||||
{
|
||||
$studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->kurzbzlang) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->nachname) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->vorname) . "</td>";
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
$studlist .= "<td>";
|
||||
if ($lvgesamtnote->punkte != '')
|
||||
$studlist .= trim(number_format($lvgesamtnote->punkte, 2));
|
||||
$studlist .= "</td>\n";
|
||||
}
|
||||
$studlist .= "<td>" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "</td>";
|
||||
|
||||
$studlist .= "<td>" . $lvgesamtnote->mitarbeiter_uid;
|
||||
if ($lvgesamtnote->updatevon != '')
|
||||
$studlist .= " (" . $lvgesamtnote->updatevon . ")";
|
||||
$studlist .= "</td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$studlist .= "<tr><td>" . trim($row_stud->uid) . "</td></tr>\n";
|
||||
}
|
||||
|
||||
$neuenoten ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$studlist .= "</table>";
|
||||
|
||||
// mail an assistentin und den user selber verschicken
|
||||
if ($neuenoten > 0)
|
||||
{
|
||||
$lv = new lehrveranstaltung($lvid);
|
||||
$sg = new studiengang($lv->studiengang_kz);
|
||||
$lektor_adresse = $user . "@" . DOMAIN;
|
||||
$adressen = $sg->email . ", " . $user . "@" . DOMAIN;
|
||||
|
||||
$studienplan = new studienplan();
|
||||
$studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
|
||||
$studienplan_bezeichnung = '';
|
||||
foreach ($studienplan->result as $row)
|
||||
$studienplan_bezeichnung .= $row->bezeichnung . ' ';
|
||||
|
||||
$mit = new mitarbeiter();
|
||||
$mit->load($user);
|
||||
$name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
|
||||
|
||||
$betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
|
||||
$mail = new mail($adressen, 'no-reply@' . DOMAIN, $betreff, '');
|
||||
$htmlcontent = "<html>
|
||||
<body>
|
||||
$name hat neue Noten für die Lehrveranstaltung\n\n<br>
|
||||
<b>" . $sg->kuerzel . ' ' . $lv->semester . '.Semester
|
||||
' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "</b>
|
||||
<br>eingetragen.\n<br><br>
|
||||
Die Noten können jetzt ins Zeugnis übernommen werden.\n";
|
||||
|
||||
$htmlcontent .= $studlist;
|
||||
|
||||
$htmlcontent.= "
|
||||
<br>Anzahl der Noten: " . $neuenoten . "
|
||||
<br><br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
|
||||
</body></html>";
|
||||
$mail->setHTMLContent($htmlcontent);
|
||||
$mail->setReplyTo($lektor_adresse);
|
||||
$mail->send();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $p->t('gesamtnote/passwortFalsch');
|
||||
}
|
||||
}
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
|
||||
@@ -1052,11 +1229,15 @@ $htmlstring .= "<th>" . $p->t('benotungstool/punkte') . ' / ' . $p->t('benotungs
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
|
||||
{
|
||||
$htmlstring .= "<th colspan='2'>" . $p->t('benotungstool/nachpruefung') . "</th>";
|
||||
$htmlstring .= "<th colspan='2'><br>" . $p->t('benotungstool/nachpruefung') . "<br>
|
||||
<input type='button' onclick='GradeImportNachp(\"Termin2\")' value='" . $p->t('benotungstool/importieren') . "'>
|
||||
</th>";
|
||||
}
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
|
||||
{
|
||||
$htmlstring .= "<th colspan='2' nowrap>" . $p->t('benotungstool/nachpruefung2') . "</th>";
|
||||
$htmlstring .= "<th colspan='2' nowrap><br>" . $p->t('benotungstool/nachpruefung2') . "<br>
|
||||
<input type='button' onclick='GradeImportNachp(\"Termin3\")' value='" . $p->t('benotungstool/importieren') . "'>
|
||||
</th>";
|
||||
}
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
|
||||
{
|
||||
@@ -1184,7 +1365,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
foreach ($addon_obj->result as $row)
|
||||
{
|
||||
if (file_exists('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php'))
|
||||
include ('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
|
||||
include('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1193,7 +1374,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
foreach ($grades as $uid => $data)
|
||||
//Ausgabe Array
|
||||
{
|
||||
|
||||
$htmlstring .= '<tr class="liste' . ($i % 2) . '">
|
||||
<td><a href="mailto:' . $uid . '@' . DOMAIN . '"><img src="../../../../skin/images/button_mail.gif"></a></td>
|
||||
<td>' . $db->convert_html_chars($uid) . '</td>
|
||||
@@ -1325,7 +1505,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
// Punkte
|
||||
if (CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
|
||||
$htmlstring .= '
|
||||
<input type="text"
|
||||
name="punkte"
|
||||
|
||||
@@ -41,10 +41,16 @@ require_once('../../../../include/benutzerfunktion.class.php');
|
||||
require_once('../../../../include/benutzer.class.php');
|
||||
require_once('../../../../include/student.class.php');
|
||||
require_once('../../../../include/notenschluessel.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/note.class.php');
|
||||
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Herstellen der Datenbankverbindung');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
if(!check_lektor($user))
|
||||
@@ -52,6 +58,7 @@ if(!check_lektor($user))
|
||||
|
||||
|
||||
$lehreinheit_id='';
|
||||
$lehreinheit_id_pr='';
|
||||
|
||||
if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id
|
||||
$lvid = $_GET['lvid'];
|
||||
@@ -62,58 +69,26 @@ if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehr
|
||||
$lehreinheit_id = $_GET['lehreinheit_id'];
|
||||
|
||||
if(isset($_GET['lehreinheit_id_pr']) && is_numeric($_GET['lehreinheit_id_pr'])) //Lehreinheit_id der pruefung
|
||||
$lehreinheit_id = $_GET['lehreinheit_id_pr'];
|
||||
|
||||
if(isset($_GET['datum']))
|
||||
{
|
||||
$datum = $_GET['datum'];
|
||||
$datum_obj = new datum();
|
||||
$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true) OR die('Invalid date format');
|
||||
}
|
||||
else
|
||||
die('Fehlerhafte Parameteruebergabe');
|
||||
|
||||
//Laden der Lehrveranstaltung
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
if(!$lv_obj->load($lvid))
|
||||
die($lv_obj->errormsg);
|
||||
|
||||
//Studiengang laden
|
||||
$stg_obj = new studiengang($lv_obj->studiengang_kz);
|
||||
$lehreinheit_id_pr = $_GET['lehreinheit_id_pr'];
|
||||
|
||||
if(isset($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
$stsem = '';
|
||||
|
||||
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
|
||||
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
|
||||
|
||||
//Studiensemester laden
|
||||
$stsem_obj = new studiensemester();
|
||||
if($stsem=='')
|
||||
$stsem = $stsem_obj->getaktorNext();
|
||||
|
||||
$student_uid = $_REQUEST["student_uid"];
|
||||
|
||||
$note = $_REQUEST["note"];
|
||||
if(isset($_REQUEST['punkte']))
|
||||
$punkte = $_REQUEST['punkte'];
|
||||
else
|
||||
$punkte = '';
|
||||
|
||||
$punkte = str_replace(',','.',$punkte);
|
||||
|
||||
if($punkte!='')
|
||||
//Notenanmerkung für Eintragung von nichtnumerischen Noten wie en (entschuldigt), ue(unentschuldigt)
|
||||
$noten_anmerkung = array();
|
||||
$noten_arr = array();
|
||||
$note_obj = new note();
|
||||
$note_obj->getAll();
|
||||
foreach($note_obj->result as $row)
|
||||
{
|
||||
// Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
|
||||
$notenschluessel = new notenschluessel();
|
||||
$note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
|
||||
if($note_pruef!=$note)
|
||||
{
|
||||
$note = $note_pruef;
|
||||
$note_dirty=true;
|
||||
}
|
||||
$noten_anmerkung[$row->anmerkung] = $row->note;
|
||||
$noten_arr[$row->note] = $row;
|
||||
}
|
||||
|
||||
if(!isset($_GET['typ']))
|
||||
@@ -122,22 +97,177 @@ if(!isset($_GET['typ']))
|
||||
}
|
||||
else
|
||||
{
|
||||
if(in_array($_GET['typ'],array('Termin2','Termin3')))
|
||||
if(in_array($_GET['typ'], array('Termin2', 'Termin3')))
|
||||
$typ=$_GET['typ'];
|
||||
else
|
||||
die('Typ ist ungueltig');
|
||||
}
|
||||
|
||||
if($note=='')
|
||||
$note = 9;
|
||||
|
||||
$old_note = $note;
|
||||
|
||||
// lvgesamtnote für studenten speichern
|
||||
if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
|
||||
if (isset($_REQUEST['sammel']) && $_REQUEST["sammel"] == 1)
|
||||
{
|
||||
$errorMatrnr = '';
|
||||
$errorDatum = '';
|
||||
$errorNachp = '';
|
||||
|
||||
foreach ($_POST as $row => $val)
|
||||
{
|
||||
if(mb_strstr(mb_strtolower($row), 'student_uid_'))
|
||||
{
|
||||
$id=mb_substr($row, mb_strlen('student_uid_'));
|
||||
|
||||
$student_uid = $_POST['student_uid_'.$id];
|
||||
$note = null;
|
||||
$punkte = null;
|
||||
$datum = null;
|
||||
$response = '';
|
||||
if(isset($_POST['note_'.$id]))
|
||||
$note = $_POST['note_'.$id];
|
||||
elseif(isset($_POST['punkte_'.$id]))
|
||||
$punkte = $_POST['punkte_'.$id];
|
||||
else
|
||||
{
|
||||
$response.="\nNote oder Punkte fehlen";
|
||||
continue;
|
||||
}
|
||||
$punkte=str_replace(',', '.', $punkte);
|
||||
if($punkte!='')
|
||||
{
|
||||
// Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
|
||||
$notenschluessel = new notenschluessel();
|
||||
$note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
|
||||
if($note_pruef!=$note)
|
||||
{
|
||||
$note = $note_pruef;
|
||||
$note_dirty=true;
|
||||
}
|
||||
}
|
||||
|
||||
$datum = $_POST['datumNachp_'.$id];
|
||||
//check Datumsformat
|
||||
$checkedDatum = $datum;
|
||||
$datum_obj = new datum();
|
||||
if(!$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true))
|
||||
{
|
||||
$errorDatum .="\n".$p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum));
|
||||
continue;
|
||||
}
|
||||
|
||||
//check ob Matrikelnummer anstelle der student_uid übergeben wurde
|
||||
$student = new student();
|
||||
if (!$student->checkIfValidStudentUID($student_uid))
|
||||
{
|
||||
$checkedMatrnr = $student_uid;
|
||||
//UID ermitteln
|
||||
if(!$student_uid = $student->getUidFromMatrikelnummer($student_uid))
|
||||
{
|
||||
$errorMatrnr.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($checkedMatrnr));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//check ob eine Note vorhanden ist oder (intern) angerechnet wurde
|
||||
$lvnote = new lvgesamtnote();
|
||||
if (!$lvnote->load($lvid, $student_uid, $stsem))
|
||||
{
|
||||
$errorNachp.="\n".$p->t('benotungstool/NachpruefungNichtZulaessig', array($student_uid));
|
||||
continue;
|
||||
}
|
||||
|
||||
$lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
|
||||
|
||||
if(isset($_POST['student_uid_'.$id]) && (isset($_POST['note_'.$id]) || isset($_POST['punkte_'.$id])) && isset($_POST['datumNachp_'.$id]))
|
||||
{
|
||||
if(!is_numeric($note))
|
||||
{
|
||||
if(isset($noten_anmerkung[$note]))
|
||||
$note = $noten_anmerkung[$note];
|
||||
}
|
||||
$response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte);
|
||||
if($response!='neu' && $response!='update' && $response!='update_f')
|
||||
{
|
||||
echo $response;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\n fehlende oder fehlerhafte Inputparameter";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo $errorMatrnr . $errorDatum . $errorNachp;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Einzelupdate
|
||||
|
||||
if(isset($_GET['datum']))
|
||||
{
|
||||
$datum = $_GET['datum'];
|
||||
$datum_obj = new datum();
|
||||
$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true) or die($p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum)));
|
||||
}
|
||||
$student_uid = $_REQUEST["student_uid"];
|
||||
|
||||
$note = $_REQUEST["note"];
|
||||
if(isset($_REQUEST['punkte']))
|
||||
$punkte = $_REQUEST['punkte'];
|
||||
else
|
||||
$punkte = '';
|
||||
|
||||
$punkte = str_replace(',', '.', $punkte);
|
||||
|
||||
if($punkte!='')
|
||||
{
|
||||
// Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
|
||||
$notenschluessel = new notenschluessel();
|
||||
$note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
|
||||
if($note_pruef!=$note)
|
||||
{
|
||||
$note = $note_pruef;
|
||||
$note_dirty=true;
|
||||
}
|
||||
}
|
||||
|
||||
if($note=='')
|
||||
$note = 9;
|
||||
|
||||
$old_note = $note;
|
||||
|
||||
//Laden der Lehrveranstaltung
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
if(!$lv_obj->load($lvid))
|
||||
die($lv_obj->errormsg);
|
||||
|
||||
//Studiengang laden
|
||||
$stg_obj = new studiengang($lv_obj->studiengang_kz);
|
||||
|
||||
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
|
||||
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
|
||||
|
||||
// lvgesamtnote für studenten speichern
|
||||
if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != ''))
|
||||
{
|
||||
// Die Pruefung muss einer Lehreinheit zugeordnet werden
|
||||
// deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
|
||||
$lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
|
||||
|
||||
$response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note);
|
||||
echo $response;
|
||||
}
|
||||
else
|
||||
echo "Fehler beim Eintragen der Prüfungen";
|
||||
}
|
||||
|
||||
/**
|
||||
* Berechnet Lehreinheit auf Basis LV-Daten
|
||||
* @param string $db Datenbankvariable
|
||||
* @param string $student_uid student_uid
|
||||
* @param int $lvid Lehrveranstaltungsid
|
||||
* @param string $stsem Studiensemester im Format 'WSYYYY'
|
||||
* @return String LehreinheitId
|
||||
*/
|
||||
function getLehreinheit($db, $lvid, $student_uid, $stsem)
|
||||
{
|
||||
// Die Pruefung muss einer Lehreinheit zugeordnet werden
|
||||
// deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
|
||||
$le_arr = array();
|
||||
$qry_stud = "SELECT lehreinheit_id, lehrform_kurzbz
|
||||
FROM
|
||||
@@ -158,104 +288,159 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
|
||||
}
|
||||
}
|
||||
|
||||
if (!in_array($lehreinheit_id,$le_arr))
|
||||
//if (!in_array($lehreinheit_id,$le_arr))
|
||||
$lehreinheit_id = $le_arr[0];
|
||||
|
||||
return $lehreinheit_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüfung speichern
|
||||
*/
|
||||
function savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte = null)
|
||||
{
|
||||
$jetzt = date("Y-m-d H:i:s");
|
||||
global $user; //, $note, $punkte, $datum;
|
||||
|
||||
$pr = new Pruefung();
|
||||
|
||||
// Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
|
||||
// und dort die Zeugnisnote gespeichert
|
||||
if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
|
||||
if ($typ == "Termin2")
|
||||
{
|
||||
if ($pr->result)
|
||||
$pr = new Pruefung();
|
||||
// Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
|
||||
// und dort die Zeugnisnote gespeichert
|
||||
if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
|
||||
{
|
||||
$termin1 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lvnote = new lvgesamtnote();
|
||||
if ($lvnote->load($lvid, $student_uid, $stsem))
|
||||
if ($pr->result)
|
||||
{
|
||||
$pr_note = $lvnote->note;
|
||||
$pr_punkte = $lvnote->punkte;
|
||||
$benotungsdatum = $lvnote->benotungsdatum;
|
||||
$termin1 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pr_note = 9;
|
||||
$pr_punkte = '';
|
||||
$benotungsdatum = $jetzt;
|
||||
$lvnote = new lvgesamtnote();
|
||||
if ($lvnote->load($lvid, $student_uid, $stsem))
|
||||
{
|
||||
$pr_note = $lvnote->note;
|
||||
$pr_punkte = $lvnote->punkte;
|
||||
$benotungsdatum = $lvnote->benotungsdatum;
|
||||
}
|
||||
else
|
||||
{
|
||||
$pr_note = 9;
|
||||
$pr_punkte = '';
|
||||
$benotungsdatum = $jetzt;
|
||||
}
|
||||
|
||||
$pr_1 = new Pruefung();
|
||||
$pr_1->lehreinheit_id = $lehreinheit_id;
|
||||
$pr_1->student_uid = $student_uid;
|
||||
$pr_1->mitarbeiter_uid = $user;
|
||||
$pr_1->note = $pr_note;
|
||||
$pr_1->punkte = $pr_punkte;
|
||||
$pr_1->pruefungstyp_kurzbz = "Termin1";
|
||||
$pr_1->datum = $benotungsdatum;
|
||||
$pr_1->anmerkung = "";
|
||||
$pr_1->insertamum = $jetzt;
|
||||
$pr_1->insertvon = $user;
|
||||
$pr_1->updateamum = null;
|
||||
$pr_1->updatevon = null;
|
||||
$pr_1->ext_id = null;
|
||||
$pr_1->new = true;
|
||||
$pr_1->save();
|
||||
$response = "neu T1";
|
||||
}
|
||||
|
||||
$pr_1 = new Pruefung();
|
||||
$pr_1->lehreinheit_id = $lehreinheit_id;
|
||||
$pr_1->student_uid = $student_uid;
|
||||
$pr_1->mitarbeiter_uid = $user;
|
||||
$pr_1->note = $pr_note;
|
||||
$pr_1->punkte = $pr_punkte;
|
||||
$pr_1->pruefungstyp_kurzbz = "Termin1";
|
||||
$pr_1->datum = $benotungsdatum;
|
||||
$pr_1->anmerkung = "";
|
||||
$pr_1->insertamum = $jetzt;
|
||||
$pr_1->insertvon = $user;
|
||||
$pr_1->updateamum = null;
|
||||
$pr_1->updatevon = null;
|
||||
$pr_1->ext_id = null;
|
||||
$pr_1->new = true;
|
||||
$pr_1->save();
|
||||
$prTermin2 = new Pruefung();
|
||||
$pr_2 = new Pruefung();
|
||||
|
||||
// Die Pruefung wird als Termin2 eingetragen
|
||||
if ($prTermin2->getPruefungen($student_uid, 'Termin2', $lvid, $stsem))
|
||||
{
|
||||
if ($prTermin2->result)
|
||||
{
|
||||
$pr_2->load($prTermin2->result[0]->pruefung_id);
|
||||
$pr_2->new = null;
|
||||
$pr_2->updateamum = $jetzt;
|
||||
$pr_2->updatevon = $user;
|
||||
$old_note = $pr_2->note;
|
||||
$pr_2->note = $note;
|
||||
$pr_2->punkte = $punkte;
|
||||
$pr_2->datum = $datum;
|
||||
$pr_2->anmerkung = "";
|
||||
$response = "update T2";
|
||||
}
|
||||
else
|
||||
{
|
||||
$pr_2->lehreinheit_id = $lehreinheit_id;
|
||||
$pr_2->student_uid = $student_uid;
|
||||
$pr_2->mitarbeiter_uid = $user;
|
||||
$pr_2->note = $note;
|
||||
$pr_2->punkte = $punkte;
|
||||
$pr_2->pruefungstyp_kurzbz = $typ;
|
||||
$pr_2->datum = $datum;
|
||||
$pr_2->anmerkung = "";
|
||||
$pr_2->insertamum = $jetzt;
|
||||
$pr_2->insertvon = $user;
|
||||
$pr_2->updateamum = null;
|
||||
$pr_2->updatevon = null;
|
||||
$pr_2->ext_id = null;
|
||||
$pr_2->new = true;
|
||||
$old_note = -1;
|
||||
$response = "new T2";
|
||||
}
|
||||
$pr_2->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$prTermin2 = new Pruefung();
|
||||
$pr_2 = new Pruefung();
|
||||
|
||||
// Die Pruefung wird als Termin2 eingetragen
|
||||
if ($prTermin2->getPruefungen($student_uid, $typ, $lvid, $stsem))
|
||||
elseif ($typ == "Termin3")
|
||||
{
|
||||
if ($prTermin2->result)
|
||||
$prTermin3 = new Pruefung();
|
||||
$pr_3 = new Pruefung();
|
||||
|
||||
if ($prTermin3->getPruefungen($student_uid, 'Termin3', $lvid, $stsem))
|
||||
{
|
||||
$pr_2->load($prTermin2->result[0]->pruefung_id);
|
||||
$pr_2->new = null;
|
||||
$pr_2->updateamum = $jetzt;
|
||||
$pr_2->updatevon = $user;
|
||||
$old_note = $pr_2->note;
|
||||
$pr_2->note = $note;
|
||||
$pr_2->punkte = $punkte;
|
||||
$pr_2->datum = $datum;
|
||||
$pr_2->anmerkung = "";
|
||||
if ($prTermin3->result)
|
||||
{
|
||||
$pr_3->load($prTermin3->result[0]->pruefung_id);
|
||||
$pr_3->new = null;
|
||||
$pr_3->updateamum = $jetzt;
|
||||
$pr_3->updatevon = $user;
|
||||
$old_note = $pr_3->note;
|
||||
$pr_3->note = $note;
|
||||
$pr_3->punkte = $punkte;
|
||||
$pr_3->datum = $datum;
|
||||
$pr_3->anmerkung = "";
|
||||
$response = "update T3";
|
||||
}
|
||||
else
|
||||
{
|
||||
$pr_3->lehreinheit_id = $lehreinheit_id;
|
||||
$pr_3->student_uid = $student_uid;
|
||||
$pr_3->mitarbeiter_uid = $user;
|
||||
$pr_3->note = $note;
|
||||
$pr_3->punkte = $punkte;
|
||||
$pr_3->pruefungstyp_kurzbz = $typ;
|
||||
$pr_3->datum = $datum;
|
||||
$pr_3->anmerkung = "";
|
||||
$pr_3->insertamum = $jetzt;
|
||||
$pr_3->insertvon = $user;
|
||||
$pr_3->updateamum = null;
|
||||
$pr_3->updatevon = null;
|
||||
$pr_3->ext_id = null;
|
||||
$pr_3->new = true;
|
||||
$old_note = -1;
|
||||
$response = "new T3";
|
||||
}
|
||||
$pr_3->save();
|
||||
}
|
||||
else
|
||||
{
|
||||
$pr_2->lehreinheit_id = $lehreinheit_id;
|
||||
$pr_2->student_uid = $student_uid;
|
||||
$pr_2->mitarbeiter_uid = $user;
|
||||
$pr_2->note = $note;
|
||||
$pr_2->punkte = $punkte;
|
||||
$pr_2->pruefungstyp_kurzbz = $typ;
|
||||
$pr_2->datum = $datum;
|
||||
$pr_2->anmerkung = "";
|
||||
$pr_2->insertamum = $jetzt;
|
||||
$pr_2->insertvon = $user;
|
||||
$pr_2->updateamum = null;
|
||||
$pr_2->updatevon = null;
|
||||
$pr_2->ext_id = null;
|
||||
$pr_2->new = true;
|
||||
$old_note = -1;
|
||||
}
|
||||
$pr_2->save();
|
||||
}
|
||||
else
|
||||
{
|
||||
$response = "fehlende oder fehlerhafte Inputparameter";
|
||||
}
|
||||
|
||||
|
||||
// Wenn eine Pruefung eingetragen wird, wird danach die LV-Note korrigiert
|
||||
$jetzt = date("Y-m-d H:i:s");
|
||||
|
||||
$lvid = $_REQUEST["lvid"];
|
||||
//Gesamtnote updaten
|
||||
$lvgesamtnote = new lvgesamtnote();
|
||||
if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
|
||||
{
|
||||
if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
|
||||
{
|
||||
$lvgesamtnote->student_uid = $student_uid;
|
||||
$lvgesamtnote->lehrveranstaltung_id = $lvid;
|
||||
$lvgesamtnote->studiensemester_kurzbz = $stsem;
|
||||
@@ -272,9 +457,9 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
|
||||
$lvgesamtnote->insertvon = $user;
|
||||
$new = true;
|
||||
$response = "neu";
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
$lvgesamtnote->note = $note;
|
||||
$lvgesamtnote->punkte = $punkte;
|
||||
$lvgesamtnote->benotungsdatum = $jetzt;
|
||||
@@ -286,12 +471,11 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
|
||||
else
|
||||
$response = "update";
|
||||
}
|
||||
|
||||
if (!$lvgesamtnote->save($new))
|
||||
echo "<span class='error'>".$lvgesamtnote->errormsg."</span>";
|
||||
return $lvgesamtnote->errormsg;
|
||||
else
|
||||
echo $response;
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
echo "Fehler beim Eintragen der Prüfungen";
|
||||
|
||||
?>
|
||||
|
||||
@@ -35,6 +35,7 @@ require_once('../../../include/note.class.php');
|
||||
require_once('../../../include/notenschluessel.class.php');
|
||||
require_once('../../../include/Excel/excel.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/pruefung.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
@@ -120,6 +121,13 @@ else
|
||||
$format_highlightright->setBorderColor('white');
|
||||
$format_highlightright->setAlign('right');
|
||||
|
||||
$format_highlightright_date=& $workbook->addFormat();
|
||||
$format_highlightright_date->setFgColor(15);
|
||||
$format_highlightright_date->setBorder(1);
|
||||
$format_highlightright_date->setBorderColor('white');
|
||||
$format_highlightright_date->setAlign('right');
|
||||
$format_highlightright_date->setNumFormat(49);
|
||||
|
||||
$format_border_bottom =& $workbook->addFormat();
|
||||
$format_border_bottom ->setBottom(2);
|
||||
$format_border_bottom->setBold();
|
||||
@@ -191,6 +199,19 @@ else
|
||||
}
|
||||
|
||||
//Studenten holen
|
||||
|
||||
//Spaltengruppe für Nachprüfung
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
|
||||
{
|
||||
$worksheet->write($lines,8,$p->t('benotungstool/nachpruefung'),$format_bold);
|
||||
}
|
||||
|
||||
//Spaltengruppe für 2.Nebensprüfungstermin
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
|
||||
{
|
||||
$worksheet->write($lines,12,$p->t('benotungstool/nachpruefung2'),$format_bold);
|
||||
}
|
||||
|
||||
$lines++;
|
||||
$worksheet->write($lines,1,$p->t('global/uid'),$format_border_bottom);
|
||||
$worksheet->write($lines,2,$p->t('global/nachname'),$format_border_bottom);
|
||||
@@ -203,6 +224,26 @@ else
|
||||
else
|
||||
$worksheet->write($lines,6,$p->t('benotungstool/note'),$format_border_bottom);
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
|
||||
{
|
||||
$worksheet->write($lines,8,$p->t('global/personenkennzeichen'),$format_border_bottom);
|
||||
$worksheet->write($lines,9,$p->t('global/datum'),$format_border_bottom);
|
||||
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
|
||||
$worksheet->write($lines,10,$p->t('benotungstool/punkte'),$format_border_bottom);
|
||||
else
|
||||
$worksheet->write($lines,10,$p->t('benotungstool/note'),$format_border_bottom);
|
||||
}
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
|
||||
{
|
||||
$worksheet->write($lines,12,$p->t('global/personenkennzeichen'),$format_border_bottom);
|
||||
$worksheet->write($lines,13,$p->t('global/datum'),$format_border_bottom);
|
||||
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
|
||||
$worksheet->write($lines,14,$p->t('benotungstool/punkte'),$format_border_bottom);
|
||||
else
|
||||
$worksheet->write($lines,14,$p->t('benotungstool/note'),$format_border_bottom);
|
||||
}
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($stsem);
|
||||
$stsemdatumvon = $stsem_obj->start;
|
||||
@@ -229,17 +270,18 @@ else
|
||||
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
|
||||
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
LEFT JOIN bis.tbl_mobilitaet ON (bis.tbl_mobilitaet.prestudent_id = public.tbl_student.prestudent_id)
|
||||
LEFT JOIN lehre.tbl_note USING(note)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
|
||||
AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
|
||||
|
||||
if($lehreinheit_id!='')
|
||||
$qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
|
||||
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
$i=1;
|
||||
@@ -282,6 +324,49 @@ else
|
||||
$worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
|
||||
$worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
|
||||
$worksheet->write($lines,6, $note, $format_highlightright);
|
||||
|
||||
// Nachprüfung
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
|
||||
{
|
||||
$worksheet->write($lines,8, '="'.trim($elem->matrikelnr).'"', $format_highlight);
|
||||
$pr = new Pruefung();
|
||||
$pr->getPruefungen($elem->uid, "Termin2", $lvid, $sem);
|
||||
$output2 = $pr->result;
|
||||
|
||||
if ($output2)
|
||||
{
|
||||
$resultPr = $output2[0];
|
||||
$worksheet->write($lines,9, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
|
||||
$worksheet->write($lines,10, $resultPr->note, $format_highlightright);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->write($lines,9, '', $format_highlightright_date);
|
||||
$worksheet->write($lines,10, '', $format_highlightright);
|
||||
}
|
||||
}
|
||||
|
||||
// Nachprüfung
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
|
||||
{
|
||||
$worksheet->write($lines,12, '="'.trim($elem->matrikelnr).'"', $format_highlight);
|
||||
$pr = new Pruefung();
|
||||
$pr->getPruefungen($elem->uid, "Termin3", $lvid, $sem);
|
||||
$output3 = $pr->result;
|
||||
|
||||
if ($output3)
|
||||
{
|
||||
$resultPr = $output3[0];
|
||||
$worksheet->write($lines,13, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
|
||||
$worksheet->write($lines,14, $resultPr->note, $format_highlightright);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->write($lines,13, '', $format_highlightright_date);
|
||||
$worksheet->write($lines,14, '', $format_highlightright);
|
||||
}
|
||||
}
|
||||
|
||||
$i++;
|
||||
$lines++;
|
||||
}
|
||||
@@ -335,5 +420,17 @@ else
|
||||
$worksheet->setColumn(0, 3, 25);
|
||||
$worksheet->setColumn(0, 4, 7);
|
||||
$worksheet->setColumn(0, 5, 21);
|
||||
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
|
||||
{
|
||||
$worksheet->setColumn(8, 8, 15);
|
||||
$worksheet->setColumn(9, 9, 10);
|
||||
}
|
||||
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
|
||||
{
|
||||
$worksheet->setColumn(12, 12, 15);
|
||||
$worksheet->setColumn(13, 13, 10);
|
||||
}
|
||||
|
||||
$workbook->close();
|
||||
?>
|
||||
|
||||
@@ -419,7 +419,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$semCounter = $fakultaeten[1]["sem"];
|
||||
break;
|
||||
default:
|
||||
$semCounter = 2;
|
||||
$semCounter = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
$url = "https://ognd.bsz-bw.de/";
|
||||
$zielfeld = "kontrollschlagwoerter";
|
||||
$url = $url."?zielfeld=".$zielfeld;
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
$content = file_get_contents($url);
|
||||
if($content)
|
||||
print $content;
|
||||
else
|
||||
echo "Der Schlagwortdienst ist derzeit nicht erreichbar. Bitte füllen Sie die Schlagwörter manuell aus um den Upload abzuschließen";
|
||||
?>
|
||||
@@ -79,7 +79,12 @@ else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GE
|
||||
else
|
||||
$gesperrt_bis = '2015-08-31';
|
||||
|
||||
//echo $gesperrt_bis;
|
||||
//Default-Wert für Max-Intervall in Tagen für Zeitsperre, über Config veränderbar
|
||||
$maxDauerZS = 730;
|
||||
|
||||
if (defined('CIS_ZEITSPERREN_MAX_DAUER') && CIS_ZEITSPERREN_MAX_DAUER != '') {
|
||||
$maxDauerZS = CIS_ZEITSPERREN_MAX_DAUER;
|
||||
}
|
||||
|
||||
//Stundentabelleholen
|
||||
if(! $result_stunde=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde"))
|
||||
@@ -204,66 +209,72 @@ function berechnen()
|
||||
|
||||
function checkdatum()
|
||||
{
|
||||
if(document.getElementById('vondatum').value.length<10)
|
||||
if (document.getElementById('vondatum').value.length < 10)
|
||||
{
|
||||
alert('<?php echo $p->t('zeitsperre/vonDatumIstUngueltigNullenAngeben');?>');
|
||||
return false;
|
||||
}
|
||||
|
||||
if(document.getElementById('bisdatum').value.length<10)
|
||||
if (document.getElementById('bisdatum').value.length < 10)
|
||||
{
|
||||
alert('<?php echo $p->t('zeitsperre/bisDatumIstUngueltigNullenAngeben');?>');
|
||||
return false;
|
||||
}
|
||||
|
||||
var Datum, Tag, Monat,Jahr,vonDatum,bisDatum, diff;
|
||||
var Datum, Tag, Monat, Jahr, vonDatum, bisDatum, vonDatumDate, bisDatumDate, diff, diffTime, diffmax;
|
||||
|
||||
Datum=document.getElementById('vondatum').value;
|
||||
Tag=Datum.substring(0,2);
|
||||
Monat=Datum.substring(3,5);
|
||||
if (parseInt(Monat,10)<1 || parseInt(Monat,10)>12)
|
||||
{
|
||||
alert('<?php echo $p->t('zeitsperre/vonDatumMonat');?>'+ document.getElementById('vondatum').value+ ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
|
||||
Datum = document.getElementById('vondatum').value;
|
||||
Tag = Datum.substring(0, 2);
|
||||
Monat = Datum.substring(3, 5);
|
||||
if (parseInt(Monat, 10) < 1 || parseInt(Monat, 10) > 12)
|
||||
{
|
||||
alert('<?php echo $p->t('zeitsperre/vonDatumMonat');?>' + document.getElementById('vondatum').value + ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
|
||||
document.getElementById('vondatum').focus();
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Jahr=Datum.substring(6,10);
|
||||
Jahr = Datum.substring(6, 10);
|
||||
|
||||
vonDatum=Jahr+''+Monat+''+Tag;
|
||||
vonDatum = Jahr + '' + Monat + '' + Tag;
|
||||
vonDatumDate = Jahr + '-' + Monat + '-' + Tag;
|
||||
|
||||
Datum=document.getElementById('bisdatum').value;
|
||||
Tag=Datum.substring(0,2);
|
||||
Monat=Datum.substring(3,5);
|
||||
if (parseInt(Monat,10)<1 || parseInt(Monat,10)>12)
|
||||
{
|
||||
alert('<?php echo $p->t('zeitsperre/bisDatumMonat');?>'+ document.getElementById('bisdatum').value+ ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
|
||||
Datum = document.getElementById('bisdatum').value;
|
||||
Tag = Datum.substring(0, 2);
|
||||
Monat = Datum.substring(3, 5);
|
||||
if (parseInt(Monat, 10) < 1 || parseInt(Monat, 10) > 12) {
|
||||
alert('<?php echo $p->t('zeitsperre/bisDatumMonat');?>' + document.getElementById('bisdatum').value + ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
|
||||
document.getElementById('bisdatum').focus();
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Jahr=Datum.substring(6,10);
|
||||
Jahr = Datum.substring(6, 10);
|
||||
bisDatum = Jahr + '' + Monat + '' + Tag;
|
||||
bisDatumDate = Jahr + '-' + Monat + '-' + Tag;
|
||||
|
||||
bisDatum=Jahr+''+Monat+''+Tag;
|
||||
bisDatumDate = new Date(bisDatumDate);
|
||||
vonDatumDate = new Date(vonDatumDate);
|
||||
|
||||
diff=bisDatum-vonDatum;
|
||||
diffTime = bisDatumDate.getTime() - vonDatumDate.getTime();
|
||||
diff = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
||||
diffmax = <?php echo $maxDauerZS ;?>
|
||||
|
||||
if (vonDatum>bisDatum)
|
||||
{
|
||||
alert('<?php echo $p->t('zeitsperre/vonDatum');?> '+ document.getElementById('vondatum').value+ ' <?php echo $p->t('zeitsperre/istGroesserAlsBisDatum');?> '+document.getElementById('bisdatum').value);
|
||||
if (vonDatum > bisDatum) {
|
||||
alert('<?php echo $p->t('zeitsperre/vonDatum');?> ' + document.getElementById('vondatum').value + ' <?php echo $p->t('zeitsperre/istGroesserAlsBisDatum');?> ' + document.getElementById('bisdatum').value);
|
||||
document.getElementById('vondatum').focus();
|
||||
return false;
|
||||
}
|
||||
else if (diff>14)
|
||||
{
|
||||
Check = confirm('<?php echo $p->t('zeitaufzeichnung/zeitraumAuffallendHoch');?>');
|
||||
return false;
|
||||
}
|
||||
else if (diff > 14 && diff < diffmax) {
|
||||
Check = confirm('<?php echo $p->t('zeitaufzeichnung/zeitraumAuffallendHoch');?>');
|
||||
document.getElementById('bisdatum').focus();
|
||||
if (Check == false)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Check == false)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
} else if (diff >= diffmax) {
|
||||
alert('<?php echo $p->t('zeitsperre/bisDatumGroesserMax');?> ');
|
||||
document.getElementById('bisdatum').focus();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -445,7 +456,8 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
|
||||
$date=explode('.',$_POST['bisdatum']);
|
||||
if (@checkdate($date[1], $date[0], $date[2]))
|
||||
{
|
||||
$bisdatum=$date[2].$date[1].$date[0];
|
||||
$bisdatum=$date[2].$date[1].$date[0];
|
||||
$bisdatum_iso = $date[2].'-'.$date[1].'-'.$date[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -464,6 +476,17 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
|
||||
$error_msg .= $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! ';
|
||||
}
|
||||
|
||||
//check if bis-Datum zu weit in der Zukunft
|
||||
$bis = new DateTime($bisdatum);
|
||||
$von = new DateTime($vondatum);
|
||||
|
||||
$intervall = $bis->diff($von);
|
||||
if ($intervall->days >= $maxDauerZS)
|
||||
{
|
||||
$error=true;
|
||||
$error_msg = $p->t('zeitsperre/bisDatumGroesserMax');
|
||||
}
|
||||
|
||||
//von-datum pruefen TODO
|
||||
if($vondatum_iso < $gesperrt_bis && in_array($_POST['zeitsperretyp_kurzbz'],$typen_arr))
|
||||
{
|
||||
|
||||
@@ -229,6 +229,21 @@ $( document ).ready(function()
|
||||
</script>
|
||||
';
|
||||
|
||||
echo <<<EOSBJS
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
const scrollDiv = document.createElement('div');
|
||||
scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
|
||||
document.body.appendChild(scrollDiv);
|
||||
const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
||||
document.body.removeChild(scrollDiv);
|
||||
var marginright = Math.max((20 - scrollbarWidth), 0);
|
||||
document.body.style.setProperty('width', 'calc(100% - ' + marginright + 'px)');
|
||||
});
|
||||
</script>
|
||||
|
||||
EOSBJS;
|
||||
|
||||
echo '
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
@@ -1621,7 +1636,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
<td '.$style.' align="right"><b>'.$tagessaldo.$erstr.'</b><br>'.date('H:i', ($pausesumme-3600)).'</td>
|
||||
<td '.$style.' colspan="3" align="right">';
|
||||
if ($tag > $sperrdatum)
|
||||
echo '<a href="?von_datum='.$datum->formatDatum($tag,'d.m.Y').'&bis_datum='.$datum->formatDatum($tag,'d.m.Y').'" class="item"><-</a>';
|
||||
echo '<a href="?von_datum='.$datum->formatDatum($tag,'d.m.Y').'&bis_datum='.$datum->formatDatum($tag,'d.m.Y').'" class="item">←</a>';
|
||||
|
||||
echo '</td></tr>';
|
||||
|
||||
|
||||
+48
-45
@@ -571,7 +571,7 @@ if (isset($_GET['resend']))
|
||||
|
||||
echo "<div id='coodle_content' >
|
||||
<form action='' method='POST'>
|
||||
|
||||
|
||||
<table class='table-bordered'>
|
||||
<tr><td></td>";
|
||||
// Für Colspan bei Datum
|
||||
@@ -675,7 +675,6 @@ if (isset($_GET['resend']))
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
// Ort-Ressourcen ueberspringen
|
||||
if ($ressource->ort_kurzbz != '')
|
||||
{
|
||||
@@ -761,8 +760,8 @@ if (isset($_GET['resend']))
|
||||
echo ' <td class="'.$class.'" align="center" '.$style.'>
|
||||
<div class="checkbox">
|
||||
<label style="font-size: 1.5em; padding-left: 10px">
|
||||
<input type="checkbox"
|
||||
value=""
|
||||
<input type="checkbox"
|
||||
value=""
|
||||
'.($checked ? 'checked="checked"' : '').'
|
||||
'.($termin->datum == '1900-01-01' ? 'id="disableCheckboxes"' : '').'
|
||||
name="check_'.$ressource->coodle_ressource_id.'_'.$termin->coodle_termin_id.'"
|
||||
@@ -867,8 +866,8 @@ if (isset($_GET['resend']))
|
||||
<span class="glyphicon glyphicon-info-sign"></span>
|
||||
Sie können ihre vorläufigen Terminzusagen in ihr Kalendersystem einbinden.<br>
|
||||
Importieren Sie dazu die .ics-Datei des folgenden Links in ihren Kalender:<br>
|
||||
<a href="'.APP_ROOT.'cis/public/ical_coodle.php/cipher_encryption/'.encryptData($uid,LVPLAN_CYPHER_KEY).'" target="_blank">
|
||||
'.APP_ROOT.'cis/public/ical_coodle.php/cipher_encryption/'.encryptData($uid,LVPLAN_CYPHER_KEY).'
|
||||
<a href="'.APP_ROOT.'cis/public/ical_coodle.php/cipher_encryption/'.encryptData($uid, LVPLAN_CYPHER_KEY).'" target="_blank">
|
||||
'.APP_ROOT.'cis/public/ical_coodle.php/cipher_encryption/'.encryptData($uid, LVPLAN_CYPHER_KEY).'
|
||||
</a>
|
||||
<br><br>
|
||||
Die Datei enthält ihre Terminzusagen aus <b>allen laufenden Umfragen</b> .
|
||||
@@ -999,7 +998,7 @@ function sendEmail($coodle_id)
|
||||
else
|
||||
$partstat = 'TENTATIVE';
|
||||
|
||||
$teilnehmer .= 'ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT='.$partstat.';CN='.$name."\n :MAILTO:".$mail."\n";
|
||||
$teilnehmer .= $coodle->foldContentLine('ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT='.$partstat.';CN='.$name.":MAILTO:".$mail) . "\r\n";
|
||||
}
|
||||
}
|
||||
$date = new DateTime($coodle_help->datum.' '.$coodle_help->uhrzeit);
|
||||
@@ -1015,44 +1014,48 @@ function sendEmail($coodle_id)
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($coodle->ersteller_uid);
|
||||
$erstellername = trim($benutzer->titelpre.' '.$benutzer->vorname.' '.$benutzer->nachname.' '.$benutzer->titelpost);
|
||||
|
||||
$beschreibung = "DESCRIPTION:" . strip_tags(html_entity_decode($coodle->beschreibung, ENT_QUOTES, 'UTF-8'), '<br>');
|
||||
$terminbeschreibung= $coodle->foldContentLine($beschreibung);
|
||||
|
||||
// Ical File erstellen
|
||||
$ical = "BEGIN:VCALENDAR
|
||||
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
|
||||
VERSION:2.0
|
||||
METHOD:PUBLISH
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Europe/Vienna
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||
DTSTART:19810329T020000
|
||||
TZNAME:GMT+02:00
|
||||
TZOFFSETTO:+0200
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||
DTSTART:19961027T030000
|
||||
TZNAME:GMT+01:00
|
||||
TZOFFSETTO:+0100
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:MAILTO:".$erstellername." <".$coodle->ersteller_uid."@".DOMAIN."
|
||||
".$teilnehmer."
|
||||
DTSTART;TZID=Europe/Vienna:".$dtstart."
|
||||
DTEND;TZID=Europe/Vienna:".$dtend."
|
||||
LOCATION:".$ort."
|
||||
TRANSP:OPAQUE
|
||||
SEQUENCE:0
|
||||
UID:FHCompleteCoodle".$coodle_id."
|
||||
DTSTAMP;TZID=Europe/Vienna:".$dtstamp."
|
||||
DESCRIPTION:".strip_tags(html_entity_decode($coodle->beschreibung, ENT_QUOTES, 'UTF-8'))."
|
||||
SUMMARY:".strip_tags($coodle->titel)."
|
||||
PRIORITY:5
|
||||
CLASS:PUBLIC
|
||||
END:VEVENT
|
||||
END:VCALENDAR";
|
||||
$ical = "BEGIN:VCALENDAR\r\n"
|
||||
."PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN\r\n"
|
||||
."VERSION:2.0\r\n"
|
||||
."METHOD:PUBLISH\r\n"
|
||||
."BEGIN:VTIMEZONE\r\n"
|
||||
."TZID:Europe/Vienna\r\n"
|
||||
."BEGIN:DAYLIGHT\r\n"
|
||||
."TZOFFSETFROM:+0100\r\n"
|
||||
."RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\n"
|
||||
."DTSTART:19810329T020000\r\n"
|
||||
."TZNAME:GMT+02:00\r\n"
|
||||
."TZOFFSETTO:+0200\r\n"
|
||||
."END:DAYLIGHT\r\n"
|
||||
."BEGIN:STANDARD\r\n"
|
||||
."TZOFFSETFROM:+0200\r\n"
|
||||
."RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\n"
|
||||
."DTSTART:19961027T030000\r\n"
|
||||
."TZNAME:GMT+01:00\r\n"
|
||||
."TZOFFSETTO:+0100\r\n"
|
||||
."END:STANDARD\r\n"
|
||||
."END:VTIMEZONE\r\n"
|
||||
."BEGIN:VEVENT\r\n"
|
||||
.$coodle->foldContentLine("ORGANIZER:MAILTO:".$erstellername." <".$coodle->ersteller_uid."@".DOMAIN)."\r\n"
|
||||
.rtrim($teilnehmer)."\r\n"
|
||||
."DTSTART;TZID=Europe/Vienna:".$dtstart."\r\n"
|
||||
."DTEND;TZID=Europe/Vienna:".$dtend."\r\n"
|
||||
."LOCATION:".$ort."\r\n"
|
||||
."TRANSP:OPAQUE\r\n"
|
||||
."SEQUENCE:0\r\n"
|
||||
."UID:FHCompleteCoodle".$coodle_id."\r\n"
|
||||
."DTSTAMP;TZID=Europe/Vienna:".$dtstamp."\r\n"
|
||||
.$terminbeschreibung."\r\n"
|
||||
."SUMMARY:".strip_tags($coodle->titel)."\r\n"
|
||||
."PRIORITY:5\r\n"
|
||||
."CLASS:PUBLIC\r\n"
|
||||
."END:VEVENT\r\n"
|
||||
."END:VCALENDAR\r\n";
|
||||
|
||||
if (count($coodle_ressource->result) > 0)
|
||||
{
|
||||
@@ -1173,4 +1176,4 @@ function RaumBelegt($ort_kurzbz, $datum, $stunden)
|
||||
return false;
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -147,7 +147,7 @@ if(isset($_GET['show']))
|
||||
<th>Level</th>
|
||||
<th>Frage</th>
|
||||
<th colspan="3" title="Anzahl der Personen die diese Frage gestellt bekommen haben">Gesamt (m/w)</th>
|
||||
<th colspan="30">Nummer | Punkte | Gesamt | Männlich | Weiblich</th>
|
||||
<th colspan="30">Nummer | Punkte | Gesamt | % | Männlich | Weiblich</th>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
@@ -244,12 +244,20 @@ if(isset($_GET['show']))
|
||||
|
||||
$anz_m = $row_geschlecht->anz_m;
|
||||
$anz_w = $row_vorschlag->anzahl_vorschlag-$row_geschlecht->anz_m;
|
||||
if ($row_vorschlag->anzahl_gesamt == 0)
|
||||
$anzahl_gesamt = 1;
|
||||
else
|
||||
$anzahl_gesamt = $row_vorschlag->anzahl_gesamt;
|
||||
|
||||
$vorschlag_prozent = round(100 * $row_vorschlag->anzahl_vorschlag / $anzahl_gesamt, 1);
|
||||
$vorschlag_prozent = number_format($vorschlag_prozent,1,',','');
|
||||
|
||||
$hlp2.= '
|
||||
<td style="border-left: 1px solid black; padding-left:2px;"><b>'.$row_vorschlag->nummer.'</b></td>
|
||||
<!--<td style="padding-left:2px;">'.$row_vorschlag->text.'</td>-->
|
||||
<td>'.number_format($row_vorschlag->punkte,2).'</td>
|
||||
<td><b>'.$row_vorschlag->anzahl_vorschlag.'</b></td>
|
||||
<td><b>'.$vorschlag_prozent.'%</b></td>
|
||||
<td style="color:blue;"><b>'.$anz_m.'</b></td>
|
||||
<td style="color:magenta;"><b>'.$anz_w.'</b></td>';
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ if($frage_id!='' && is_numeric($frage_id))
|
||||
tbl_frage_sprache.text as frage_text,
|
||||
tbl_frage_sprache.audio as frage_audio,
|
||||
tbl_frage_sprache.bild as frage_bild,
|
||||
tbl_vorschlag.nummer as vorschlag_nummer,
|
||||
tbl_vorschlag_sprache.text as vorschlag_text,
|
||||
tbl_vorschlag_sprache.audio as vorschlag_audio,
|
||||
tbl_vorschlag_sprache.bild as vorschlag_bild,
|
||||
@@ -108,9 +109,11 @@ if($frage_id!='' && is_numeric($frage_id))
|
||||
}
|
||||
|
||||
//Vorschlaege
|
||||
echo '<center>Nummer: '.$row->vorschlag_nummer.'</center><br>';
|
||||
echo '<center><div style="width: 90%; padding: 5px; background-color: #eee;border: 1px solid black">';
|
||||
//echo "<b>Vorschlag $i: </b>";
|
||||
$first=false;
|
||||
|
||||
echo $row->vorschlag_text;
|
||||
if($row->vorschlag_audio!='')
|
||||
{
|
||||
|
||||
@@ -161,7 +161,7 @@ if(!isset($_SESSION['pruefling_id']))
|
||||
$pruefling = new pruefling();
|
||||
$pruefling->load($_SESSION['pruefling_id']);
|
||||
|
||||
if ($pruefling->gesperrt === 't')
|
||||
if ($pruefling->isGesperrt($_SESSION['pruefling_id']))
|
||||
die("<script>document.location.href='prueflinggesperrt.php';</script>");
|
||||
|
||||
if (!in_array($gebiet_id, $_SESSION['alleGebiete']))
|
||||
|
||||
@@ -126,10 +126,6 @@ if (isset($_REQUEST['prestudent']))
|
||||
$rt->getReihungstestPerson($ps->person_id);
|
||||
if (isset($rt->result[0]))
|
||||
$reihungstest_id = $rt->result[0]->reihungstest_id;
|
||||
else
|
||||
{
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -138,10 +134,6 @@ if (isset($_REQUEST['prestudent']))
|
||||
// TODO Was ist wenn da mehrere Zurueckkommen?!
|
||||
if (isset($rt->result[0]))
|
||||
$reihungstest_id = $rt->result[0]->reihungstest_id;
|
||||
else
|
||||
{
|
||||
$alertmsg .= '<div class="alert alert-danger">'.$p->t('testtool/reihungstestKannNichtGeladenWerden').'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -362,6 +354,8 @@ if ((isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) &&
|
||||
$pruefling->idnachweis = '';
|
||||
$pruefling->registriert = date('Y-m-d H:i:s');
|
||||
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
|
||||
$pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
|
||||
|
||||
if ($pruefling->save())
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
@@ -385,6 +379,7 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
$pruefling->registriert = date('Y-m-d H:i:s');
|
||||
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
|
||||
$pruefling->semester = $_POST['semester'];
|
||||
$pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
|
||||
if ($pruefling->save())
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
|
||||
+27
-39
@@ -26,28 +26,6 @@
|
||||
"wiki": "https://wiki.fhcomplete.info/doku.php"
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "vuepic/vue-datepicker-js",
|
||||
"version": "4.0.0",
|
||||
"dist": {
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/vue-datepicker.iife.js",
|
||||
"type": "file"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "vuepic/vue-datepicker-css",
|
||||
"version": "4.0.0",
|
||||
"dist": {
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/main.css",
|
||||
"type": "file"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
@@ -252,9 +230,9 @@
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "olifolkerd/tabulator5",
|
||||
"version": "5.2.1",
|
||||
"version": "5.5.2",
|
||||
"dist": {
|
||||
"url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.2.1.zip",
|
||||
"url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.5.2.zip",
|
||||
"type": "zip"
|
||||
}
|
||||
}
|
||||
@@ -292,17 +270,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "tinymce/tinymce4",
|
||||
"version": "4.9.11",
|
||||
"dist": {
|
||||
"url": "https://github.com/tinymce/tinymce-dist/archive/refs/tags/4.9.11.zip",
|
||||
"type": "zip"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
@@ -370,6 +337,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "vuejs/vuedatepicker_js",
|
||||
"version": "5.4.0",
|
||||
"dist": {
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@5.4.0/dist/vue-datepicker.iife.js",
|
||||
"type": "file"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "vuejs/vuedatepicker_css",
|
||||
"version": "5.4.0",
|
||||
"dist": {
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@5.4.0/dist/main.css",
|
||||
"type": "file"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "composer",
|
||||
"url": "https://asset-packagist.org"
|
||||
@@ -426,7 +415,7 @@
|
||||
"npm-asset/primeicons": "5.0.0",
|
||||
|
||||
"olifolkerd/tabulator4": "4.9.*",
|
||||
"olifolkerd/tabulator5": "5.2.*",
|
||||
"olifolkerd/tabulator5": "5.5.*",
|
||||
|
||||
"phpseclib/phpseclib": "2.0.*",
|
||||
|
||||
@@ -435,7 +424,6 @@
|
||||
"scottjehl/respond": "1.4.2",
|
||||
|
||||
"tapmodo/jcrop": "2.0.4",
|
||||
"tinymce/tinymce4": "4.9.*",
|
||||
"tinymce/tinymce5": "5.10.*",
|
||||
"tomazdragar/simplecropper": "1.0",
|
||||
"twbs/bootstrap3": "3.4.*",
|
||||
@@ -443,8 +431,8 @@
|
||||
|
||||
"vuejs/vuejs3": "3.2.33",
|
||||
"vuejs/vuerouter4": "4.1.3",
|
||||
"vuepic/vue-datepicker-js": "4.*",
|
||||
"vuepic/vue-datepicker-css": "4.*"
|
||||
"vuejs/vuedatepicker_js": "5.4.0",
|
||||
"vuejs/vuedatepicker_css": "5.4.0"
|
||||
},
|
||||
"config": {
|
||||
"bin-dir": "vendor/bin"
|
||||
|
||||
Generated
+73
-68
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "1105a07a83f98040eedbe34b23e11ee3",
|
||||
"content-hash": "728ac4542ac39ac1efbcea15134a81f9",
|
||||
"packages": [
|
||||
{
|
||||
"name": "afarkas/html5shiv",
|
||||
@@ -614,16 +614,16 @@
|
||||
},
|
||||
{
|
||||
"name": "components/jquery",
|
||||
"version": "3.6.0",
|
||||
"version": "v3.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/components/jquery.git",
|
||||
"reference": "6cf38ee1fd04b6adf8e7dda161283aa35be818c3"
|
||||
"reference": "8edc7785239bb8c2ad2b83302b856a1d61de60e7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/components/jquery/zipball/6cf38ee1fd04b6adf8e7dda161283aa35be818c3",
|
||||
"reference": "6cf38ee1fd04b6adf8e7dda161283aa35be818c3",
|
||||
"url": "https://api.github.com/repos/components/jquery/zipball/8edc7785239bb8c2ad2b83302b856a1d61de60e7",
|
||||
"reference": "8edc7785239bb8c2ad2b83302b856a1d61de60e7",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "component",
|
||||
@@ -659,7 +659,7 @@
|
||||
"source": "https://github.com/jquery/jquery",
|
||||
"wiki": "http://docs.jquery.com/"
|
||||
},
|
||||
"time": "2021-03-20T19:13:42+00:00"
|
||||
"time": "2023-09-22T01:43:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/jqueryui",
|
||||
@@ -1511,25 +1511,25 @@
|
||||
},
|
||||
{
|
||||
"name": "olifolkerd/tabulator5",
|
||||
"version": "5.2.1",
|
||||
"version": "5.5.2",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.2.1.zip"
|
||||
"url": "https://github.com/olifolkerd/tabulator/archive/refs/tags/5.5.2.zip"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "phpseclib/phpseclib",
|
||||
"version": "2.0.44",
|
||||
"version": "2.0.45",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||
"reference": "149f608243f8133c61926aae26ce67d2b22b37e5"
|
||||
"reference": "28d8f438a0064c9de80857e3270d071495544640"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/149f608243f8133c61926aae26ce67d2b22b37e5",
|
||||
"reference": "149f608243f8133c61926aae26ce67d2b22b37e5",
|
||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/28d8f438a0064c9de80857e3270d071495544640",
|
||||
"reference": "28d8f438a0064c9de80857e3270d071495544640",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1610,7 +1610,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/phpseclib/phpseclib/issues",
|
||||
"source": "https://github.com/phpseclib/phpseclib/tree/2.0.44"
|
||||
"source": "https://github.com/phpseclib/phpseclib/tree/2.0.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1626,7 +1626,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-06-13T08:41:47+00:00"
|
||||
"time": "2023-09-15T20:55:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rmariuzzo/jquery-checkboxes",
|
||||
@@ -1734,15 +1734,6 @@
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "tinymce/tinymce4",
|
||||
"version": "4.9.11",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/tinymce/tinymce-dist/archive/refs/tags/4.9.11.zip"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "tinymce/tinymce5",
|
||||
"version": "5.10.3",
|
||||
@@ -1848,6 +1839,24 @@
|
||||
},
|
||||
"time": "2020-02-11T05:59:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vuejs/vuedatepicker_css",
|
||||
"version": "5.4.0",
|
||||
"dist": {
|
||||
"type": "file",
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@5.4.0/dist/main.css"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "vuejs/vuedatepicker_js",
|
||||
"version": "5.4.0",
|
||||
"dist": {
|
||||
"type": "file",
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@5.4.0/dist/vue-datepicker.iife.js"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "vuejs/vuejs3",
|
||||
"version": "3.2.33",
|
||||
@@ -1865,24 +1874,6 @@
|
||||
"url": "https://unpkg.com/vue-router@4.1.3/dist/vue-router.global.js"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "vuepic/vue-datepicker-css",
|
||||
"version": "4.0.0",
|
||||
"dist": {
|
||||
"type": "file",
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/main.css"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "vuepic/vue-datepicker-js",
|
||||
"version": "4.0.0",
|
||||
"dist": {
|
||||
"type": "file",
|
||||
"url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/vue-datepicker.iife.js"
|
||||
},
|
||||
"type": "library"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@@ -2025,16 +2016,16 @@
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.16.0",
|
||||
"version": "v4.18.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "19526a33fb561ef417e822e85f08a00db4059c17"
|
||||
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17",
|
||||
"reference": "19526a33fb561ef417e822e85f08a00db4059c17",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
|
||||
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2075,34 +2066,34 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0"
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
|
||||
},
|
||||
"time": "2023-06-25T14:52:30+00:00"
|
||||
"time": "2023-12-10T21:03:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pdepend/pdepend",
|
||||
"version": "2.14.0",
|
||||
"version": "2.16.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pdepend/pdepend.git",
|
||||
"reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1"
|
||||
"reference": "66ceb05eaa8bf358574143c974b04463911bc700"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pdepend/pdepend/zipball/1121d4b04af06e33e9659bac3a6741b91cab1de1",
|
||||
"reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1",
|
||||
"url": "https://api.github.com/repos/pdepend/pdepend/zipball/66ceb05eaa8bf358574143c974b04463911bc700",
|
||||
"reference": "66ceb05eaa8bf358574143c974b04463911bc700",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.7",
|
||||
"symfony/config": "^2.3.0|^3|^4|^5|^6.0",
|
||||
"symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0",
|
||||
"symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0"
|
||||
"symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0",
|
||||
"symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0",
|
||||
"symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0",
|
||||
"symfony/polyfill-mbstring": "^1.19"
|
||||
},
|
||||
"require-dev": {
|
||||
"easy-doc/easy-doc": "0.0.0|^1.2.3",
|
||||
"gregwar/rst": "^1.0",
|
||||
"phpunit/phpunit": "^4.8.36|^5.7.27",
|
||||
"squizlabs/php_codesniffer": "^2.0.0"
|
||||
},
|
||||
"bin": [
|
||||
@@ -2132,7 +2123,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/pdepend/pdepend/issues",
|
||||
"source": "https://github.com/pdepend/pdepend/tree/2.14.0"
|
||||
"source": "https://github.com/pdepend/pdepend/tree/2.16.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2140,26 +2131,26 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-05-26T13:15:18+00:00"
|
||||
"time": "2023-12-10T18:38:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpmd/phpmd",
|
||||
"version": "2.13.0",
|
||||
"version": "2.15.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpmd/phpmd.git",
|
||||
"reference": "dad0228156856b3ad959992f9748514fa943f3e3"
|
||||
"reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpmd/phpmd/zipball/dad0228156856b3ad959992f9748514fa943f3e3",
|
||||
"reference": "dad0228156856b3ad959992f9748514fa943f3e3",
|
||||
"url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0",
|
||||
"reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0",
|
||||
"ext-xml": "*",
|
||||
"pdepend/pdepend": "^2.12.1",
|
||||
"pdepend/pdepend": "^2.16.1",
|
||||
"php": ">=5.3.9"
|
||||
},
|
||||
"require-dev": {
|
||||
@@ -2168,8 +2159,7 @@
|
||||
"ext-simplexml": "*",
|
||||
"gregwar/rst": "^1.0",
|
||||
"mikey179/vfsstream": "^1.6.8",
|
||||
"phpunit/phpunit": "^4.8.36 || ^5.7.27",
|
||||
"squizlabs/php_codesniffer": "^2.0"
|
||||
"squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2"
|
||||
},
|
||||
"bin": [
|
||||
"src/bin/phpmd"
|
||||
@@ -2206,6 +2196,7 @@
|
||||
"description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.",
|
||||
"homepage": "https://phpmd.org/",
|
||||
"keywords": [
|
||||
"dev",
|
||||
"mess detection",
|
||||
"mess detector",
|
||||
"pdepend",
|
||||
@@ -2215,7 +2206,7 @@
|
||||
"support": {
|
||||
"irc": "irc://irc.freenode.org/phpmd",
|
||||
"issues": "https://github.com/phpmd/phpmd/issues",
|
||||
"source": "https://github.com/phpmd/phpmd/tree/2.13.0"
|
||||
"source": "https://github.com/phpmd/phpmd/tree/2.15.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2223,7 +2214,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-09-10T08:44:15+00:00"
|
||||
"time": "2023-12-11T08:22:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpmetrics/phpmetrics",
|
||||
@@ -2600,12 +2591,12 @@
|
||||
"version": "3.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
|
||||
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
|
||||
"url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
|
||||
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
|
||||
"shasum": ""
|
||||
},
|
||||
@@ -2649,6 +2640,20 @@
|
||||
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/PHPCSStandards",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/jrfnl",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://opencollective.com/php_codesniffer",
|
||||
"type": "open_collective"
|
||||
}
|
||||
],
|
||||
"time": "2021-12-12T21:44:58+00:00"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -294,5 +294,4 @@ define ('DEFAULT_ALLIN_DIENSTVERTRAG',[111]);
|
||||
//Echter Dienstvertrag
|
||||
define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,111]);
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -47,6 +47,9 @@ define('CIS_PROFIL_STUDIENINFORMATION_ANZEIGEN',true);
|
||||
// Zeitaufzeichnung gesperrt_bis Datum YYYY-MM-DD
|
||||
define('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS','');
|
||||
|
||||
// maximale Dauer einer Zeitsperre in Tagen
|
||||
define('CIS_ZEITSPERREN_MAX_DAUER', 730);
|
||||
|
||||
// Anzeige des Links zur Noteneingabe in der LVA Uebersicht
|
||||
define('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN',true);
|
||||
|
||||
|
||||
@@ -276,7 +276,13 @@ define('DOCSBOX_WAITING_SLEEP_TIME', 1);
|
||||
// Bei folgenden Buchungstypen wird ein Anlegen geprüft ob bereits ein Eintrag für diesen Typ vorhanden ist im selben
|
||||
// Semester und ggf ein Hinweis ausgegeben
|
||||
define('FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK', serialize(
|
||||
array('StudiengebuehrAnzahlung', 'Studiengebuehr', 'StudiengebuehrRestzahlung', 'OEH')
|
||||
array(
|
||||
'Studiengebuehr' => array('StudiengebuehrErhoeht', 'Studiengebuehr', 'StudiengebuehrAnzahlung', 'StudiengebuehrRestzahlung'),
|
||||
'StudiengebuehrErhoeht' => array('StudiengebuehrErhoeht', 'Studiengebuehr', 'StudiengebuehrAnzahlung', 'StudiengebuehrRestzahlung'),
|
||||
'StudiengebuehrAnzahlung' => array('StudiengebuehrErhoeht', 'Studiengebuehr', 'StudiengebuehrAnzahlung'),
|
||||
'StudiengebuehrRestzahlung' => array('StudiengebuehrErhoeht', 'Studiengebuehr', 'StudiengebuehrRestzahlung'),
|
||||
'OEH' => array('OEH')
|
||||
))
|
||||
));
|
||||
|
||||
// Spezialnoten die am Zeunigs und Diplomasupplement ignoriert werden
|
||||
|
||||
@@ -253,7 +253,7 @@ else
|
||||
array('uid', 'stg_kz', 'person_id', 'id', 'prestudent_id', 'buchungsnummern', 'ss', 'abschlusspruefung_id',
|
||||
'typ', 'all', 'preoutgoing_id', 'lvid', 'projekt_kurzbz', 'von', 'bis', 'stundevon', 'stundebis',
|
||||
'sem', 'lehreinheit', 'mitarbeiter_uid', 'studienordnung_id', 'fixangestellt', 'standort',
|
||||
'abrechnungsmonat', 'form', 'projektarbeit_id', 'betreuerart_kurzbz')
|
||||
'abrechnungsmonat', 'form', 'projektarbeit_id', 'betreuerart_kurzbz', 'studiensemester_kurzbz')
|
||||
)
|
||||
)
|
||||
{
|
||||
|
||||
@@ -2502,10 +2502,15 @@ if(!$error)
|
||||
{
|
||||
$person_ids = explode(';',$_POST['person_ids']);
|
||||
$exists = false;
|
||||
if (defined('FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK') && (in_array($_POST['buchungstyp_kurzbz'], unserialize(FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK))))
|
||||
if (defined('FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK'))
|
||||
{
|
||||
$konto = new konto();
|
||||
$exists = $konto->checkDoppelteBuchung($person_ids, $_POST['studiensemester_kurzbz'], $_POST['buchungstyp_kurzbz']);
|
||||
$buchungen = unserialize(FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK);
|
||||
$buchung = $_POST['buchungstyp_kurzbz'];
|
||||
if (isset($buchungen[$buchung]))
|
||||
{
|
||||
$konto = new konto();
|
||||
$exists = $konto->checkDoppelteBuchung($person_ids, $_POST['studiensemester_kurzbz'], $buchungen[$buchung]);
|
||||
}
|
||||
}
|
||||
|
||||
if($exists)
|
||||
|
||||
@@ -208,7 +208,8 @@ else
|
||||
<menupopup id="student-filter-menu-popup" >
|
||||
<menuitem id="student-toolbar-filter-dokumente" label="fehlende Dokumente" oncommand="InteressentDokumenteFilter()" disabled="false" tooltiptext="Liste aller Studenten mit Fehlenden Dokumenten"/>
|
||||
<menuitem id="student-toolbar-filter-offenebuchungen" label="offene Buchungen" oncommand="StudentKontoFilterStudenten('konto')" disabled="false" tooltiptext="Liste aller Studenten mit offenen Buchungen"/>
|
||||
<menuitem id="student-toolbar-filter-studiengebuehr" label="nicht gebuchte Studiengebuehr" oncommand="StudentKontoFilterStudenten('studiengebuehr')" disabled="false" tooltiptext="Liste aller Studenten die noch nicht mit Studienbebuehr belastet wurden" />
|
||||
<menuitem id="student-toolbar-filter-studiengebuehr" label="nicht gebuchte Studiengebuehr" oncommand="StudentKontoFilterStudenten('studiengebuehr')" disabled="false" tooltiptext="Liste aller Studenten die noch nicht mit der Studiengebühr belastet wurden" />
|
||||
<menuitem id="student-toolbar-filter-erhoehte-studiengebuehr" label="erhöhten Studienbeitrag" oncommand="StudentKontoFilterStudenten('StudiengebuehrErhoeht')" disabled="false" tooltiptext="Liste aller Studenten denen der erhöhte Studienbeitrag eingebucht wurde" />
|
||||
<menuitem id="student-toolbar-filter-zgvohnedatum" label="ZGV eingetragen ohne Datum" oncommand="StudentKontoFilterStudenten('zgvohnedatum')" disabled="false" tooltiptext="Liste aller Studenten die ZGV eingetragen haben bei denen aber kein ZGV Datum gesetzt ist" />
|
||||
<menu label="nach Statusgrund">
|
||||
<menupopup id="student-filter-statusgrund-menu-popup">
|
||||
|
||||
@@ -27,8 +27,14 @@ header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../config/global.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
?>
|
||||
|
||||
<overlay id="StudentKonto"
|
||||
@@ -206,10 +212,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<spacer flex="1"/>
|
||||
<button id="student-konto-button-zahlungsbestaetigung" label="Zahlungsbestaetigung drucken" oncommand="StudentKontoZahlungsbestaetigung();" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
<vbox hidden="true">
|
||||
<label value="Buchungsnr" control="student-konto-textbox-buchungsnr"/>
|
||||
<textbox id="student-konto-textbox-buchungsnr" disabled="true"/>
|
||||
</vbox>
|
||||
<groupbox id="student-konto-groupbox">
|
||||
<caption label="Details"/>
|
||||
<grid id="student-konto-grid-detail" style="overflow:auto;margin:4px;" flex="1">
|
||||
@@ -218,6 +220,20 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<?php
|
||||
$hidden = 'hidden="true"';
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$hidden = '';
|
||||
?>
|
||||
<row <?php echo $hidden ?>>
|
||||
<label value="Buchungsnr" control="student-konto-textbox-buchungsnr"/>
|
||||
<hbox>
|
||||
<textbox id="student-konto-textbox-buchungsnr" readonly="true" size="9"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Betrag" control="student-konto-textbox-betrag"/>
|
||||
<hbox>
|
||||
|
||||
@@ -3532,6 +3532,10 @@ function StudentZeugnisDokumentArchivieren()
|
||||
xml = 'ausbildungsvertrag.xml.php';
|
||||
break;
|
||||
|
||||
case 'AbschlussdokumentLehrgaenge':
|
||||
xml = 'abschlussdokument_lehrgaenge.xml.php';
|
||||
break;
|
||||
|
||||
default:
|
||||
alert('Das Archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt');
|
||||
return
|
||||
|
||||
@@ -270,7 +270,8 @@ foreach ($uid_arr as $uid)
|
||||
'matrikelnummer' => rtrim($student->matrikelnr),
|
||||
'matr_nr' => $person->matr_nr,
|
||||
'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'))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+372
-350
File diff suppressed because it is too large
Load Diff
@@ -39,9 +39,9 @@ class dvb extends basis_db
|
||||
const DVB_URL_WEBSERVICE_NACHNAME = DVB_PORTAL.'/rws/0.2/simpleStudentByNachname.xml';
|
||||
const DVB_URL_WEBSERVICE_NAME = DVB_PORTAL.'/rws/0.2/simpleStudentByName.xml';
|
||||
const DVB_URL_WEBSERVICE_MATRIKELNUMMER = DVB_PORTAL.'/rws/0.2/simpleStudentByMatrikelnummer.xml';
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/rws/0.5/matrikelreservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/rws/0.5/matrikelmeldung.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK = DVB_PORTAL.'/rws/0.5/pruefebpk.xml';
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/rws/0.6/matrikelreservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/rws/0.6/matrikelmeldung.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK = DVB_PORTAL.'/rws/0.6/pruefebpk.xml';
|
||||
|
||||
public $authentication;
|
||||
private $username;
|
||||
@@ -829,7 +829,8 @@ class dvb extends basis_db
|
||||
if (ErrorHandler::isError($result))
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
$gebdat = str_replace("-", "", $person->geburtsdatum);
|
||||
//$gebdat = str_replace("-", "", $person->geburtsdatum);
|
||||
$gebdat = $person->geburtsdatum;
|
||||
|
||||
$data = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<matrikelnummernmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
@@ -1038,7 +1039,7 @@ class dvb extends basis_db
|
||||
<ausstellland>'.$reisepass->ausstellland.'</ausstellland>
|
||||
<dokumentnr>'.$reisepass->dokumentnr.'</dokumentnr>
|
||||
<dokumenttyp>'.$reisepass->dokumenttyp.'</dokumenttyp>
|
||||
</ernpmeldung>
|
||||
</ernpmeldung>
|
||||
';
|
||||
$data .= '</matrikelnummernmeldung>';
|
||||
|
||||
|
||||
@@ -965,17 +965,16 @@ class konto extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
public function checkDoppelteBuchung($person_ids, $stsem, $typ)
|
||||
public function checkDoppelteBuchung($person_ids, $stsem, $typen)
|
||||
{
|
||||
$qry = "SELECT person.vorname, person.nachname
|
||||
FROM public.tbl_konto konto
|
||||
JOIN public.tbl_person person USING(person_id)
|
||||
WHERE konto.person_id IN (".$this->implode4SQL(array_filter($person_ids)).")
|
||||
AND studiensemester_kurzbz = ".$this->db_add_param($stsem)."
|
||||
AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
|
||||
AND buchungstyp_kurzbz IN (".$this->implode4SQL($typen) .")
|
||||
GROUP BY person.vorname, person.nachname
|
||||
ORDER BY person.nachname, person.vorname";
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
$persons = array();
|
||||
|
||||
@@ -870,6 +870,81 @@ class prestudent extends person
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)";
|
||||
break;
|
||||
case "bewerberrtnichtangemeldet":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)";
|
||||
break;
|
||||
case "bewerberrtangemeldet":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)";
|
||||
break;
|
||||
case "bewerberrtangemeldetteilgenommen":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)
|
||||
AND reihungstestangetreten = true";
|
||||
break;
|
||||
case "bewerberrtangemeldetnichtteilgenommen":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)
|
||||
AND reihungstestangetreten = false
|
||||
";
|
||||
break;
|
||||
case "zgv":
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->load($studiengang_kz);
|
||||
|
||||
@@ -108,12 +108,13 @@ class pruefling extends basis_db
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES('.
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester, gesperrt) VALUES('.
|
||||
$this->db_add_param($this->studiengang_kz).",".
|
||||
$this->db_add_param($this->idnachweis).",".
|
||||
$this->db_add_param($this->registriert).",".
|
||||
$this->db_add_param($this->prestudent_id).",".
|
||||
$this->db_add_param($this->semester).");";
|
||||
$this->db_add_param($this->semester).",".
|
||||
$this->db_add_param($this->gesperrt, FHC_BOOLEAN).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -122,7 +123,8 @@ class pruefling extends basis_db
|
||||
' idnachweis='.$this->db_add_param($this->idnachweis).','.
|
||||
' registriert='.$this->db_add_param($this->registriert).','.
|
||||
' semester='.$this->db_add_param($this->semester).','.
|
||||
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).
|
||||
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).','.
|
||||
' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).
|
||||
" WHERE pruefling_id=".$this->db_add_param($this->pruefling_id, FHC_INTEGER, false).";";
|
||||
}
|
||||
|
||||
@@ -557,5 +559,43 @@ class pruefling extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function isGesperrt($pruefling_id = null, $prestudent_id = null)
|
||||
{
|
||||
if (is_null($pruefling_id) && is_null($prestudent_id))
|
||||
{
|
||||
$this->errormsg = 'Falsche Parameterübergabe';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT spruefling.gesperrt
|
||||
FROM testtool.tbl_pruefling
|
||||
RIGHT JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
JOIN public.tbl_prestudent pss ON pss.person_id = tbl_person.person_id
|
||||
JOIN testtool.tbl_pruefling spruefling ON pss.prestudent_id = spruefling.prestudent_id
|
||||
WHERE spruefling.gesperrt";
|
||||
|
||||
if (!is_null($pruefling_id))
|
||||
$qry .= " AND tbl_pruefling.pruefling_id = ".$this->db_add_param($pruefling_id, FHC_INTEGER);
|
||||
|
||||
if (!is_null($prestudent_id))
|
||||
$qry .= " AND tbl_prestudent.prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
$qry .= " LIMIT 1";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) == 0)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -694,11 +694,17 @@ class reihungstest extends basis_db
|
||||
tbl_reihungstest.studiensemester_kurzbz,
|
||||
tbl_reihungstest.stufe,
|
||||
tbl_reihungstest.anmeldefrist,
|
||||
tbl_reihungstest.aufnahmegruppe_kurzbz
|
||||
tbl_reihungstest.aufnahmegruppe_kurzbz,
|
||||
tbl_studiengang.typ,
|
||||
UPPER(typ::varchar(1) || kurzbz) AS stg_kuerzel,
|
||||
so.studiengangbezeichnung,
|
||||
so.studiengangbezeichnung_englisch
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN
|
||||
public.tbl_reihungstest ON (rt_id=reihungstest_id)
|
||||
JOIN public.tbl_reihungstest ON (rt_id=reihungstest_id)
|
||||
JOIN public.tbl_studiengang ON tbl_reihungstest.studiengang_kz = tbl_studiengang.studiengang_kz
|
||||
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
|
||||
WHERE
|
||||
tbl_rt_person.person_id=".$this->db_add_param($person_id);
|
||||
|
||||
@@ -737,6 +743,10 @@ class reihungstest extends basis_db
|
||||
$obj->stufe = $row->stufe;
|
||||
$obj->anmeldefrist = $row->anmeldefrist;
|
||||
$obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
|
||||
$obj->typ = $row->typ;
|
||||
$obj->stg_kuerzel = $row->stg_kuerzel;
|
||||
$obj->studiengangbezeichnung = $row->studiengangbezeichnung;
|
||||
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user