mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Merge branch 'master' into feature-29838/Anrechnungen-Sammelmail-fuer-LV-Leitung
This commit is contained in:
@@ -17,6 +17,9 @@ class SearchBar extends FHC_Controller
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Loads the AuthLib and starts the authentication
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
// Load the library SearchBarLib
|
||||
$this->load->library('SearchBarLib');
|
||||
}
|
||||
|
||||
@@ -18,7 +18,8 @@ class IssuesKonfiguration extends Auth_Controller
|
||||
'getApps' => 'admin:r',
|
||||
'getFehlerKonfigurationByApp' => 'admin:r',
|
||||
'saveFehlerKonfiguration' => 'admin:rw',
|
||||
'deleteKonfiguration' => 'admin:rw'
|
||||
'deleteKonfiguration' => 'admin:rw',
|
||||
'deleteKonfigurationsWerte' => 'admin:rw'
|
||||
)
|
||||
);
|
||||
|
||||
@@ -204,6 +205,73 @@ class IssuesKonfiguration extends Auth_Controller
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes values of a Konfiguration.
|
||||
*/
|
||||
public function deleteKonfigurationsWerte()
|
||||
{
|
||||
$konfigurationstyp_kurzbz = $this->input->post('konfigurationstyp_kurzbz');
|
||||
$fehlercode = $this->input->post('fehlercode');
|
||||
$konfigurationsWert = $this->input->post('konfigurationsWert');
|
||||
|
||||
// check if Konfigurationstyp correctly passed
|
||||
if (isEmptyString($konfigurationstyp_kurzbz)) $this->terminateWithJsonError($this->p->t('fehlermonitoring', 'ungueltigerKonfigurationstyp'));
|
||||
|
||||
// check if fehlercode correctly passed
|
||||
if (isEmptyString($fehlercode)) $this->terminateWithJsonError($this->p->t('fehlermonitoring', 'fehlercodeFehlt'));
|
||||
|
||||
// separate by semicolon if multiple values passed
|
||||
$konfigurationsWert = explode(';', $konfigurationsWert);
|
||||
|
||||
// check if konfiguration already set for the fehlercode
|
||||
$this->FehlerkonfigurationModel->addSelect('konfiguration');
|
||||
$fehlerkonfigurationRes = $this->FehlerkonfigurationModel->loadWhere(
|
||||
array(
|
||||
'konfigurationstyp_kurzbz' => $konfigurationstyp_kurzbz,
|
||||
'fehlercode' => $fehlercode
|
||||
)
|
||||
);
|
||||
|
||||
if (!hasData($fehlerkonfigurationRes)) $this->terminateWithJsonError($this->p->t('fehlermonitoring', 'fehlerFehlerKonfigurationLaden'));
|
||||
|
||||
// if konfiguration exists, update values
|
||||
if (hasData($fehlerkonfigurationRes))
|
||||
{
|
||||
$fehlerkonfiguration = getData($fehlerkonfigurationRes);
|
||||
|
||||
$existingKonf = json_decode($fehlerkonfiguration[0]->konfiguration);
|
||||
|
||||
if (!$existingKonf) $this->terminateWithJsonError($this->p->t('fehlermonitoring', 'fehlerJsonDekodierung'));
|
||||
|
||||
if (!is_array($existingKonf)) $existingKonf = array($existingKonf);
|
||||
|
||||
$newKonfArr = array_values(array_diff($existingKonf, $konfigurationsWert));
|
||||
|
||||
// if no konfiguration values left, delete whole entry
|
||||
if (isEmptyArray($newKonfArr))
|
||||
{
|
||||
$this->outputJson(
|
||||
$this->FehlerkonfigurationModel->delete(
|
||||
array('konfigurationstyp_kurzbz' => $konfigurationstyp_kurzbz, 'fehlercode' => $fehlercode)
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$newKonf = json_encode($newKonfArr);
|
||||
if (!$newKonf) $this->terminateWithJsonError("error when encoding JSON");
|
||||
|
||||
// if there are still values, delete only part of the konfiguration
|
||||
$this->outputJson(
|
||||
$this->FehlerkonfigurationModel->update(
|
||||
array('konfigurationstyp_kurzbz' => $konfigurationstyp_kurzbz, 'fehlercode' => $fehlercode),
|
||||
array('konfiguration' => $newKonf, 'updateamum' => 'NOW()', 'updatevon' => $this->_uid)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a Konfiguration.
|
||||
*/
|
||||
|
||||
@@ -551,10 +551,7 @@ class AuthLib
|
||||
// Needed information
|
||||
$this->_ci->PersonModel->addSelect('person_id, vorname, nachname, uid');
|
||||
// Retrieves the uid if it is possible for active users
|
||||
$this->_ci->PersonModel->addJoin(
|
||||
'(SELECT uid, person_id FROM public.tbl_benutzer WHERE aktiv = TRUE) tb', 'person_id',
|
||||
'LEFT'
|
||||
);
|
||||
$this->_ci->PersonModel->addJoin('public.tbl_benutzer', 'person_id', 'LEFT');
|
||||
|
||||
// Execute query with where clause
|
||||
$personResult = $this->_ci->PersonModel->loadWhere($queryParamsArray);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@ class AbbrecherAktiv extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getAbbrecherAktiv($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getAbbrecherAktiv($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -43,4 +43,49 @@ class AbbrecherAktiv extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Abbrecher cannot be active.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getAbbrecherAktiv($studiengang_kz = null, $prestudent_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
pre.person_id, pre.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudentstatus pre_status
|
||||
JOIN public.tbl_prestudent pre USING(prestudent_id)
|
||||
JOIN public.tbl_student student USING(prestudent_id)
|
||||
JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
pre_status.status_kurzbz ='Abbrecher'
|
||||
AND benutzer.aktiv=true";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class AbschlussstatusFehlt extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getAbschlussstatusFehlt(
|
||||
$prestudentRes = $this->getAbschlussstatusFehlt(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -49,4 +49,95 @@ class AbschlussstatusFehlt extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prestudent should have a final status.
|
||||
* @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getAbschlussstatusFehlt(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT ON (pre.prestudent_id)
|
||||
pre.person_id, pre.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz, status.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE
|
||||
NOT EXISTS( /*student does not study anymore*/
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_prestudentstatus ps
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE
|
||||
prestudent_id=pre.prestudent_id
|
||||
/* 4 months: There might be Diplomanden, in summer months end status is often not entered yet */
|
||||
AND tbl_studiensemester.ende>now() - interval '4 months'
|
||||
)
|
||||
/* check only valid begininng with 2018 */
|
||||
AND '2018-01-01'<(SELECT max(datum) FROM public.tbl_prestudentstatus WHERE prestudent_id=pre.prestudent_id)
|
||||
AND NOT EXISTS( /* no end status */
|
||||
SELECT 1
|
||||
FROM public.tbl_prestudentstatus ps
|
||||
WHERE
|
||||
prestudent_id=pre.prestudent_id
|
||||
AND status_kurzbz IN('Abbrecher','Abgewiesener','Absolvent','Incoming')
|
||||
)
|
||||
AND stg.melderelevant
|
||||
AND pre.bismelden";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$prevStudiensemesterRes = $this->_ci->StudiensemesterModel->getPreviousFrom($studiensemester_kurzbz);
|
||||
|
||||
if (isError($prevStudiensemesterRes)) return $prevStudiensemesterRes;
|
||||
|
||||
if (hasData($prevStudiensemesterRes))
|
||||
{
|
||||
// if Studiensemester given, check only if has status in current or previous semester
|
||||
$prevStudiensemester = getData($prevStudiensemesterRes)[0]->studiensemester_kurzbz;
|
||||
$qry .= " AND EXISTS (
|
||||
SELECT 1
|
||||
FROM public.tbl_prestudentstatus ps
|
||||
WHERE studiensemester_kurzbz IN (?, ?)
|
||||
AND ps.prestudent_id = pre.prestudent_id
|
||||
)";
|
||||
$params[] = $prevStudiensemester;
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class AktSemesterNull extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getAktSemesterNull($studiensemester_kurzbz, $studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getAktSemesterNull($studiensemester_kurzbz, $studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -50,4 +50,51 @@ class AktSemesterNull extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Current Ausbildungssemester shouldn't be 0.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getAktSemesterNull($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT pre.person_id, pre.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz, prestat.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_prestudentstatus prestat USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE
|
||||
prestat.status_kurzbz != 'Incoming'
|
||||
AND prestat.studiensemester_kurzbz = ?
|
||||
AND ausbildungssemester = 0
|
||||
AND stg.melderelevant
|
||||
AND pre.bismelden";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class AktiverStudentOhneStatus extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getAktiverStudentOhneStatus($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getAktiverStudentOhneStatus($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -43,4 +43,57 @@ class AktiverStudentOhneStatus extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Students with active Benutzer should have a status in the current semester.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getAktiverStudentOhneStatus($studiengang_kz = null, $prestudent_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT (student_uid), prestudent.person_id, prestudent.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_benutzer benutzer on (benutzer.uid = student.student_uid)
|
||||
JOIN public.tbl_prestudent prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
benutzer.aktiv=TRUE
|
||||
AND stg.melderelevant
|
||||
AND prestudent.bismelden
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM public.tbl_prestudentstatus
|
||||
JOIN public.tbl_studiensemester sem USING (studiensemester_kurzbz)
|
||||
WHERE prestudent_id = prestudent.prestudent_id
|
||||
/* buffer of four months, as status are often entered later */
|
||||
AND sem.ende::date > NOW() - interval '4 months'
|
||||
)";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class AktiverStudentstatusOhneKontobuchung extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getAktiverStudentstatusOhneKontobuchung(
|
||||
$prestudentRes = $this->getAktiverStudentstatusOhneKontobuchung(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -55,4 +55,66 @@ class AktiverStudentstatusOhneKontobuchung extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Student with active status should have been charged, i.e. have a Kontobuchung with a negative or zero value.
|
||||
* @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getAktiverStudentstatusOhneKontobuchung(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT ON (pre.prestudent_id)
|
||||
pre.person_id, pre.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz, status.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_person pers USING(person_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE
|
||||
status.studiensemester_kurzbz = ?
|
||||
AND status.status_kurzbz IN ('Student', 'Incoming')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM
|
||||
public.tbl_konto
|
||||
WHERE
|
||||
person_id = pers.person_id
|
||||
AND studiensemester_kurzbz = status.studiensemester_kurzbz
|
||||
AND buchungsnr_verweis IS NULL
|
||||
AND betrag <= 0
|
||||
)
|
||||
AND stg.melderelevant
|
||||
AND pre.bismelden";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
+56
-1
@@ -21,7 +21,7 @@ class AusbildungssemPrestudentUngleichAusbildungssemStatus extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getAusbildungssemPrestudentUngleichAusbildungssemStatus(
|
||||
$prestudentRes = $this->getAusbildungssemPrestudentUngleichAusbildungssemStatus(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -58,4 +58,59 @@ class AusbildungssemPrestudentUngleichAusbildungssemStatus extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ausbildungssemester of prestudent (lehrverband) must be the same as Ausbildungssemester of prestudentstatus.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getAusbildungssemPrestudentUngleichAusbildungssemStatus(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array($studiensemester_kurzbz, $studiensemester_kurzbz, $studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT(student.student_uid), student.student_uid, prestudent.person_id, prestudent.prestudent_id,
|
||||
status.ausbildungssemester AS status_ausbildungssemester, lv.semester AS student_ausbildungssemester, status.studiensemester_kurzbz,
|
||||
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_studentlehrverband lv USING(student_uid)
|
||||
JOIN public.tbl_prestudent prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
status.studiensemester_kurzbz = ?
|
||||
AND lv.studiensemester_kurzbz = ?
|
||||
AND status.status_kurzbz NOT IN ('Interessent','Bewerber','Aufgenommener','Wartender','Abgewiesener','Unterbrecher')
|
||||
AND get_rolle_prestudent (prestudent_id, ?)='Student'
|
||||
AND status.ausbildungssemester != lv.semester";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class BewerberNichtZumRtAngetreten extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getBewerberNichtZumRtAngetreten(
|
||||
$prestudentRes = $this->getBewerberNichtZumRtAngetreten(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -52,4 +52,72 @@ class BewerberNichtZumRtAngetreten extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bewerber should have participated in Reihungstest.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getBewerberNichtZumRtAngetreten(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$this->_ci->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$previousStudiensemesterRes = $this->_ci->StudiensemesterModel->getPreviousFrom($studiensemester_kurzbz);
|
||||
|
||||
if (isError($previousStudiensemesterRes)) return $previousStudiensemesterRes;
|
||||
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
prestudent.person_id, prestudent.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz, status.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent prestudent
|
||||
JOIN public.tbl_prestudentstatus status ON(prestudent.prestudent_id=status.prestudent_id)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
LEFT JOIN bis.tbl_orgform USING(orgform_kurzbz)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE
|
||||
status_kurzbz='Bewerber'
|
||||
AND reihungstestangetreten=false
|
||||
AND stg.melderelevant
|
||||
AND prestudent.bismelden";
|
||||
|
||||
if (hasData($previousStudiensemesterRes))
|
||||
{
|
||||
$previousStudiensemester = getData($previousStudiensemesterRes)[0]->studiensemester_kurzbz;
|
||||
$qry .= " AND (studiensemester_kurzbz=? OR studiensemester_kurzbz=?)";
|
||||
$params[] = $previousStudiensemester;
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry .= " AND studiensemester_kurzbz=?";
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class DatumAbschlusspruefungFehlt extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getDatumAbschlusspruefungFehlt(
|
||||
$prestudentRes = $this->getDatumAbschlusspruefungFehlt(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -52,4 +52,72 @@ class DatumAbschlusspruefungFehlt extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Date of final exam shouldn't be missing for Absolvent.
|
||||
* @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param abschlusspruefung_id int if check is to be executed for a certain Abschlussprüfung
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getDatumAbschlusspruefungFehlt(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$abschlusspruefung_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
pre.person_id, pre.prestudent_id,
|
||||
pruefung.sponsion, pruefung.datum, pruefung.abschlusspruefung_id,
|
||||
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_student stud USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus prestatus USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
JOIN lehre.tbl_abschlusspruefung pruefung ON stud.student_uid = pruefung.student_uid
|
||||
WHERE
|
||||
status_kurzbz = 'Absolvent'
|
||||
AND NOT EXISTS ( /* exclude gs */
|
||||
SELECT 1
|
||||
FROM bis.tbl_mobilitaet
|
||||
WHERE prestudent_id = pre.prestudent_id
|
||||
AND studiensemester_kurzbz = prestatus.studiensemester_kurzbz
|
||||
)
|
||||
AND abschlussbeurteilung_kurzbz!='nicht'
|
||||
AND abschlussbeurteilung_kurzbz IS NOT NULL
|
||||
AND pruefung.datum IS NULL
|
||||
AND pre.bismelden
|
||||
AND stg.melderelevant";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND prestatus.studiensemester_kurzbz = ?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($abschlusspruefung_id))
|
||||
{
|
||||
$qry .= " AND pruefung.abschlusspruefung_id = ?";
|
||||
$params[] = $abschlusspruefung_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class DatumSponsionFehlt extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getDatumSponsionFehlt(
|
||||
$prestudentRes = $this->getDatumSponsionFehlt(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -52,4 +52,72 @@ class DatumSponsionFehlt extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Date of sponsion shouldn't be missing for Absolvent.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param abschlusspruefung_id int if check is to be executed only for a certain Abschlussprüfung
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getDatumSponsionFehlt(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$abschlusspruefung_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
pre.person_id, pre.prestudent_id,
|
||||
pruefung.sponsion, pruefung.datum, pruefung.abschlusspruefung_id,
|
||||
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_student stud USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus prestatus USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
JOIN lehre.tbl_abschlusspruefung pruefung ON stud.student_uid = pruefung.student_uid
|
||||
WHERE
|
||||
status_kurzbz = 'Absolvent'
|
||||
AND NOT EXISTS ( /* exclude gs */
|
||||
SELECT 1
|
||||
FROM bis.tbl_mobilitaet
|
||||
WHERE prestudent_id = pre.prestudent_id
|
||||
AND studiensemester_kurzbz = prestatus.studiensemester_kurzbz
|
||||
)
|
||||
AND abschlussbeurteilung_kurzbz!='nicht'
|
||||
AND abschlussbeurteilung_kurzbz IS NOT NULL
|
||||
AND pruefung.sponsion IS NULL
|
||||
AND pre.bismelden
|
||||
AND stg.melderelevant";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND prestatus.studiensemester_kurzbz = ?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($abschlusspruefung_id))
|
||||
{
|
||||
$qry .= " AND pruefung.abschlusspruefung_id = ?";
|
||||
$params[] = $abschlusspruefung_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);
|
||||
}
|
||||
}
|
||||
|
||||
+61
-1
@@ -20,7 +20,7 @@ class DatumStudiensemesterFalscheReihenfolge extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getDatumStudiensemesterFalscheReihenfolge($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getDatumStudiensemesterFalscheReihenfolge($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -45,4 +45,64 @@ class DatumStudiensemesterFalscheReihenfolge extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Status Dates and status studysemester dates should be in correct order.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if check is to be executed only for certain Studiengaenge
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getDatumStudiensemesterFalscheReihenfolge($studiengang_kz = null, $prestudent_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
// all active students with Status student in current semester
|
||||
$qry = "
|
||||
SELECT DISTINCT ON (prestudent_id) *
|
||||
FROM (
|
||||
SELECT
|
||||
prestudent.person_id, prestudent.prestudent_id,
|
||||
stg.studiengang_kz, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz,
|
||||
ROW_NUMBER () OVER (
|
||||
PARTITION BY prestudent.prestudent_id
|
||||
ORDER BY sem.start DESC, status.datum DESC, status.insertamum DESC, status.ext_id DESC
|
||||
) AS reihenfolge_semester,
|
||||
ROW_NUMBER () OVER (
|
||||
PARTITION BY prestudent.prestudent_id
|
||||
ORDER BY status.datum DESC, status.insertamum DESC, status.ext_id DESC
|
||||
) AS reihenfolge_datum
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_benutzer benutzer on(student.student_uid = benutzer.uid)
|
||||
JOIN public.tbl_prestudent prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiensemester sem USING(studiensemester_kurzbz)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
benutzer.aktiv=true
|
||||
AND status.status_kurzbz='Student'
|
||||
) reihenfolge
|
||||
WHERE reihenfolge_semester <> reihenfolge_datum";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent_id = ?";
|
||||
$params[] = $prestudent_id;
|
||||
}
|
||||
|
||||
if (isset($exkludierte_studiengang_kz) && !isEmptyArray($exkludierte_studiengang_kz))
|
||||
{
|
||||
$qry .= " AND studiengang_kz NOT IN ?";
|
||||
$params[] = $exkludierte_studiengang_kz;
|
||||
}
|
||||
|
||||
return $this->_db->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class FalscheAnzahlAbschlusspruefungen extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getFalscheAnzahlAbschlusspruefungen(
|
||||
$prestudentRes = $this->getFalscheAnzahlAbschlusspruefungen(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -49,4 +49,77 @@ class FalscheAnzahlAbschlusspruefungen extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Students with finished studies should have exactly one final exam.
|
||||
* @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getFalscheAnzahlAbschlusspruefungen(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT * FROM (
|
||||
SELECT
|
||||
DISTINCT ON(pre.prestudent_id) pre.person_id, pre.prestudent_id, student_uid, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz,
|
||||
(
|
||||
SELECT COUNT(*)
|
||||
FROM lehre.tbl_abschlusspruefung
|
||||
WHERE student_uid = stud.student_uid
|
||||
AND abschlussbeurteilung_kurzbz != 'nicht'
|
||||
AND abschlussbeurteilung_kurzbz IS NOT NULL
|
||||
) AS anzahl_abschlusspruefungen
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_student stud USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
status_kurzbz = 'Absolvent'
|
||||
AND pre.bismelden
|
||||
AND stg.melderelevant
|
||||
AND NOT EXISTS ( /* exclude gs */
|
||||
SELECT 1
|
||||
FROM bis.tbl_mobilitaet
|
||||
WHERE prestudent_id = pre.prestudent_id
|
||||
AND studiensemester_kurzbz = status.studiensemester_kurzbz
|
||||
)";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND status.studiensemester_kurzbz = ?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_id;
|
||||
}
|
||||
|
||||
if (isset($exkludierte_studiengang_kz) && !isEmptyArray($exkludierte_studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz NOT IN ?";
|
||||
$params[] = $exkludierte_studiengang_kz;
|
||||
}
|
||||
|
||||
$qry .= ") studenten
|
||||
WHERE anzahl_abschlusspruefungen != 1";
|
||||
|
||||
return $this->_db->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class FalscheAnzahlHeimatadressen extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$personRes = $this->_ci->plausichecklib->getFalscheAnzahlHeimatadressen(
|
||||
$personRes = $this->getFalscheAnzahlHeimatadressen(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -47,4 +47,67 @@ class FalscheAnzahlHeimatadressen extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Students should have exactly one home address.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param person_id int if check is to be executed only for one person
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getFalscheAnzahlHeimatadressen(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$person_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT person_id
|
||||
FROM
|
||||
(
|
||||
SELECT person_id, COUNT(adresse_id) AS anzahl_adressen
|
||||
FROM public.tbl_adresse addr
|
||||
WHERE heimatadresse IS TRUE
|
||||
GROUP BY person_id
|
||||
) adressen
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_prestudent pre USING(person_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_student USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
anzahl_adressen != 1
|
||||
AND stg.melderelevant
|
||||
AND pre.bismelden";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND status.studiensemester_kurzbz = ?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$qry .= " AND person_id = ?";
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class FalscheAnzahlZustelladressen extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$personRes = $this->_ci->plausichecklib->getFalscheAnzahlZustelladressen(
|
||||
$personRes = $this->getFalscheAnzahlZustelladressen(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -47,4 +47,67 @@ class FalscheAnzahlZustelladressen extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Students should have exactly one delivery address.
|
||||
* @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param person_id int if check is to be executed only for one person
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getFalscheAnzahlZustelladressen(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$person_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT person_id
|
||||
FROM
|
||||
(
|
||||
SELECT person_id, COUNT(adresse_id) AS anzahl_adressen
|
||||
FROM public.tbl_adresse addr
|
||||
WHERE zustelladresse IS TRUE
|
||||
GROUP BY person_id
|
||||
) adressen
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_prestudent pre USING(person_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_student USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
anzahl_adressen != 1
|
||||
AND stg.melderelevant
|
||||
AND pre.bismelden";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND status.studiensemester_kurzbz = ?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$qry .= " AND person_id = ?";
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class GbDatumWeitZurueck extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$personRes = $this->_ci->plausichecklib->getGbDatumWeitZurueck($studiensemester_kurzbz, $studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$personRes = $this->getGbDatumWeitZurueck($studiensemester_kurzbz, $studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($personRes)) return $personRes;
|
||||
|
||||
@@ -42,4 +42,63 @@ class GbDatumWeitZurueck extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Birthdate is too long ago.
|
||||
* @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param person_id int if check is to be executed only for one person
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getGbDatumWeitZurueck(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$person_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
pers.person_id
|
||||
FROM
|
||||
public.tbl_person pers
|
||||
WHERE
|
||||
pers.gebdatum < '1920-01-01'
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM public.tbl_prestudent
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE person_id = pers.person_id";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND status.studiensemester_kurzbz = ?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
$qry .= ")";
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$qry .= " AND pers.person_id = ?";
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class InaktiverStudentAktiverStatus extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getInaktiverStudentAktiverStatus(
|
||||
$prestudentRes = $this->getInaktiverStudentAktiverStatus(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -52,4 +52,62 @@ class InaktiverStudentAktiverStatus extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Students with active status should have an active Benutzer.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getInaktiverStudentAktiverStatus(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$aktStudiensemesterRes = $this->_ci->StudiensemesterModel->getAkt();
|
||||
|
||||
if (isError($aktStudiensemesterRes)) return $aktStudiensemesterRes;
|
||||
|
||||
$studiensemester_kurzbz = hasData($aktStudiensemesterRes) ? getData($aktStudiensemesterRes)[0]->studiensemester_kurzbz : '';
|
||||
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT(student.student_uid), prestudent.person_id, prestudent.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_benutzer benutzer
|
||||
JOIN public.tbl_student student on(benutzer.uid = student.student_uid)
|
||||
JOIN public.tbl_prestudent prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
benutzer.aktiv=false
|
||||
AND EXISTS (SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id = prestudent.prestudent_id AND studiensemester_kurzbz = ?)
|
||||
AND get_rolle_prestudent(prestudent_id, NULL) IN ('Student', 'Diplomand', 'Unterbrecher', 'Praktikant')
|
||||
AND stg.melderelevant
|
||||
AND prestudent.bismelden";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class IncomingHeimatNationOesterreich extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$personRes = $this->_ci->plausichecklib->getIncomingHeimatNationOesterreich(
|
||||
$personRes = $this->getIncomingHeimatNationOesterreich(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -47,4 +47,58 @@ class IncomingHeimatNationOesterreich extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Incoming shouldn't have austrian home address.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param person_id int if check is to be executed only for one person
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getIncomingHeimatNationOesterreich(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$person_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT pers.person_id, status.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_person pers USING(person_id)
|
||||
JOIN public.tbl_adresse addr USING(person_id)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE
|
||||
status.status_kurzbz = 'Incoming'
|
||||
AND addr.nation = 'A'
|
||||
AND addr.heimatadresse
|
||||
AND status.studiensemester_kurzbz = ?
|
||||
AND stg.melderelevant
|
||||
AND pre.bismelden";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$qry .= " AND pers.person_id = ?";
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class IncomingOhneIoDatensatz extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getIncomingOhneIoDatensatz($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getIncomingOhneIoDatensatz($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -43,4 +43,54 @@ class IncomingOhneIoDatensatz extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Incoming should have IN/OUT data.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getIncomingOhneIoDatensatz($studiengang_kz = null, $prestudent_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT ON(student_uid, nachname, vorname)
|
||||
tbl_person.person_id,
|
||||
tbl_prestudent.prestudent_id,
|
||||
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_student
|
||||
JOIN public.tbl_benutzer ON(student_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON(stg.studiengang_kz=tbl_student.studiengang_kz)
|
||||
WHERE
|
||||
bismelden=TRUE
|
||||
AND status_kurzbz='Incoming' AND NOT EXISTS (SELECT 1 FROM bis.tbl_bisio WHERE student_uid=tbl_student.student_uid)
|
||||
AND stg.melderelevant";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND tbl_prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class IncomingOrGsFoerderrelevant extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getIncomingOrGsFoerderrelevant(
|
||||
$prestudentRes = $this->getIncomingOrGsFoerderrelevant(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -49,4 +49,77 @@ class IncomingOrGsFoerderrelevant extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Incoming or gemeinsame Studien students should not receive funding (not be förderrelevant).
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return object success or error
|
||||
*/
|
||||
public function getIncomingOrGsFoerderrelevant(
|
||||
$studiensemester_kurzbz = null,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT ON(prestudent_id)
|
||||
pers.person_id,
|
||||
ps.prestudent_id,
|
||||
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_student stud
|
||||
JOIN public.tbl_benutzer ON(student_uid=uid)
|
||||
JOIN public.tbl_person pers USING(person_id)
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON(stg.studiengang_kz=stud.studiengang_kz)
|
||||
WHERE
|
||||
(
|
||||
status.status_kurzbz = 'Incoming'
|
||||
OR EXISTS (
|
||||
SELECT 1
|
||||
FROM
|
||||
bis.tbl_mobilitaet
|
||||
JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
WHERE
|
||||
prestudent_id = ps.prestudent_id
|
||||
AND gsstudientyp_kurzbz = 'Extern'
|
||||
)
|
||||
)
|
||||
AND (ps.foerderrelevant <> FALSE OR ps.foerderrelevant IS NULL)
|
||||
AND bismelden=TRUE
|
||||
AND stg.melderelevant";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND status.studiensemester_kurzbz = ?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND ps.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class InskriptionVorLetzerBismeldung extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getInskriptionVorLetzerBismeldung(
|
||||
$prestudentRes = $this->getInskriptionVorLetzerBismeldung(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -56,4 +56,93 @@ class InskriptionVorLetzerBismeldung extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Students of a semester shouldn't start studies before the date of Bismeldung.
|
||||
* e.g. If student studies in WS2022 datum of status shouldn't be before 15.4.2020
|
||||
* e.g. If student studies in SS2022 datum of status shouldn't be before 15.11.2022
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getInskriptionVorLetzerBismeldung(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
// get Bismeldedatum
|
||||
$datumBis = $this->_getBisdateFromSemester($studiensemester_kurzbz);
|
||||
|
||||
$params = array($datumBis, $studiensemester_kurzbz, $datumBis);
|
||||
|
||||
// get active students
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT ON (student.student_uid) ? AS datum_bismeldung,
|
||||
prestudent.person_id, prestudent.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz, status.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_benutzer benutzer
|
||||
JOIN public.tbl_student student on(benutzer.uid = student.student_uid)
|
||||
JOIN public.tbl_prestudent prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
benutzer.aktiv=true
|
||||
AND status.studiensemester_kurzbz = ?
|
||||
/* inscription date before date of first student status */
|
||||
AND (
|
||||
SELECT datum
|
||||
FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id = prestudent.prestudent_id
|
||||
AND studiensemester_kurzbz = status.studiensemester_kurzbz
|
||||
AND status_kurzbz = 'Student'
|
||||
ORDER BY datum, insertamum, ext_id
|
||||
LIMIT 1
|
||||
) < ?
|
||||
AND stg.melderelevant
|
||||
AND prestudent.bismelden";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Bismeldedate from Studiensemester.
|
||||
* @param studiensemester_kurzbz string
|
||||
*/
|
||||
private function _getBisdateFromSemester($studiensemester_kurzbz)
|
||||
{
|
||||
$semesterYear = substr($studiensemester_kurzbz, 2, 6);
|
||||
$semesterType = substr($studiensemester_kurzbz, 0, 2);
|
||||
|
||||
if ($semesterType == 'SS')
|
||||
{
|
||||
return date_format(date_create(($semesterYear - 1)."-11-15"), 'Y-m-d');
|
||||
}
|
||||
|
||||
if ($semesterType == 'WS')
|
||||
{
|
||||
return date_format(date_create($semesterYear."-04-15"), 'Y-m-d');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class NationNichtOesterreichAberGemeinde extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$personRes = $this->_ci->plausichecklib->getNationNichtOesterreichAberGemeinde(
|
||||
$personRes = $this->getNationNichtOesterreichAberGemeinde(
|
||||
$studiengang_kz,
|
||||
null,
|
||||
$exkludierte_studiengang_kz
|
||||
@@ -46,4 +46,49 @@ class NationNichtOesterreichAberGemeinde extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Nation is not Austria, but address has austrian Gemeinde.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param person_id int if check is to be executed only for one person
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getNationNichtOesterreichAberGemeinde($studiengang_kz = null, $person_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
$qry = "SELECT DISTINCT tbl_person.person_id, adr.gemeinde, adr.adresse_id
|
||||
FROM
|
||||
public.tbl_adresse adr
|
||||
JOIN public.tbl_prestudent USING(person_id)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_student USING(prestudent_id)
|
||||
JOIN public.tbl_benutzer ON(uid=student_uid)
|
||||
JOIN public.tbl_studiengang stg ON tbl_prestudent.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
adr.nation!='A'
|
||||
AND tbl_benutzer.aktiv
|
||||
AND gemeinde NOT IN ('Münster')
|
||||
AND EXISTS(SELECT 1 FROM bis.tbl_gemeinde WHERE name = adr.gemeinde)";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$qry .= " AND tbl_person.person_id = ?";
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class OrgformStgUngleichOrgformPrestudent extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getOrgformStgUngleichOrgformPrestudent(
|
||||
$prestudentRes = $this->getOrgformStgUngleichOrgformPrestudent(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -57,4 +57,74 @@ class OrgformStgUngleichOrgformPrestudent extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Orgform of a Studiengang in Studienplan should be the same as orgform of student.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getOrgformStgUngleichOrgformPrestudent(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
prestudent.person_id, prestudent.prestudent_id, status.studiensemester_kurzbz,
|
||||
studiengang.orgform_kurzbz AS stg_orgform, status.orgform_kurzbz AS student_orgform,
|
||||
prestudent.studiengang_kz AS student_studiengang, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_studiengang studiengang
|
||||
JOIN public.tbl_student student USING(studiengang_kz)
|
||||
JOIN public.tbl_prestudent prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
LEFT JOIN lehre.tbl_studienplan stpl USING (studienplan_id)
|
||||
WHERE
|
||||
benutzer.aktiv = true
|
||||
AND status.status_kurzbz IN ('Student', 'Unterbrecher', 'Abbrecher', 'Diplomand', 'Absolvent')
|
||||
AND studiengang.studiengang_kz < 10000
|
||||
AND status.studiensemester_kurzbz = ?
|
||||
AND NOT (status.orgform_kurzbz IS NULL AND studiengang.mischform = FALSE)
|
||||
AND NOT EXISTS(
|
||||
SELECT 1
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN
|
||||
lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE
|
||||
tbl_studienplan.studienplan_id = stpl.studienplan_id
|
||||
AND tbl_studienordnung.studiengang_kz = prestudent.studiengang_kz
|
||||
AND tbl_studienplan.orgform_kurzbz = status.orgform_kurzbz)";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND studiengang.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_id;
|
||||
}
|
||||
|
||||
if (isset($exkludierte_studiengang_kz) && !isEmptyArray($exkludierte_studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz NOT IN ?";
|
||||
$params[] = $exkludierte_studiengang_kz;
|
||||
}
|
||||
|
||||
$qry .= "
|
||||
ORDER BY student_uid";
|
||||
|
||||
return $this->_db->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ abstract class PlausiChecker
|
||||
{
|
||||
protected $_ci; // code igniter instance
|
||||
protected $_config; // configuration parameters for this plausicheck
|
||||
protected $_db; // database for queries
|
||||
|
||||
public function __construct($configurationParams = null)
|
||||
{
|
||||
@@ -15,8 +16,8 @@ abstract class PlausiChecker
|
||||
// set configuration
|
||||
$this->_config = $configurationParams;
|
||||
|
||||
// load libraries
|
||||
$this->_ci->load->library('issues/PlausicheckLib'); // load plausicheck library
|
||||
// get database for queries
|
||||
$this->_db = new DB_Model();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,7 +21,7 @@ class PrestudentMischformOhneOrgform extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getPrestudentMischformOhneOrgform(
|
||||
$prestudentRes = $this->getPrestudentMischformOhneOrgform(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -55,4 +55,55 @@ class PrestudentMischformOhneOrgform extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Students in "mixed" Studiengang should have Orgform.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getPrestudentMischformOhneOrgform(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
pre.person_id, pre.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz, status.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE
|
||||
status.status_kurzbz IN ('Bewerber', 'Student')
|
||||
AND stg.mischform
|
||||
AND (status.orgform_kurzbz='' OR status.orgform_kurzbz IS NULL)
|
||||
AND status.studiensemester_kurzbz=?";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class StgPrestudentUngleichStgStudent extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getStgPrestudentUngleichStgStudent($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getStgPrestudentUngleichStgStudent($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -43,4 +43,48 @@ class StgPrestudentUngleichStgStudent extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Studiengang should be the same for prestudent and student.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getStgPrestudentUngleichStgStudent($studiengang_kz = null, $prestudent_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
pre.person_id, pre.prestudent_id, stg.oe_kurzbz prestudent_stg_oe_kurzbz, student_stg.oe_kurzbz student_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_student stud USING(prestudent_id)
|
||||
JOIN public.tbl_person pers USING(person_id)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
JOIN public.tbl_studiengang student_stg ON stud.studiengang_kz = student_stg.studiengang_kz
|
||||
WHERE
|
||||
stud.studiengang_kz != pre.studiengang_kz";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class StgPrestudentUngleichStgStudienplan extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getStgPrestudentUngleichStgStudienplan($studiengang_kz, null, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getStgPrestudentUngleichStgStudienplan($studiengang_kz, null, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -43,4 +43,62 @@ class StgPrestudentUngleichStgStudienplan extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Studiengang should be the same for prestudent and studienplan.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param studienordnung_id int if check is to be executed only for a certain studienordnung_id
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getStgPrestudentUngleichStgStudienplan(
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$studienordnung_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT ON (ps.prestudent_id) ps.person_id, ps.prestudent_id, stordnung.studienordnung_id,
|
||||
stplan.bezeichnung AS studienplan, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent ps
|
||||
JOIN public.tbl_prestudentstatus USING(prestudent_id)
|
||||
JOIN lehre.tbl_studienplan stplan USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung stordnung USING(studienordnung_id)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_studiengang stg ON ps.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
ps.studiengang_kz<>stordnung.studiengang_kz
|
||||
AND stg.melderelevant";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND ps.prestudent_id = ?";
|
||||
$params[] = $prestudent_id;
|
||||
}
|
||||
|
||||
if (isset($studienordnung_id))
|
||||
{
|
||||
$qry .= " AND stordnung.studienordnung_id = ?";
|
||||
$params[] = $studienordnung_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class StudentstatusNachAbbrecher extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getStudentstatusNachAbbrecher($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
$prestudentRes = $this->getStudentstatusNachAbbrecher($studiengang_kz, null, $exkludierte_studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
@@ -43,4 +43,48 @@ class StudentstatusNachAbbrecher extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* There shouldn't be any status after Abbrecher status.
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getStudentstatusNachAbbrecher($studiengang_kz = null, $prestudent_id = null, $exkludierte_studiengang_kz = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
prestudent.person_id, prestudent.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_prestudent prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus prestatus USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
prestatus.status_kurzbz = 'Abbrecher'
|
||||
AND get_rolle_prestudent(prestudent.prestudent_id, prestatus.studiensemester_kurzbz) <> 'Abbrecher'";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class StudienplanUngueltig extends PlausiChecker
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getStudienplanUngueltig(
|
||||
$prestudentRes = $this->getStudienplanUngueltig(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz,
|
||||
null,
|
||||
@@ -56,4 +56,71 @@ class StudienplanUngueltig extends PlausiChecker
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Studienplan should be valid in current Ausbildungssemester of prestudent.
|
||||
* @param studiensemester_kurzbz string check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getStudienplanUngueltig(
|
||||
$studiensemester_kurzbz,
|
||||
$studiengang_kz = null,
|
||||
$prestudent_id = null,
|
||||
$exkludierte_studiengang_kz = null
|
||||
) {
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT pre.person_id, pre.prestudent_id,
|
||||
tbl_studienplan.bezeichnung AS studienplan,
|
||||
status.status_kurzbz,
|
||||
status.studiensemester_kurzbz,
|
||||
status.ausbildungssemester,
|
||||
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||||
JOIN public.tbl_studiengang stg ON pre.studiengang_kz = stg.studiengang_kz
|
||||
WHERE
|
||||
status_kurzbz in('Student', 'Interessent','Bewerber','Aufgenommener')
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_studienplan_semester
|
||||
WHERE
|
||||
studienplan_id=status.studienplan_id
|
||||
AND tbl_studienplan_semester.semester = status.ausbildungssemester
|
||||
AND tbl_studienplan_semester.studiensemester_kurzbz = status.studiensemester_kurzbz
|
||||
)
|
||||
AND status.studiensemester_kurzbz=?
|
||||
AND pre.bismelden
|
||||
AND stg.melderelevant";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND tbl_prestudent.prestudent_id = ?";
|
||||
$params[] = $prestudent_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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_INOUT_0007 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/IncomingHeimatNationOesterreich');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getIncomingHeimatNationOesterreich($params['studiensemester_kurzbz'], null, $params['issue_person_id']);
|
||||
$checkRes = $this->_ci->incomingheimatnationoesterreich->getIncomingHeimatNationOesterreich($params['studiensemester_kurzbz'], null, $params['issue_person_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_INOUT_0008 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/IncomingOhneIoDatensatz');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getIncomingOhneIoDatensatz(null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->incomingohneiodatensatz->getIncomingOhneIoDatensatz(null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_INOUT_0009 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/IncomingOrGsFoerderrelevant');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getIncomingOrGsFoerderrelevant(null, null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->incomingorgsfoerderrelevant->getIncomingOrGsFoerderrelevant(null, null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_PERSON_0001 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/GbDatumWeitZurueck');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getGbDatumWeitZurueck(null, null, $params['issue_person_id']);
|
||||
$checkRes = $this->_ci->gbdatumweitzurueck->getGbDatumWeitZurueck(null, null, $params['issue_person_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_PERSON_0002 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/NationNichtOesterreichAberGemeinde');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getNationNichtOesterreichAberGemeinde(null, $params['issue_person_id']);
|
||||
$checkRes = $this->_ci->nationnichtoesterreichabergemeinde->getNationNichtOesterreichAberGemeinde(null, $params['issue_person_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_PERSON_0003 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/FalscheAnzahlHeimatadressen');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getFalscheAnzahlHeimatadressen(null, null, $params['issue_person_id']);
|
||||
$checkRes = $this->_ci->falscheanzahlheimatadressen->getFalscheAnzahlHeimatadressen(null, null, $params['issue_person_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_PERSON_0004 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/FalscheAnzahlZustelladressen');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getFalscheAnzahlZustelladressen(null, null, $params['issue_person_id']);
|
||||
$checkRes = $this->_ci->falscheanzahlzustelladressen->getFalscheAnzahlZustelladressen(null, null, $params['issue_person_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STG_0001 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/StgPrestudentUngleichStgStudent');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getStgPrestudentUngleichStgStudent(null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->stgprestudentungleichstgstudent->getStgPrestudentUngleichStgStudent(null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_STG_0002 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/OrgformStgUngleichOrgformPrestudent');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getOrgformStgUngleichOrgformPrestudent($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->orgformstgungleichorgformprestudent->getOrgformStgUngleichOrgformPrestudent($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_STG_0003 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/PrestudentMischformOhneOrgform');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getPrestudentMischformOhneOrgform($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->prestudentmischformohneorgform->getPrestudentMischformOhneOrgform($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_STG_0004 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/StgPrestudentUngleichStgStudienplan');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getStgPrestudentUngleichStgStudienplan(null, $params['prestudent_id'], $params['studienordnung_id']);
|
||||
$checkRes = $this->_ci->stgprestudentungleichstgstudienplan->getStgPrestudentUngleichStgStudienplan(null, $params['prestudent_id'], $params['studienordnung_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0001 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/AbbrecherAktiv');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getAbbrecherAktiv(null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->abbrecheraktiv->getAbbrecherAktiv(null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0002 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/StudentstatusNachAbbrecher');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getStudentstatusNachAbbrecher(null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->studentstatusnachabbrecher->getStudentstatusNachAbbrecher(null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,14 @@ class CORE_STUDENTSTATUS_0003 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/AusbildungssemPrestudentUngleichAusbildungssemStatus');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getAusbildungssemPrestudentUngleichAusbildungssemStatus($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->ausbildungssemprestudentungleichausbildungssemstatus->getAusbildungssemPrestudentUngleichAusbildungssemStatus(
|
||||
$params['studiensemester_kurzbz'],
|
||||
null,
|
||||
$params['prestudent_id']
|
||||
);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,14 @@ class CORE_STUDENTSTATUS_0004 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/InaktiverStudentAktiverStatus');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getInaktiverStudentAktiverStatus($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->inaktiverstudentaktiverstatus->getInaktiverStudentAktiverStatus(
|
||||
$params['studiensemester_kurzbz'],
|
||||
null,
|
||||
$params['prestudent_id']
|
||||
);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_STUDENTSTATUS_0005 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/InskriptionVorLetzerBismeldung');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getInskriptionVorLetzerBismeldung($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->inskriptionvorletzerbismeldung->getInskriptionVorLetzerBismeldung($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0006 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/DatumStudiensemesterFalscheReihenfolge');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getDatumStudiensemesterFalscheReihenfolge(null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->datumstudiensemesterfalschereihenfolge->getDatumStudiensemesterFalscheReihenfolge(null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0007 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/AktiverStudentOhneStatus');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getAktiverStudentOhneStatus(null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->aktiverstudentohnestatus->getAktiverStudentOhneStatus(null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_STUDENTSTATUS_0008 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/StudienplanUngueltig');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getStudienplanUngueltig($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->studienplanungueltig->getStudienplanUngueltig($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0009 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/FalscheAnzahlAbschlusspruefungen');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getFalscheAnzahlAbschlusspruefungen(null, null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->falscheanzahlabschlusspruefungen->getFalscheAnzahlAbschlusspruefungen(null, null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0010 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/DatumAbschlusspruefungFehlt');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getDatumAbschlusspruefungFehlt(null, null, $params['abschlusspruefung_id']);
|
||||
$checkRes = $this->_ci->datumabschlusspruefungfehlt->getDatumAbschlusspruefungFehlt(null, null, $params['abschlusspruefung_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0011 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/DatumSponsionFehlt');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getDatumSponsionFehlt(null, null, $params['abschlusspruefung_id']);
|
||||
$checkRes = $this->_ci->datumsponsionfehlt->getDatumSponsionFehlt(null, null, $params['abschlusspruefung_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,14 @@ class CORE_STUDENTSTATUS_0012 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/BewerberNichtZumRtAngetreten');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getBewerberNichtZumRtAngetreten($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->bewerbernichtzumrtangetreten->getBewerberNichtZumRtAngetreten(
|
||||
$params['studiensemester_kurzbz'],
|
||||
null,
|
||||
$params['prestudent_id']
|
||||
);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_STUDENTSTATUS_0013 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/AktSemesterNull');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getAktSemesterNull($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->aktsemesternull->getAktSemesterNull($params['studiensemester_kurzbz'], null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ class CORE_STUDENTSTATUS_0014 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/AbschlussstatusFehlt');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getAbschlussstatusFehlt(null, null, $params['prestudent_id']);
|
||||
$checkRes = $this->_ci->abschlussstatusfehlt->getAbschlussstatusFehlt(null, null, $params['prestudent_id']);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ class CORE_STUDENTSTATUS_0015 implements IIssueResolvedChecker
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
$this->_ci->load->library('issues/plausichecks/AktiverStudentstatusOhneKontobuchung');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getAktiverStudentstatusOhneKontobuchung(
|
||||
$checkRes = $this->_ci->aktiverstudentstatusohnekontobuchung->getAktiverStudentstatusOhneKontobuchung(
|
||||
$params['studiensemester_kurzbz'],
|
||||
null,
|
||||
$params['prestudent_id']
|
||||
|
||||
@@ -25,6 +25,7 @@ SELECT
|
||||
lv_oe_kurzbz,
|
||||
lektor,
|
||||
stunden,
|
||||
stundensatz,
|
||||
betrag,
|
||||
vertrag_id,
|
||||
vertrag_stunden,
|
||||
@@ -149,6 +150,7 @@ FROM
|
||||
END AS "lv_oe_kurzbz",
|
||||
(person.nachname || \' \' || person.vorname) AS "lektor",
|
||||
TRUNC(lema.semesterstunden, 1) AS "stunden",
|
||||
lema.stundensatz,
|
||||
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
@@ -270,6 +272,7 @@ FROM
|
||||
END AS "lv_oe_kurzbz",
|
||||
(nachname || \' \' || vorname) AS "lektor",
|
||||
TRUNC(pb.stunden, 1) AS "stunden",
|
||||
pb.stundensatz,
|
||||
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
@@ -325,6 +328,7 @@ $filterWidgetArray = array(
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lektor')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'stundensatz')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
|
||||
@@ -399,6 +403,8 @@ $filterWidgetArray = array(
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
|
||||
@@ -435,7 +435,7 @@ $filterWidgetArray = array(
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
stundensatz: {visible: false, align:"right", formatter: form_formatNulltoStringNumber,
|
||||
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
|
||||
@@ -82,6 +82,9 @@ $this->load->view(
|
||||
<button class="btn btn-default" id="assignKonfiguration">
|
||||
<?php echo $this->p->t('fehlermonitoring', 'konfigurationswertZuweisen') ?>
|
||||
</button>
|
||||
<button class="btn btn-default" id="deleteKonfiguration">
|
||||
<?php echo $this->p->t('fehlermonitoring', 'konfigurationswertLoeschen') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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";
|
||||
|
||||
?>
|
||||
|
||||
@@ -274,6 +274,8 @@ if ($result = $db->db_query($qry)) {
|
||||
|
||||
//add foto to document
|
||||
$doc->addImage($foto_url, trim($row->person_id) . '.jpg', 'image/jpg');
|
||||
|
||||
$foto_url = 'Pictures/' . trim($row->person_id) . '.jpg';
|
||||
}
|
||||
elseif ($row->foto_sperre == 't')
|
||||
{
|
||||
@@ -290,7 +292,7 @@ if ($result = $db->db_query($qry)) {
|
||||
'personenkennzeichen' => trim($row->matrikelnr),
|
||||
'geschlecht' => $row->geschlecht,
|
||||
'foto_gesperrt' => $row->foto_sperre, // f/t
|
||||
'foto_url' => 'Pictures/' . trim($row->person_id) . '.jpg',
|
||||
'foto_url' => $foto_url,
|
||||
'studiengruppe' => $student_studiengruppe,
|
||||
'verband' => trim($row->verband),
|
||||
'gruppe' => trim($row->gruppe),
|
||||
|
||||
@@ -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();
|
||||
?>
|
||||
|
||||
@@ -321,6 +321,10 @@ $lv->loadLehrveranstaltungStudienplan($studienplan_id);
|
||||
foreach($lv->lehrveranstaltungen as $row_lva)
|
||||
$lv_arr[$row_lva->lehrveranstaltung_id]=$row_lva;
|
||||
|
||||
// Anrechnungen laden
|
||||
$anrechnung = new anrechnung();
|
||||
$anrechnung->getAnrechnungPrestudent($student->prestudent_id);
|
||||
|
||||
echo '<h1>'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname ( $student->uid )</h1>";
|
||||
|
||||
echo '<table style="border: 1px solid black">
|
||||
@@ -357,6 +361,7 @@ function drawTree($tree, $depth)
|
||||
{
|
||||
global $uid, $stsem_arr, $noten_arr, $lvangebot_arr, $aktornext;
|
||||
global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student;
|
||||
global $anrechnung;
|
||||
|
||||
foreach($tree as $row_tree)
|
||||
{
|
||||
@@ -425,7 +430,7 @@ function drawTree($tree, $depth)
|
||||
echo $icon." ".$termine." <a href=\"#\" class='Item' onClick=\"javascript:window.open('../lehre/ects/preview.php?lv=$row_tree->lehrveranstaltung_id&language=$sprache','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">".$row_tree->kurzbz.' - '.$row_tree->bezeichnung."</a>";
|
||||
else
|
||||
// Bezeichnung der Lehrveranstaltung
|
||||
echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.'('.$row_tree->lehrveranstaltung_id.')';
|
||||
echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.' ('.$row_tree->lehrveranstaltung_id.')';
|
||||
echo $bende.'</td>';
|
||||
|
||||
// Semester
|
||||
@@ -534,26 +539,26 @@ function drawTree($tree, $depth)
|
||||
}
|
||||
elseif(count($kompatibleLVs) > 0)
|
||||
{
|
||||
|
||||
$i = 0;
|
||||
while(!$found && $i < count($kompatibleLVs))
|
||||
while(!$found && $i < count($kompatibleLVs))
|
||||
{
|
||||
foreach($kompatibleLVs as $komp)
|
||||
{
|
||||
$anrechnung = new anrechnung();
|
||||
$anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp);
|
||||
|
||||
if(count($anrechnung->result) == 1)
|
||||
if(count($anrechnung->result))
|
||||
{
|
||||
$lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel;
|
||||
if(isset($noten_arr[$lv][$stsem]))
|
||||
{
|
||||
$found = true;
|
||||
if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv)
|
||||
$tdinhalt .= '<span class="ok">'.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.'</span>';
|
||||
else
|
||||
$tdinhalt .= '<span class="error">'.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.'</span>';
|
||||
}
|
||||
foreach($anrechnung->result as $row)
|
||||
{
|
||||
$lv = $row->lehrveranstaltung_id_kompatibel;
|
||||
if(isset($noten_arr[$lv][$stsem]) && $lv == $komp && $row_tree->lehrveranstaltung_id == $row->lehrveranstaltung_id)
|
||||
{
|
||||
$found = true;
|
||||
if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv)
|
||||
$tdinhalt .= '<span class="ok">'.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.'</span>';
|
||||
else
|
||||
$tdinhalt .= '<span class="error">'.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
@@ -669,38 +674,39 @@ function drawTree($tree, $depth)
|
||||
|
||||
function checkKompatibleLvs($kompatibleLVs, $student, $row_tree, $noten_arr, $note_pruef_arr, $p, $uid, $negativeNote= null)
|
||||
{
|
||||
global $anrechnung;
|
||||
$positiv = false;
|
||||
$found = false;
|
||||
$i = 0;
|
||||
|
||||
while(!$found && $i < count($kompatibleLVs))
|
||||
{
|
||||
foreach($kompatibleLVs as $komp)
|
||||
{
|
||||
|
||||
$anrechnung = new anrechnung();
|
||||
$anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp);
|
||||
|
||||
if(count($anrechnung->result) == 1)
|
||||
if(count($anrechnung->result))
|
||||
{
|
||||
$lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel;
|
||||
if(isset($noten_arr[$lv]))
|
||||
foreach($anrechnung->result as $row)
|
||||
{
|
||||
$positiv=false;
|
||||
foreach($noten_arr[$lv] as $note)
|
||||
$lv = $row->lehrveranstaltung_id_kompatibel;
|
||||
if(isset($noten_arr[$lv]) && $lv == $komp && $row_tree->lehrveranstaltung_id == $row->lehrveranstaltung_id)
|
||||
{
|
||||
if($note_pruef_arr[$note]->positiv)
|
||||
$positiv=true;
|
||||
}
|
||||
$positiv=false;
|
||||
foreach($noten_arr[$lv] as $note)
|
||||
{
|
||||
if($note_pruef_arr[$note]->positiv)
|
||||
$positiv=true;
|
||||
}
|
||||
|
||||
$found = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert
|
||||
* darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde
|
||||
*/
|
||||
if(!$found)
|
||||
$found = false;
|
||||
$found = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert
|
||||
* darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde
|
||||
*/
|
||||
if(!$found)
|
||||
$found = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
|
||||
@@ -1433,7 +1433,8 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
$sem_akt = $stsem->getakt();
|
||||
$lehre = new zeitaufzeichnung();
|
||||
$l_arr = $lehre->getLehreForUser($user, $sem_akt);
|
||||
if ($l_arr["LehreAuftraege"]>0 || $l_arr["Lehre"] > 0 || $l_arr["LehreExtern"] > 0)
|
||||
$displayLehresaldo = false;
|
||||
if ($displayLehresaldo && ($l_arr["LehreAuftraege"]>0 || $l_arr["Lehre"] > 0 || $l_arr["LehreExtern"] > 0))
|
||||
{
|
||||
if ($lehre_inkludiert == -1)
|
||||
{
|
||||
|
||||
@@ -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!='')
|
||||
{
|
||||
|
||||
@@ -86,6 +86,7 @@ define("AUTH_NAME","FH-Complete");
|
||||
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
|
||||
* LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
|
||||
*/
|
||||
define('LDAP_SERVER','ldap://ldap.example.com');
|
||||
define('LDAP_PORT',389);
|
||||
@@ -94,6 +95,7 @@ define('LDAP_BASE_DN','ou=People,dc=example,dc=com');
|
||||
define('LDAP_BIND_USER',null);
|
||||
define('LDAP_BIND_PASSWORD',null);
|
||||
define('LDAP_USER_SEARCH_FILTER','uid');
|
||||
define('LDAP_SERVICEPING',true);
|
||||
|
||||
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
|
||||
/*
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
|
||||
* LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
|
||||
*/
|
||||
define('LDAP_SERVER','ldap://ldap.example.com');
|
||||
define('LDAP_PORT',389);
|
||||
@@ -60,6 +61,7 @@
|
||||
define('LDAP_BIND_USER',null);
|
||||
define('LDAP_BIND_PASSWORD',null);
|
||||
define('LDAP_USER_SEARCH_FILTER','uid');
|
||||
define('LDAP_SERVICEPING',true);
|
||||
|
||||
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
|
||||
/*
|
||||
|
||||
@@ -75,6 +75,7 @@ define('AUTH_NAME', 'FH Complete');
|
||||
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
|
||||
* LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
|
||||
*/
|
||||
define('LDAP_SERVER', 'ldap://ldap.example.com');
|
||||
define('LDAP_PORT', 389);
|
||||
@@ -83,6 +84,7 @@ define('LDAP_BASE_DN', 'ou=People,dc=example,dc=com');
|
||||
define('LDAP_BIND_USER', null);
|
||||
define('LDAP_BIND_PASSWORD', null);
|
||||
define('LDAP_USER_SEARCH_FILTER', 'uid');
|
||||
define('LDAP_SERVICEPING',true);
|
||||
|
||||
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
|
||||
/*
|
||||
|
||||
@@ -53,6 +53,7 @@ define("AUTH_NAME","FHComplete");
|
||||
* LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null
|
||||
* LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName)
|
||||
* LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server
|
||||
*/
|
||||
define('LDAP_SERVER','ldap://ldap.example.com');
|
||||
define('LDAP_PORT',389);
|
||||
@@ -61,6 +62,7 @@ define('LDAP_BASE_DN','ou=People,dc=example,dc=com');
|
||||
define('LDAP_BIND_USER',null);
|
||||
define('LDAP_BIND_PASSWORD',null);
|
||||
define('LDAP_USER_SEARCH_FILTER','uid');
|
||||
define('LDAP_SERVICEPING',true);
|
||||
|
||||
// 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen)
|
||||
/*
|
||||
|
||||
@@ -29,6 +29,10 @@ class berechtigung extends basis_db
|
||||
public $rolle_kurzbz;
|
||||
public $beschreibung;
|
||||
public $berechtigung_kurzbz;
|
||||
public $art;
|
||||
public $anmerkung;
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -79,7 +83,7 @@ class berechtigung extends basis_db
|
||||
{
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES(".
|
||||
@@ -103,14 +107,38 @@ class berechtigung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht ein Recht
|
||||
*
|
||||
* @param $berechtigung_kurzbz
|
||||
*/
|
||||
public function delete($berechtigung_kurzbz)
|
||||
{
|
||||
$qry = "DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz=".$this->db_add_param($berechtigung_kurzbz).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen des Rechts:'.$this->db_last_error();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle BerechtigungsRollen
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function getRollen()
|
||||
public function getRollen($order = null)
|
||||
{
|
||||
$qry = 'SELECT * FROM system.tbl_rolle';
|
||||
if ($order != '')
|
||||
{
|
||||
$qry .= " ORDER BY $order";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -152,6 +180,9 @@ class berechtigung extends basis_db
|
||||
$obj->rolle_kurzbz = $row->rolle_kurzbz;
|
||||
$obj->art = $row->art;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -252,15 +283,22 @@ class berechtigung extends basis_db
|
||||
if($this->db_num_rows()>0)
|
||||
{
|
||||
//Update
|
||||
$qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art)." WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";";
|
||||
$qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art).",
|
||||
anmerkung=".$this->db_add_param($this->anmerkung).",
|
||||
insertamum=".$this->db_add_param($this->insertamum).",
|
||||
insertvon=".$this->db_add_param($this->insertvon)."
|
||||
WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Insert
|
||||
$qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art) VALUES(".
|
||||
$qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art, anmerkung, insertamum, insertvon) VALUES(".
|
||||
$this->db_add_param($this->rolle_kurzbz).",".
|
||||
$this->db_add_param($this->berechtigung_kurzbz).",".
|
||||
$this->db_add_param($this->art).");";
|
||||
$this->db_add_param($this->art).",".
|
||||
$this->db_add_param($this->anmerkung).",".
|
||||
$this->db_add_param($this->insertamum).",".
|
||||
$this->db_add_param($this->insertvon).");";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
|
||||
@@ -650,11 +650,14 @@ class organisationseinheit extends basis_db
|
||||
LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
|
||||
OR
|
||||
LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
|
||||
OR
|
||||
LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
|
||||
)';
|
||||
foreach($searchItem as $value)
|
||||
{
|
||||
$qry.=' OR (LOWER(oe_kurzbz)=LOWER('.$this->db_add_param($value).'))
|
||||
OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
|
||||
OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))
|
||||
OR (LOWER(organisationseinheittyp_kurzbz||bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
|
||||
}
|
||||
$qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ $menu=array
|
||||
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
|
||||
/* Leerzeile */'emptyrow1'=>array('name'=>'', 'link'=>'#empty', 'target'=>'main'),
|
||||
'Verplanungsuebersicht'=>array('name'=>'Verplanungsübersicht', 'link'=>'lehre/check/verplanungsuebersicht.php', 'target'=>'main'),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('reihungstest')),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')),
|
||||
'LV-Planung'=>array
|
||||
(
|
||||
'name'=>'LV-Planung', 'permissions'=>array('admin','lv-plan','support'),
|
||||
@@ -109,7 +109,7 @@ $menu=array
|
||||
),
|
||||
'Benutzer'=>array
|
||||
(
|
||||
'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support'),
|
||||
'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support','mitarbeiter'),
|
||||
'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
|
||||
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
@@ -132,14 +132,15 @@ $menu=array
|
||||
'name'=>'Stammdaten', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support','basis/berechtigung','basis/variable','basis/studiengang','basis/ort','basis/firma','basis/fhausweis','basis/infoscreen','basis/organisationseinheit'), 'image'=>'vilesci_stammdaten.png',
|
||||
'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav',
|
||||
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')),
|
||||
|
||||
'User'=>array
|
||||
'Rechtemanagement'=>array
|
||||
(
|
||||
'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'),
|
||||
'name'=>'Rechtemanagement', 'permissions'=>array('basis/berechtigung','mitarbeiter'),
|
||||
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Rechte'=>array('name'=>'Rechte', 'link'=>'stammdaten/berechtigungen.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Variablen'=>array('name'=>'Variablen', 'link'=>'stammdaten/variablen_frameset.html', 'target'=>'main', 'target'=>'main','permissions'=>array('basis/variable')),
|
||||
'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
|
||||
),
|
||||
'Personal'=>array
|
||||
(
|
||||
@@ -155,7 +156,7 @@ $menu=array
|
||||
'Statistik'=>array('name'=>'Statistik', 'link'=>'stammdaten/statistik_frameset.html', 'target'=>'main','permissions'=>array('basis/statistik')),
|
||||
'Ampel'=>array('name'=>'Ampel', 'link'=>'stammdaten/ampel_frameset.html', 'target'=>'main','permissions'=>array('basis/ampel')),
|
||||
'Infoscreen'=>array('name'=>'Infoscreen', 'link'=>'stammdaten/infoscreen_frameset.html', 'target'=>'main','permissions'=>array('basis/infoscreen')),
|
||||
'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('admin')),
|
||||
'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('basis/ferien')),
|
||||
'Service'=>array('name'=>'Service', 'link'=>'stammdaten/service_frameset.html', 'target'=>'main','permissions'=>array('basis/service')),
|
||||
'Dokumentvorlagen'=>array('name'=>'Dokumentvorlagen', 'link'=>'stammdaten/dokumentvorlagen_verwaltung.php', 'target'=>'main','permissions'=>array('basis/dokumente')),
|
||||
'GSProgramm'=>array('name'=>'GSProgramm', 'link'=>'stammdaten/gsprogramm.php', 'target'=>'main','permissions'=>array('inout/uebersicht')),
|
||||
|
||||
@@ -148,8 +148,11 @@ $this->phrasen['benotungstool/anzahlKommisionellePruefungen']='Anzahl kommission
|
||||
$this->phrasen['benotungstool/pruefungAnlegenFuer']='Prüfung anlegen für';
|
||||
$this->phrasen['benotungstool/kreuzerltool']='Kreuzerltool';
|
||||
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Der Student %s %s (%s) ist dieser Lehrveranstaltung nicht zugeordnet. Die Note wird nicht uebernommen!';
|
||||
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student mit Matrikelnummer %s existiert nicht.';
|
||||
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisote %s ist nicht überschreibbar';
|
||||
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student*in mit Matrikelnummer %s existiert nicht.';
|
||||
$this->phrasen['benotungstool/datumsformatUnzulaessig']='Das Datum %s entspricht nicht dem Format TT.MM.JJJJ!';
|
||||
$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Nachprüfung für Student*in %s nicht zulässig.';
|
||||
$this->phrasen['benotungstool/noteUnzulaessig']='Die Note %s ist nicht zulaessig. Die Zeile wurde uebersprungen.';
|
||||
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisnote %s ist nicht überschreibbar';
|
||||
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Fehlerhafte Note bei Student %s %s';
|
||||
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='Derzeit gibt es keine Kreuzerllisten für diese Lehrveranstaltung';
|
||||
$this->phrasen['benotungstool/notenuebersichtFuer']='Notenübersicht</a> für';
|
||||
@@ -170,7 +173,8 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Eingetragene Noten';
|
||||
$this->phrasen['benotungstool/zeunis']='Zeugnis';
|
||||
$this->phrasen['benotungstool/handbuch']='Handbuch';
|
||||
$this->phrasen['benotungstool/punkte']='Punkte';
|
||||
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
|
||||
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten StudentenUid und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
|
||||
$this->phrasen['benotungstool/importAnweisungNachp']='Kopieren Sie die Spalten StudentenUid (bzw. Personenkennzeichen), Datum und Note aus der Notenliste bzw. dem Moodle Export File und fügen Sie diese in folgendes Feld ein';
|
||||
$this->phrasen['benotungstool/pruefung']='Prüfung';
|
||||
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
|
||||
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
|
||||
|
||||
@@ -148,6 +148,8 @@ $this->phrasen['benotungstool/pruefungAnlegenFuer']='Create an examination for '
|
||||
$this->phrasen['benotungstool/kreuzerltool']='"Kreuzerl" tool';
|
||||
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Student is not assigned to this course. The grade was not accepted!';
|
||||
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student with student ID number %s does not exist.';
|
||||
$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Re-examination for student %s not allowed.';
|
||||
$this->phrasen['benotungstool/datumsformatUnzulaessig']='The date %s is not in valid format TT.MM.JJJJ.';
|
||||
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Transcript grade %2$s for student with Personal identifier %1$s is not rewritable';
|
||||
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Incorrect grade for student %s %s';
|
||||
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='There are currently no checklists for this course';
|
||||
@@ -170,6 +172,7 @@ $this->phrasen['benotungstool/zeunis']='Transcript';
|
||||
$this->phrasen['benotungstool/handbuch']='Handbook';
|
||||
$this->phrasen['benotungstool/punkte']='Points';
|
||||
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list (or "student ID number" and "grade" from the moodle export file) and insert them in the following field';
|
||||
$this->phrasen['benotungstool/importAnweisungNachp']='Copy the columns "student ID number" (or "personal identifier"), "date" and "grade" from the grade list or from the moodle export file and insert them in the following field';
|
||||
$this->phrasen['benotungstool/pruefung']='Examination';
|
||||
$this->phrasen['benotungstool/notenlisteImport']='Grade list for the subject grade import (Excel)';
|
||||
$this->phrasen['benotungstool/geaenderteNotenVorhanden']='There are changed grades. Please send the changes to the assistant by clicking "Approval"';
|
||||
|
||||
@@ -144,6 +144,34 @@ var IssuesKonfiguration = {
|
||||
}
|
||||
);
|
||||
},
|
||||
deleteKonfigurationsWerte: function(konfigurationstyp_kurzbz, fehlercode, konfigurationsWert)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'system/issues/IssuesKonfiguration/deleteKonfigurationsWerte',
|
||||
{
|
||||
konfigurationstyp_kurzbz: konfigurationstyp_kurzbz,
|
||||
fehlercode: fehlercode,
|
||||
konfigurationsWert: konfigurationsWert
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloescht'))
|
||||
// reload dataset to see change
|
||||
IssuesKonfiguration._reloadKonfigurationOverview();
|
||||
}
|
||||
else
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloeschtFehler'));
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
deleteKonfiguration: function(konfigurationstyp_kurzbz, fehlercode)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
@@ -229,7 +257,7 @@ $(document).ready(function() {
|
||||
}
|
||||
);
|
||||
|
||||
// get new fehlercodes each time app is changed
|
||||
// set assign configuration event
|
||||
$("#assignKonfiguration").click(
|
||||
function()
|
||||
{
|
||||
@@ -241,6 +269,18 @@ $(document).ready(function() {
|
||||
}
|
||||
);
|
||||
|
||||
// set delete configuration event
|
||||
$("#deleteKonfiguration").click(
|
||||
function()
|
||||
{
|
||||
IssuesKonfiguration.deleteKonfigurationsWerte(
|
||||
$("#"+FEHLERKONFIGURATIONSTYP_DROPDOWN_ID).val(),
|
||||
$("#"+FEHLERCODE_DROPDOWN_ID).val(),
|
||||
$("#konfigurationsWert").val()
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// set events for showing info modals
|
||||
$("#fehlercodeInfoIcon").click(
|
||||
function()
|
||||
|
||||
@@ -27,6 +27,7 @@ require_once('dbupdate_3.4/example.php');
|
||||
require_once('dbupdate_3.4/example2.php');
|
||||
...
|
||||
*/
|
||||
require_once('dbupdate_3.4/25003_notenimport_nachpruefung.php');
|
||||
|
||||
require_once('dbupdate_3.4/26173_index_webservicelog.php');
|
||||
require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php');
|
||||
@@ -39,6 +40,7 @@ require_once('dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php')
|
||||
require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php');
|
||||
require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php');
|
||||
require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
|
||||
require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php');
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
@@ -326,7 +328,7 @@ $tabellen=array(
|
||||
"system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon","category"),
|
||||
"system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"),
|
||||
"system.tbl_rolle" => array("rolle_kurzbz","beschreibung"),
|
||||
"system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"),
|
||||
"system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art","anmerkung","insertamum","insertvon"),
|
||||
"system.tbl_verarbeitungstaetigkeit" => array("taetigkeit_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig","aktiv"),
|
||||
"system.tbl_webservicelog" => array("webservicelog_id","webservicetyp_kurzbz","request_id","beschreibung","request_data","execute_time","execute_user"),
|
||||
"system.tbl_webservicerecht" => array("webservicerecht_id","berechtigung_kurzbz","methode","attribut","insertamum","insertvon","updateamum","updatevon","klasse"),
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
// lehre.tbl_pruefungstyp: add type Termin3
|
||||
if($result = $db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefungstyp_kurzbz='Termin3'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "INSERT INTO lehre.tbl_pruefungstyp(pruefungstyp_kurzbz, beschreibung, abschluss) VALUES('Termin3', '3.Termin', false);";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Prüfungstyp: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Prüfungstyp 3.Termin in lehre.tbl_pruefungstyp hinzugefügt';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
|
||||
// ADD COLUMN anmerkung to system.tbl_rolleberechtigung
|
||||
if(!$result = @$db->db_query("SELECT anmerkung FROM system.tbl_rolleberechtigung LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN anmerkung varchar(256);
|
||||
ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertamum timestamp DEFAULT now();
|
||||
ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertvon varchar(32);";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>system.tbl_rolleberechtigung '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Spalten anmerkung, insertamum, insertvon in system.tbl_rolleberechtigung hinzugefügt';
|
||||
}
|
||||
@@ -17897,7 +17897,7 @@ array(
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Invalid configuration value for data type {1}, special characters not allowed',
|
||||
'text' => 'Invalid configuration value for data type {0}, special characters not allowed',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
@@ -18123,6 +18123,26 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'fehlermonitoring',
|
||||
'phrase' => 'konfigurationswertLoeschen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Konfigurationswert(e) löschen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Delete configuration value(s)',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
@@ -50,31 +50,47 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="../../../skin/vilesci.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../skin/jquery.css" type="text/css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<link href="../../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">';
|
||||
|
||||
include('../../../include/meta/jquery.php');
|
||||
include('../../../include/meta/jquery-tablesorter.php');
|
||||
|
||||
echo '
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script src="../../../include/js/tablesort/table.js" type="text/javascript"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
headers:
|
||||
{
|
||||
0 : { sorter: "isoDate" },
|
||||
},
|
||||
headers:
|
||||
{
|
||||
0 : { sorter: "isoDate" },
|
||||
},
|
||||
sortList: [[0,0],[1,0]],
|
||||
widgets: [\'zebra\']
|
||||
widgets: ["zebra","filter"]
|
||||
});
|
||||
|
||||
$( ".datepicker_datum" ).datepicker(
|
||||
{
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
dateFormat: "yy-mm-dd",
|
||||
showOn: "focus"
|
||||
});
|
||||
}
|
||||
);
|
||||
</script>
|
||||
</head>
|
||||
<style>
|
||||
table.tablesorter tbody td
|
||||
{
|
||||
padding: 2px;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<h2>LV-Plan Überbuchungen - '.$db_stpl_table.'</h2>
|
||||
';
|
||||
@@ -93,8 +109,8 @@ if($beginn=='' || $ende=='')
|
||||
$dontloadcontent=true;
|
||||
}
|
||||
|
||||
echo " Beginn <INPUT type='text' size='10' id='beginn' name='beginn' value='$beginn'>";
|
||||
echo " Ende <INPUT type='text' size='10' id='ende' name='ende' value='$ende'>";
|
||||
echo " Beginn <INPUT class='datepicker_datum' type='text' size='10' id='beginn' name='beginn' value='$beginn'>";
|
||||
echo " Ende <INPUT class='datepicker_datum' type='text' size='10' id='ende' name='ende' value='$ende'>";
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->getAll('typ, kurzbzlang', true);
|
||||
@@ -128,7 +144,7 @@ foreach ($ort_obj->result as $row)
|
||||
$ort[$row->ort_kurzbz] = new stdClass(); // Prevents the warning "Creating default object from empty value"
|
||||
$ort[$row->ort_kurzbz]->max_person = $row->max_person;
|
||||
}
|
||||
$qry = "SELECT DISTINCT vw_".$db_stpl_table.".unr,datum, stunde, ort_kurzbz, studiensemester_kurzbz, vw_".$db_stpl_table.".studiengang_kz, vw_".$db_stpl_table.".semester, verband, gruppe, gruppe_kurzbz, UPPER(stg_typ || stg_kurzbz) as stg_kurzbz, lehrfach, lehrfach_bez
|
||||
$qry = "SELECT DISTINCT vw_".$db_stpl_table.".unr,datum, stunde, ort_kurzbz, studiensemester_kurzbz, vw_".$db_stpl_table.".studiengang_kz, vw_".$db_stpl_table.".semester, verband, gruppe, gruppe_kurzbz, UPPER(stg_typ || stg_kurzbz) as stg_kurzbz, lehrfach, lehrfach_bez, lehrform
|
||||
FROM lehre.vw_".$db_stpl_table." JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id)
|
||||
WHERE datum>='".addslashes($beginn)."' AND datum<='".addslashes($ende)."'";
|
||||
if($stg_kz!='')
|
||||
@@ -144,7 +160,8 @@ echo '<table class="tablesorter" id="t1">
|
||||
<th>Ort</th>
|
||||
<th>Studierende aktuell (Plätze maximal)</th>
|
||||
<th>Gruppen (Studierende aktuell)</th>
|
||||
<th>Lehrfach</th>
|
||||
<th>Lehrveranstaltung</th>
|
||||
<th>Lehrform</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
@@ -156,6 +173,7 @@ $lastort=0;
|
||||
$anzahl_studenten=0;
|
||||
$lehrfach='';
|
||||
$lehrfach_bez='';
|
||||
$lehrform='';
|
||||
$arr=array();
|
||||
|
||||
function getAnzahl($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz)
|
||||
@@ -192,7 +210,7 @@ if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($lastdatum==$row->datum && $laststunde==$row->stunde && $lastort==$row->ort_kurzbz && $lehrfach==$row->lehrfach && $lehrfach_bez==$row->lehrfach_bez)
|
||||
if($lastdatum==$row->datum && $laststunde==$row->stunde && $lastort==$row->ort_kurzbz && $lehrfach==$row->lehrfach && $lehrfach_bez==$row->lehrfach_bez && $lehrform==$row->lehrform)
|
||||
{
|
||||
//Solange alles gleich ist zusammenzaehlen
|
||||
$anzahl = getAnzahl($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $row->studiensemester_kurzbz);
|
||||
@@ -222,7 +240,13 @@ if($result = $db->db_query($qry))
|
||||
$style='style="background-color: a00404; color: d3d3d3"';
|
||||
|
||||
//echo "<tr><td>$lastdatum</td><td>$laststunde</td><td>$lastort</td><td $style>$anzahl_studenten (".$ort[$lastort]->max_person.")</td><td>$gruppen</td><td>$lehrfach - $lehrfach_bez</td></tr>";
|
||||
$arr[]="<tr><td>$lastdatum</td><td>$lastort</td><td $style>$anzahl_studenten (".$ort[$lastort]->max_person.")</td><td>$gruppen</td><td>$lehrfach - $lehrfach_bez</td></tr>";
|
||||
$arr[]="<tr>
|
||||
<td>$lastdatum</td>
|
||||
<td>$lastort</td>
|
||||
<td $style>$anzahl_studenten (".$ort[$lastort]->max_person.")</td>
|
||||
<td>$gruppen</td>
|
||||
<td>$lehrfach - $lehrfach_bez</td>
|
||||
<td>$lehrform</td></tr>";
|
||||
|
||||
}
|
||||
$anzahl_studenten=0;
|
||||
@@ -238,6 +262,7 @@ if($result = $db->db_query($qry))
|
||||
$lastort = $row->ort_kurzbz;
|
||||
$lehrfach = $row->lehrfach;
|
||||
$lehrfach_bez = $row->lehrfach_bez;
|
||||
$lehrform = $row->lehrform;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -36,9 +36,9 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'benutzer')
|
||||
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
|
||||
if (is_null($search) || $search == '')
|
||||
exit();
|
||||
|
||||
|
||||
$benutzer = new benutzer();
|
||||
|
||||
|
||||
if ($benutzer->search(array(
|
||||
$search
|
||||
)))
|
||||
@@ -61,9 +61,9 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'berechtigu
|
||||
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
|
||||
if (is_null($search) || $search == '')
|
||||
exit();
|
||||
|
||||
|
||||
$berechtigung = new berechtigung();
|
||||
|
||||
|
||||
if ($berechtigung->searchBerechtigungen($search))
|
||||
{
|
||||
$result_obj = array();
|
||||
@@ -98,17 +98,29 @@ if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'oe_kurzbz'
|
||||
|
||||
if(is_array($oe->result) && count($oe->result) > 0)
|
||||
{
|
||||
$result_obj = array();
|
||||
$resultArray = array();
|
||||
foreach($oe->result as $row)
|
||||
{
|
||||
if($row->aktiv==true)
|
||||
{
|
||||
$item['oe_kurzbz'] = html_entity_decode($row->oe_kurzbz);
|
||||
$item['organisationseinheittyp_kurzbz'] = html_entity_decode($row->organisationseinheittyp_kurzbz);
|
||||
$item['bezeichnung'] = html_entity_decode($row->bezeichnung);
|
||||
$result_obj[] = $item;
|
||||
$resultArray[html_entity_decode($row->oe_kurzbz)] = array('organisationseinheittyp_kurzbz' => html_entity_decode($row->organisationseinheittyp_kurzbz),'bezeichnung' => html_entity_decode($row->bezeichnung));
|
||||
}
|
||||
}
|
||||
|
||||
uasort($resultArray, function($a, $b)
|
||||
{
|
||||
return $a['organisationseinheittyp_kurzbz'].$a['bezeichnung'] <=> $b['organisationseinheittyp_kurzbz'].$b['bezeichnung'];
|
||||
});
|
||||
|
||||
$result_obj = array();
|
||||
foreach($resultArray as $key => $value)
|
||||
{
|
||||
$item['oe_kurzbz'] = $key;
|
||||
$item['organisationseinheittyp_kurzbz'] = $value['organisationseinheittyp_kurzbz'];
|
||||
$item['bezeichnung'] = $value['bezeichnung'];
|
||||
$result_obj[] = $item;
|
||||
}
|
||||
|
||||
echo json_encode($result_obj);
|
||||
}
|
||||
exit();
|
||||
|
||||
@@ -479,12 +479,11 @@ if(isset($_POST['copy']) && $_POST['copy'] != '')
|
||||
if (!$b = new berechtigung())
|
||||
die($b->errormsg);
|
||||
|
||||
$b->getRollen();
|
||||
$b->getRollen('rolle_kurzbz');
|
||||
foreach($b->result as $berechtigung)
|
||||
{
|
||||
$rolle_arr[$berechtigung->rolle_kurzbz] = $berechtigung->beschreibung;
|
||||
}
|
||||
ksort($rolle_arr, SORT_STRING | SORT_FLAG_CASE);
|
||||
|
||||
$b->getBerechtigungen();
|
||||
foreach($b->result as $berechtigung)
|
||||
@@ -600,7 +599,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
||||
}
|
||||
if (count($bn) > 0)
|
||||
{
|
||||
$htmlstr .= "<p><a href='benutzerberechtigung_detailliste.php?uid=$uid' target='_blank'>Rechte Details</a></p>";
|
||||
$htmlstr .= "<p><a href='benutzerberechtigung_detailliste.php?uid=$uid' target='_blank'>Rechte Detailaufschlüsselung</a></p>";
|
||||
}
|
||||
}
|
||||
elseif(isset($_REQUEST['funktion_kurzbz']) && $_REQUEST['funktion_kurzbz']!='')
|
||||
|
||||
@@ -182,7 +182,7 @@ $(document).ready(function()
|
||||
</head>
|
||||
|
||||
<body class="background_main" onload="document.getElementById(\'searchbox\').focus()">
|
||||
<h2>Benutzerberechtigungen Übersicht</h2>';
|
||||
<h2>Berechtigungen Übersicht</h2>';
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
@@ -229,7 +229,7 @@ $htmlstr='
|
||||
<div id="erweitertesuche">
|
||||
<hr>
|
||||
<form accept-charset="UTF-8" name="searchrechte" method="GET">
|
||||
Berechtigung:
|
||||
Rechte:
|
||||
<select id="berechtigung_kurzbz" name="berechtigung_kurzbz">
|
||||
<option value=""></option>';
|
||||
$berechtigung = new berechtigung();
|
||||
@@ -251,7 +251,7 @@ $htmlstr='
|
||||
<select id="rolle_kurzbz" name="rolle_kurzbz">
|
||||
<option value=""></option>';
|
||||
$rollen = new berechtigung();
|
||||
$rollen->getRollen();
|
||||
$rollen->getRollen('rolle_kurzbz');
|
||||
foreach($rollen->result as $rolle)
|
||||
{
|
||||
if ($rolle_kurzbz == $rolle->rolle_kurzbz)
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/berechtigung.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/berechtigung'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$berechtigung_kurzbz = filter_input(INPUT_POST, 'berechtigung_kurzbz');
|
||||
$beschreibung = filter_input(INPUT_POST, 'beschreibung');
|
||||
$kurzbz = filter_input(INPUT_GET, 'kurzbz');
|
||||
$kurzbzPost = filter_input(INPUT_POST, 'kurzbz_post');
|
||||
$edit = filter_input(INPUT_GET, 'edit');
|
||||
$save = filter_input(INPUT_POST, 'save');
|
||||
$delete = filter_input(INPUT_GET, 'delete');
|
||||
$saveNew = filter_input(INPUT_POST, 'saveNew');
|
||||
|
||||
//$delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>Rechte Übersicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
||||
<?php
|
||||
include('../../include/meta/jquery.php');
|
||||
include('../../include/meta/jquery-tablesorter.php');
|
||||
?>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script language="Javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {2:{sorter:false, filter:false}},
|
||||
widgetOptions : {filter_saveFilters : true}
|
||||
});
|
||||
$('.resetsaved').click(function()
|
||||
{
|
||||
$("#t1").trigger("filterReset");
|
||||
window.location("<?php echo $_SERVER['PHP_SELF'] ?>");
|
||||
return false;
|
||||
});
|
||||
$("textarea").keyup(function()
|
||||
{
|
||||
$(this).siblings("span").text((256 - $(this).val().length));
|
||||
});
|
||||
});
|
||||
function confdel(berechtigung)
|
||||
{
|
||||
return confirm("Achtung! Sie sollten nur Rechte löschen, die unabhängig von Core-Funktionalitäten angelegt wurden.\n\n"
|
||||
+"Sie können ein Recht erst dann löschen, wenn alle Zuordnungen zu Personen, Rollen und Funktionen ebenfalls entfernt wurden.\n\n"
|
||||
+"Wollen Sie das Recht '" + berechtigung + "' wirklich löschen?");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="background_main">
|
||||
<h2>Rechte Übersicht</h2>
|
||||
|
||||
<?php
|
||||
if(isset($saveNew))
|
||||
{
|
||||
if(isset($kurzbzPost) && isset($beschreibung))
|
||||
{
|
||||
$berechtigung = new berechtigung();
|
||||
$berechtigung->berechtigung_kurzbz = $kurzbzPost;
|
||||
$berechtigung->beschreibung = $beschreibung;
|
||||
$berechtigung->new = true;
|
||||
|
||||
if($berechtigung->save())
|
||||
{
|
||||
echo 'Recht '.$kurzbzPost.' wurde angelegt<br><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler beim Speichern:'.$berechtigung->errormsg.'<br><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Zum Speichern der Daten muss die Kurzbz und die Beschreibung angegeben werden<br><br>';
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($delete) && isset($kurzbz))
|
||||
{
|
||||
$berechtigung = new berechtigung();
|
||||
if($berechtigung->delete($kurzbz))
|
||||
echo 'Das Recht "'.$kurzbz.'" wurde erfolgreich gelöscht<br><br>';
|
||||
else
|
||||
echo 'Fehler beim Löschen des Rechts:'.$berechtigung->errormsg.'<br><br>';
|
||||
}
|
||||
|
||||
if(isset($save))
|
||||
{
|
||||
$berechtigung = new berechtigung();
|
||||
$berechtigung->load($berechtigung_kurzbz);
|
||||
$berechtigung->beschreibung = $beschreibung;
|
||||
if (!$berechtigung->save(false))
|
||||
echo 'Fehler beim Speichern:'.$berechtigung->errormsg.'<br><br>';
|
||||
}
|
||||
|
||||
//Tabelle mit Rollen anzeigen
|
||||
$berechtigung = new berechtigung();
|
||||
$berechtigung->getBerechtigungen();
|
||||
|
||||
echo '<button type="button" class="resetsaved" title="Reset Filter">Reset Filter</button>';
|
||||
echo '
|
||||
<table id="t1" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kurzbz</th>
|
||||
<th>Beschreibung</th>
|
||||
<th colspan="2">Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
foreach($berechtigung->result as $recht)
|
||||
{
|
||||
if($edit && $recht->berechtigung_kurzbz == $kurzbz)
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
'.$recht->berechtigung_kurzbz.'
|
||||
</td>
|
||||
<td colspan="3"><form method="POST" action="'.$_SERVER['PHP_SELF'].'?kurzbz='.$kurzbz.'">
|
||||
<textarea style="vertical-align: top; font-family: inherit; font-size: small;"
|
||||
cols="50"
|
||||
rows="3"
|
||||
type="text"
|
||||
maxlength="256"
|
||||
size="200"
|
||||
name="beschreibung" />'.$recht->beschreibung.'</textarea>
|
||||
<span style="color: grey; display: inline-block; width: 30px;">'.(256 - strlen($recht->beschreibung)).'</span>
|
||||
<input type="hidden" name="berechtigung_kurzbz" value="'.$recht->berechtigung_kurzbz.'" />
|
||||
<input type="submit" name="save" value="Speichern" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$recht->berechtigung_kurzbz.'</td>
|
||||
<td>'.$recht->beschreibung.'</td>
|
||||
<td>
|
||||
<a href="'.basename(__FILE__).'?kurzbz='.$recht->berechtigung_kurzbz.'&edit=1">
|
||||
Bearbeiten
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="'.basename(__FILE__).'?kurzbz='.$recht->berechtigung_kurzbz.'&delete=1"
|
||||
onclick="return confdel(\''.$recht->berechtigung_kurzbz.'\')">
|
||||
Recht löschen
|
||||
</a>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
echo '
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br><div style="vertical-align: top">';
|
||||
|
||||
echo ' <form method="POST">
|
||||
<h2>Neues Recht einfügen</h2>
|
||||
Kurzbz: <input type="text" maxlength="32" size="35" name="kurzbz_post" value="" />
|
||||
Beschreibung: <textarea style="vertical-align: top; font-family: inherit; font-size: small;"
|
||||
cols="50"
|
||||
rows="3"
|
||||
type="text"
|
||||
maxlength="256"
|
||||
size="200"
|
||||
name="beschreibung"
|
||||
value="" /></textarea>
|
||||
<span style="color: grey; display: inline-block; width: 30px;" id="countdown_textarea_new">256</span>
|
||||
<input type="submit" name="saveNew" value="Anlegen" />
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -35,10 +35,12 @@ if(!$rechte->isBerechtigt('basis/berechtigung'))
|
||||
|
||||
$rolle_kurzbz = filter_input(INPUT_GET, 'rolle_kurzbz');
|
||||
$delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
$copy = filter_input(INPUT_POST, 'copy');
|
||||
$vergleich = filter_input(INPUT_GET, 'vergleich');
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>Berechtigungen Uebersicht</title>
|
||||
<title>Rollen Uebersicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
||||
@@ -54,15 +56,37 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {3:{sorter:false}}
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {3:{filter:false, sorter:false}},
|
||||
widgetOptions : {filter_saveFilters : true}
|
||||
});
|
||||
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {2:{sorter:false}}
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {2:{filter:false, sorter:false}},
|
||||
widgetOptions : {filter_saveFilters : true}
|
||||
});
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
sortList: [],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
$("#t4").tablesorter(
|
||||
{
|
||||
sortList: [],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
$('.resetsaved').click(function()
|
||||
{
|
||||
$(".tablesorter").trigger("filterReset");
|
||||
window.location("<?php echo $_SERVER['PHP_SELF'] ?>");
|
||||
return false;
|
||||
});
|
||||
$("textarea").keyup(function()
|
||||
{
|
||||
$(this).siblings("span").text((256 - $(this).val().length));
|
||||
});
|
||||
|
||||
// Breite des Autocompletes korrigieren um das Springen zu verhindern
|
||||
@@ -93,16 +117,15 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
$(this).val(ui.item.berechtigung_kurzbz);
|
||||
}
|
||||
});
|
||||
});
|
||||
function confdel()
|
||||
{
|
||||
var value=prompt('Achtung! Sie sind dabei eine Rolle zu löschen. Die Zuordnungen gehen dadurch verloren! Um diese Rolle wirklich zu Löschen tippen Sie "LÖSCHEN" in das untenstehende Feld.');
|
||||
|
||||
if(value=='LÖSCHEN')
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
$(".copyButton").click(function(event)
|
||||
{
|
||||
event.preventDefault();
|
||||
$(this).siblings().show();
|
||||
$(this).hide();
|
||||
});
|
||||
});
|
||||
|
||||
function validateNewData()
|
||||
{
|
||||
if($('#berechtigung_neu_autocomplete').val() == '')
|
||||
@@ -138,14 +161,16 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
</head>
|
||||
|
||||
<body class="background_main">
|
||||
<h2>Berechtigung - Rolle - <?php echo $rolle_kurzbz ?></h2>
|
||||
|
||||
|
||||
<?php
|
||||
if(isset($rolle_kurzbz))
|
||||
{
|
||||
echo '<h2>Berechtigungen der Rolle "'.$rolle_kurzbz.'"</h2>';
|
||||
$berechtigung_kurzbz = filter_input(INPUT_GET, 'berechtigung_kurzbz');
|
||||
$art = filter_input(INPUT_GET, 'art');
|
||||
$save = filter_input(INPUT_GET, 'save');
|
||||
$anmerkung = filter_input(INPUT_GET, 'anmerkung');
|
||||
|
||||
if(isset($save))
|
||||
{
|
||||
@@ -155,10 +180,17 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
$berechtigung->rolle_kurzbz = $rolle_kurzbz;
|
||||
$berechtigung->berechtigung_kurzbz = $berechtigung_kurzbz;
|
||||
$berechtigung->art = $art;
|
||||
$berechtigung->anmerkung = $anmerkung;
|
||||
$berechtigung->insertamum = date('Y-m-d H:i:s');
|
||||
$berechtigung->insertvon = $user;
|
||||
|
||||
if($berechtigung->saveRolleBerechtigung()): ?>
|
||||
<b>Zuteilung gespeichert</b>
|
||||
<?php else: ?>
|
||||
<?php
|
||||
$berechtigung_kurzbz = '';
|
||||
$art = 'suid';
|
||||
$anmerkung = '';
|
||||
else: ?>
|
||||
<b>Fehler beim Speichern der Zuteilung: <?php echo $berechtigung->errormsg ?>
|
||||
<?php endif;
|
||||
}
|
||||
@@ -175,7 +207,7 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
} ?>
|
||||
|
||||
<a href="<?php echo basename(__FILE__) ?>">
|
||||
Zurück zur Rollenübersicht
|
||||
Zurück zur Rollen Übersicht
|
||||
</a>
|
||||
<br><br>
|
||||
<?php
|
||||
@@ -183,35 +215,41 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
$berechtigung->getBerechtigungen();
|
||||
?>
|
||||
<form action="<?php echo basename(__FILE__) ?>" method="GET">
|
||||
<input type="text" placeholder="Berechtigung" id="berechtigung_neu_autocomplete" class="berechtigung_autocomplete" name="berechtigung_kurzbz" style="width: 300px">
|
||||
<div style="vertical-align: top">
|
||||
<input type="text"
|
||||
value="<?php echo $berechtigung_kurzbz ?>"
|
||||
placeholder="Berechtigung"
|
||||
id="berechtigung_neu_autocomplete"
|
||||
class="berechtigung_autocomplete"
|
||||
name="berechtigung_kurzbz"
|
||||
style="width: 300px">
|
||||
<input type="hidden" name="rolle_kurzbz" value="<?php echo $rolle_kurzbz ?>">
|
||||
<!-- <SELECT name="berechtigung_kurzbz">-->
|
||||
<?php
|
||||
/*$berechtigungen = new berechtigung();
|
||||
$berechtigungen->getRolleBerechtigung($rolle_kurzbz);
|
||||
$berechtigungen_arr = array();
|
||||
foreach ($berechtigungen->result as $row)
|
||||
{
|
||||
$berechtigungen_arr[] = $row->berechtigung_kurzbz;
|
||||
}
|
||||
foreach ($berechtigung->result as $row): ?>
|
||||
<OPTION value="<?php echo $row->berechtigung_kurzbz ?>"
|
||||
<?php echo array_search($row->berechtigung_kurzbz,$berechtigungen_arr)!==false ? 'disabled' : '' ?>>
|
||||
<?php echo $row->berechtigung_kurzbz ?>
|
||||
</OPTION>
|
||||
<?php endforeach; */?>
|
||||
<!-- </SELECT>-->
|
||||
<input type="text" id="art_neu" value="suid" size="4" name="art">
|
||||
<input type="text"
|
||||
id="art_neu"
|
||||
value="<?php echo ($art != '' ? $art : 'suid') ?>"
|
||||
size="4"
|
||||
name="art">
|
||||
<textarea type="text"
|
||||
placeholder="Anmerkung"
|
||||
id="anmerkung_neu"
|
||||
rows="2"
|
||||
cols="50"
|
||||
size="200"
|
||||
maxlength="256"
|
||||
name="anmerkung"
|
||||
style="vertical-align: top; font-family: inherit; font-size: small;"><?php echo $anmerkung ?></textarea>
|
||||
<input type="submit" name="save" value="Hinzufügen" onclick="return validateNewData()">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<button type="button" class="resetsaved" title="Reset Filter">Reset Filter</button>
|
||||
<table id="t1" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kurzbz</th>
|
||||
<th>Art</th>
|
||||
<th>Beschreibung</th>
|
||||
<th></th>
|
||||
<th>Anmerkung</th>
|
||||
<th colspan="2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -224,9 +262,15 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
<td><?php echo $rolle->berechtigung_kurzbz ?></td>
|
||||
<td><?php echo $rolle->art ?></td>
|
||||
<td><?php echo $rolle->beschreibung ?></td>
|
||||
<td><?php echo $rolle->anmerkung ?></td>
|
||||
<td>
|
||||
<a href="<?php echo basename(__FILE__) ?>?delete=1&rolle_kurzbz=<?php echo $rolle->rolle_kurzbz ?>&berechtigung_kurzbz=<?php echo $rolle->berechtigung_kurzbz ?>&art=<?php echo $rolle->art ?>">
|
||||
entfernen
|
||||
<a href="<?php echo basename(__FILE__) ?>?rolle_kurzbz=<?php echo $rolle->rolle_kurzbz ?>&berechtigung_kurzbz=<?php echo $rolle->berechtigung_kurzbz ?>&art=<?php echo $rolle->art ?>&anmerkung=<?php echo $rolle->anmerkung ?>">
|
||||
Bearbeiten
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="<?php echo basename(__FILE__) ?>?delete=1&rolle_kurzbz=<?php echo $rolle->rolle_kurzbz ?>&berechtigung_kurzbz=<?php echo $rolle->berechtigung_kurzbz ?>&art=<?php echo $rolle->art ?>&anmerkung=<?php echo $rolle->anmerkung ?>">
|
||||
Recht entfernen
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -235,8 +279,166 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
elseif(isset($vergleich))
|
||||
{
|
||||
echo '<h2>Rollen vergleichen</h2>';
|
||||
$rolle1 = filter_input(INPUT_GET, 'rolle_kurzbz1');
|
||||
$rolle2 = filter_input(INPUT_GET, 'rolle_kurzbz2');
|
||||
?>
|
||||
|
||||
<a href="<?php echo basename(__FILE__) ?>">
|
||||
Zurück zur Rollen Übersicht
|
||||
</a>
|
||||
<br><br>
|
||||
|
||||
<?php
|
||||
$rollen1Arr = array();
|
||||
$rollen2Arr = array();
|
||||
$rollenGesamt = array();
|
||||
$rollen = new berechtigung();
|
||||
$rollen->getRolleBerechtigung($rolle1);
|
||||
foreach ($rollen->result AS $recht)
|
||||
{
|
||||
$rollen1Arr[$recht->berechtigung_kurzbz] = $recht->art;
|
||||
}
|
||||
$rollen = new berechtigung();
|
||||
$rollen->getRolleBerechtigung($rolle2);
|
||||
foreach ($rollen->result AS $recht)
|
||||
{
|
||||
$rollen2Arr[$recht->berechtigung_kurzbz] = $recht->art;
|
||||
}
|
||||
$rollenGesamt = array_merge($rollen1Arr,$rollen2Arr);
|
||||
ksort($rollenGesamt);
|
||||
|
||||
echo ' <form action="'.basename(__FILE__).'?vergleich=vergleich" method="GET" style="width: 60%">
|
||||
<div style="width: 100%">
|
||||
<div style="width: 50%; float: left;">
|
||||
Rolle 1:
|
||||
<select id="rolle_kurzbz" name="rolle_kurzbz1">
|
||||
<option value="">Bitte auswählen</option>';
|
||||
$rollen = new berechtigung();
|
||||
$rollen->getRollen('rolle_kurzbz');
|
||||
foreach($rollen->result as $rolle)
|
||||
{
|
||||
if ($rolle1 == $rolle->rolle_kurzbz)
|
||||
$selected = 'selected="selected"';
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
echo '<option value="'.$rolle->rolle_kurzbz.'" title="'.$rolle->beschreibung.'" '.$selected.'>'.$rolle->rolle_kurzbz.'</option>';
|
||||
}
|
||||
echo '</select>';
|
||||
if (isset($rolle1))
|
||||
{
|
||||
echo ' <table id="t3" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kurzbz</th>
|
||||
<th>Art</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
foreach ($rollenGesamt AS $recht => $art)
|
||||
{
|
||||
if (array_key_exists($recht, $rollen1Arr))
|
||||
{
|
||||
if ($art != $rollen1Arr[$recht])
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid black">'.$rollen1Arr[$recht].'</td>
|
||||
</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid transparent">'.$art.'</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid black; border-right: 0"> </td>
|
||||
<td style="border: 1px solid black; border-left: 0"> </td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
echo '
|
||||
</tbody>
|
||||
</table>';
|
||||
}
|
||||
echo '
|
||||
</div>
|
||||
<div style="width: 50%; float: left;">
|
||||
Rolle 2:
|
||||
<select id="rolle_kurzbz" name="rolle_kurzbz2">
|
||||
<option value="">Bitte auswählen</option>';
|
||||
$rollen = new berechtigung();
|
||||
$rollen->getRollen('rolle_kurzbz');
|
||||
foreach($rollen->result as $rolle)
|
||||
{
|
||||
if ($rolle2 == $rolle->rolle_kurzbz)
|
||||
$selected = 'selected="selected"';
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
echo '<option value="'.$rolle->rolle_kurzbz.'" title="'.$rolle->beschreibung.'" '.$selected.'>'.$rolle->rolle_kurzbz.'</option>';
|
||||
}
|
||||
echo '</select>';
|
||||
echo '<input style="margin-left: 20px" type="submit" name="vergleich" value="Vergleichen">';
|
||||
if (isset($rolle2))
|
||||
{
|
||||
echo ' <table id="t4" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kurzbz</th>
|
||||
<th>Art</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
foreach ($rollenGesamt AS $recht => $art)
|
||||
{
|
||||
if (array_key_exists($recht, $rollen2Arr))
|
||||
{
|
||||
if ($art != $rollen2Arr[$recht])
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid black">'.$rollen2Arr[$recht].'</td>
|
||||
</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid transparent">'.$recht.'</td>
|
||||
<td style="border: 1px solid transparent">'.$art.'</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' <tr>
|
||||
<td style="border: 1px solid black; border-right: 0"> </td>
|
||||
<td style="border: 1px solid black; border-left: 0"> </td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
echo '
|
||||
</tbody>
|
||||
</table>';
|
||||
}
|
||||
echo '
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<h2>Rollen Übersicht</h2>';
|
||||
$save = filter_input(INPUT_POST, 'save');
|
||||
$edit = filter_input(INPUT_POST, 'edit');
|
||||
|
||||
@@ -273,11 +475,56 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
{
|
||||
$berechtigung = new berechtigung();
|
||||
if($berechtigung->deleteRolle($kurzbz))
|
||||
echo 'Rolle wurde entfernt';
|
||||
echo 'Die Rolle '.$kurzbz.' wurde erfolgreich gelöscht';
|
||||
else
|
||||
echo 'Fehler beim Löschen:'.$berechtigung->errormsg;
|
||||
}
|
||||
|
||||
if(isset($copy))
|
||||
{
|
||||
$kurzbz = filter_input(INPUT_POST, 'kurzbz');
|
||||
$copyName = filter_input(INPUT_POST, 'copy_name');
|
||||
$beschreibung = filter_input(INPUT_POST, 'beschreibung');
|
||||
|
||||
if(isset($kurzbz))
|
||||
{
|
||||
$berechtigung = new berechtigung();
|
||||
$berechtigung->rolle_kurzbz = $copyName;
|
||||
$berechtigung->beschreibung = $beschreibung;
|
||||
$berechtigung->new = true;
|
||||
|
||||
if($berechtigung->saveRolle())
|
||||
{
|
||||
$rollenrechte = new berechtigung();
|
||||
$rollenrechte->getRolleBerechtigung($kurzbz);
|
||||
foreach($rollenrechte->result as $rollenrecht)
|
||||
{
|
||||
$newRolleRecht = new berechtigung();
|
||||
$newRolleRecht->rolle_kurzbz = $copyName;
|
||||
$newRolleRecht->berechtigung_kurzbz = $rollenrecht->berechtigung_kurzbz;
|
||||
$newRolleRecht->art = $rollenrecht->art;
|
||||
$newRolleRecht->anmerkung = $rollenrecht->anmerkung;
|
||||
$newRolleRecht->insertamum = date('Y-m-d H:i:s');
|
||||
$newRolleRecht->insertvon = $user;
|
||||
if(!$newRolleRecht->saveRolleBerechtigung())
|
||||
{
|
||||
echo 'Fehler beim Speichern des Rechts '.$rollenrecht->berechtigung_kurzbz.' zur Rolle '.$rollenrecht->rolle_kurzbz;
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo 'Rolle erfolgreich kopiert';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler beim kopieren der Rolle '.$kurzbz.':'.$berechtigung->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Zum Speichern der Daten muss die kurzbz und die Beschreibung angegeben werden';
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($edit))
|
||||
{
|
||||
$beschreibung = filter_input(INPUT_POST, 'beschreibung');
|
||||
@@ -292,13 +539,18 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
$berechtigung = new berechtigung();
|
||||
$berechtigung->getRollen(); ?>
|
||||
|
||||
<h3>Rollen:</h3>
|
||||
<p style="text-align: right">
|
||||
<a href="<?php echo basename(__FILE__) ?>?vergleich=vergleich">
|
||||
Rollen vergleichen
|
||||
</a>
|
||||
</p>
|
||||
<button type="button" class="resetsaved" title="Reset Filter">Reset Filter</button>
|
||||
<table id="t2" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kurzbz</th>
|
||||
<th>Beschreibung</th>
|
||||
<th colspan="2">Aktion</th>
|
||||
<th colspan="3">Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -325,7 +577,18 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="<?php echo basename(__FILE__) ?>?kurzbz=<?php echo $rolle->rolle_kurzbz ?>&delete=1" onclick="return confdel()">
|
||||
<form method="POST" style="display: none">
|
||||
<input type="text" placeholder="Name der Kopie" maxlength="32" size="35" name="copy_name" value=""/>
|
||||
<input type="hidden" name="kurzbz" value="<?php echo $rolle->rolle_kurzbz ?>"/>
|
||||
<input type="hidden" name="beschreibung" value="<?php echo $rolle->beschreibung ?>"/>
|
||||
<input type="submit" name="copy" value="Jetzt kopieren" />
|
||||
</form>
|
||||
<a class="copyButton" href="">
|
||||
Rolle kopieren
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="<?php echo basename(__FILE__) ?>?kurzbz=<?php echo $rolle->rolle_kurzbz ?>&delete=1" onclick="return confirm('Achtung! Das Löschen einer Rolle löscht auch alle Zuordnungen dieser Rolle zu BenutzerInnen.\n\nWollen Sie die Rolle <?php echo $rolle->rolle_kurzbz ?> wirklich löschen?');">
|
||||
Rolle löschen
|
||||
</a>
|
||||
</td>
|
||||
@@ -341,6 +604,7 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
<form method="POST">
|
||||
Kurzbz: <input type="text" maxlength="32" size="35" name="kurzbz" value="<?php echo $rolle_edit->rolle_kurzbz ?>" disabled />
|
||||
Beschreibung: <textarea style="vertical-align: top; font-family: inherit; font-size: small;" cols="50" rows="3" type="text" maxlength="256" size="200" name="beschreibung" value="" /><?php echo $rolle_edit->beschreibung ?></textarea>
|
||||
<span style="color: grey; display: inline-block; width: 30px;"><?php echo (256 - strlen($rolle_edit->beschreibung)) ?></span>
|
||||
<input type="submit" name="edit" value="Speichern" />
|
||||
</form>
|
||||
<a href="<?php echo basename(__FILE__) ?>">Neue Rolle anlegen</a>
|
||||
@@ -348,6 +612,7 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
<form method="POST">
|
||||
Kurzbz: <input type="text" maxlength="32" size="35" name="kurzbz" value="" />
|
||||
Beschreibung: <textarea style="vertical-align: top; font-family: inherit; font-size: small;" cols="50" rows="3" type="text" maxlength="256" size="200" name="beschreibung" value="" /></textarea>
|
||||
<span style="color: grey; display: inline-block; width: 30px;" id="countdown_textarea_new">256</span>
|
||||
<input type="submit" name="save" value="Anlegen" />
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user