mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Merge branch 'master' into feature-19538/Gruppenadministratoren
This commit is contained in:
@@ -309,4 +309,50 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($uid, $studiensemester_kurzbz, $lehrveranstaltung_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht nach LV Templates und gibt Id und Label ("bezeichnung [kurzbz]") aus
|
||||
* Diese funktion ist für autocomplete gedacht
|
||||
*
|
||||
* @param string $filter Suchfilter
|
||||
* @return \stdClass A return object
|
||||
*/
|
||||
public function loadTemplates($filter)
|
||||
{
|
||||
$filter = strtolower($filter);
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
|
||||
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) LIKE '%".$this->db_escape($filter)."%' OR
|
||||
LOWER(tbl_lehrveranstaltung.bezeichnung) LIKE '%".$this->db_escape($filter). "%' OR
|
||||
LOWER(tbl_lehrveranstaltung.kurzbz) LIKE '%".$this->db_escape($filter). "%'
|
||||
)
|
||||
";
|
||||
return $this->execQuery($qry);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt Template und gibt Id und Label ("bezeichnung [kurzbz]") zurück
|
||||
* Diese funktion ist für autocomplete gedacht
|
||||
*
|
||||
* @param string $name
|
||||
* @return \stdClass A return object
|
||||
*/
|
||||
public function loadTemplateByName($name)
|
||||
{
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id as id, CONCAT(tbl_lehrveranstaltung.bezeichnung, ' [', tbl_lehrveranstaltung.kurzbz, ']') as label
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
|
||||
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) = '".($name ? $this->db_escape($name) : 0)."' OR tbl_lehrveranstaltung.bezeichnung = '".$this->db_escape($name). "' OR tbl_lehrveranstaltung.kurzbz = '".$this->db_escape($name). "'
|
||||
)
|
||||
";
|
||||
return $this->execQuery($qry);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ class Person_model extends DB_Model
|
||||
}
|
||||
else
|
||||
{
|
||||
$person['svnr'] = $person['svnr'] . 'v' . ($result->retval[0]->svnr{11} + 1);
|
||||
$person['svnr'] = $person['svnr'] . 'v' . ($result->retval[0]->svnr[11] + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -283,8 +283,8 @@ class Person_model extends DB_Model
|
||||
SELECT p2.person_id
|
||||
FROM public.tbl_person p
|
||||
JOIN public.tbl_person p2
|
||||
ON p.vorname = p2.vorname
|
||||
AND p.nachname = p2.nachname
|
||||
ON lower(p.vorname) = lower(p2.vorname)
|
||||
AND lower(p.nachname) = lower(p2.nachname)
|
||||
AND p.gebdatum = p2.gebdatum
|
||||
AND p.person_id = ?
|
||||
)
|
||||
@@ -310,8 +310,8 @@ class Person_model extends DB_Model
|
||||
SELECT p2.person_id
|
||||
FROM public.tbl_person p
|
||||
JOIN public.tbl_person p2
|
||||
ON p.vorname = p2.vorname
|
||||
AND p.nachname = p2.nachname
|
||||
ON lower(p.vorname) = lower(p2.vorname)
|
||||
AND lower(p.nachname) = lower(p2.nachname)
|
||||
AND p.gebdatum = p2.gebdatum
|
||||
AND p.person_id = ?
|
||||
)
|
||||
@@ -330,7 +330,7 @@ class Person_model extends DB_Model
|
||||
SELECT vorname, nachname, gebdatum, person_id
|
||||
FROM tbl_person
|
||||
) p2
|
||||
ON (p1.vorname = p2.vorname AND p1.nachname = p2.nachname AND p1.gebdatum = p2.gebdatum)
|
||||
ON (lower(p1.vorname) = lower(p2.vorname) AND lower(p1.nachname) = lower(p2.nachname) AND p1.gebdatum = p2.gebdatum)
|
||||
WHERE p1.person_id != p2.person_id AND (p1.person_id = ?)";
|
||||
|
||||
return $this->execQuery($qry, array($person_id, $person_id, $person_id));
|
||||
|
||||
@@ -254,6 +254,22 @@
|
||||
ORDER BY ps.zgvmanation DESC NULLS LAST, ps.prestudent_id DESC
|
||||
LIMIT 1
|
||||
) AS "ZGVMNation",
|
||||
(
|
||||
SELECT upper(tbl_nation.nationengruppe_kurzbz)
|
||||
FROM public.tbl_prestudent ps
|
||||
JOIN bis.tbl_nation ON ps.zgvnation = tbl_nation.nation_code
|
||||
WHERE ps.person_id = p.person_id
|
||||
ORDER BY ps.zgvnation DESC NULLS LAST, ps.prestudent_id DESC
|
||||
LIMIT 1
|
||||
) AS "ZGVNationGruppe",
|
||||
(
|
||||
SELECT upper(tbl_nation.nationengruppe_kurzbz)
|
||||
FROM public.tbl_prestudent ps
|
||||
JOIN bis.tbl_nation ON ps.zgvmanation = tbl_nation.nation_code
|
||||
WHERE ps.person_id = p.person_id
|
||||
ORDER BY ps.zgvmanation DESC NULLS LAST, ps.prestudent_id DESC
|
||||
LIMIT 1
|
||||
) AS "ZGVMNationGruppe",
|
||||
(
|
||||
SELECT tbl_organisationseinheit.bezeichnung
|
||||
FROM public.tbl_benutzerfunktion
|
||||
@@ -361,6 +377,8 @@
|
||||
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'aktiv').')',
|
||||
'ZGV Nation BA',
|
||||
'ZGV Nation MA',
|
||||
'ZGV Gruppe BA',
|
||||
'ZGV Gruppe MA',
|
||||
'InfoCenter Mitarbeiter'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
@@ -452,6 +470,16 @@
|
||||
$datasetRaw->{'ZGVMNation'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'ZGVNationGruppe'} == null)
|
||||
{
|
||||
$datasetRaw->{'ZGVNationGruppe'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'ZGVMNationGruppe'} == null)
|
||||
{
|
||||
$datasetRaw->{'ZGVMNationGruppe'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
|
||||
{
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
|
||||
|
||||
@@ -199,14 +199,15 @@ $query = '
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
(
|
||||
SELECT rtp.datum
|
||||
SELECT CONCAT(rtp.datum, rtp.uhrzeit)
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
LEFT JOIN (
|
||||
SELECT rtp.person_id,
|
||||
rt.studiensemester_kurzbz,
|
||||
rtp.teilgenommen,
|
||||
rt.datum
|
||||
rt.datum,
|
||||
rt.uhrzeit
|
||||
FROM public.tbl_rt_person rtp
|
||||
JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id)
|
||||
WHERE rt.stufe = 1
|
||||
@@ -409,13 +410,13 @@ $query = '
|
||||
$datasetRaw->{'ReihungstestApplied'} = 'Nein';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'ReihungstestDate'} == null)
|
||||
if ($datasetRaw->{'ReihungstestDate'} == '')
|
||||
{
|
||||
$datasetRaw->{'ReihungstestDate'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d');
|
||||
$datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'ZGVNation'} == null)
|
||||
|
||||
@@ -31,15 +31,35 @@ $query = "WITH zustaendigkeiten AS (
|
||||
$query .= " THEN TRUE
|
||||
ELSE FALSE
|
||||
END AS \"zustaendig\"
|
||||
FROM system.tbl_fehler_zustaendigkeiten zst
|
||||
FROM system.tbl_fehler_zustaendigkeiten zst
|
||||
)";
|
||||
|
||||
$query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern AS \"Fehlercode extern\", datum AS \"Datum\",
|
||||
inhalt AS \"Inhalt\", inhalt_extern AS \"Inhalt extern\", iss.person_id AS \"PersonId\", iss.oe_kurzbz AS \"OE\",
|
||||
inhalt AS \"Inhalt\", inhalt_extern AS \"Inhalt extern\", iss.person_id AS \"PersonId\", iss.oe_kurzbz AS \"OE\",
|
||||
ftyp.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlertyp\", stat.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlerstatus\",
|
||||
verarbeitetvon AS \"Verarbeitet von\",verarbeitetamum AS \"Verarbeitet am\", fr.app AS \"Applikation\",
|
||||
fr.fehlertyp_kurzbz AS \"Fehlertypcode\", iss.status_kurzbz AS \"Statuscode\",
|
||||
pers.vorname AS \"Vorname\", pers.nachname AS \"Nachname\",
|
||||
pers.vorname AS \"Vorname\", pers.nachname AS \"Nachname\",
|
||||
(
|
||||
/* show all relevant Studiengänge of person and wether it is an employee*/
|
||||
SELECT STRING_AGG(studiengang || ' ' || last_status, ' | ')
|
||||
|| (CASE WHEN EXISTS (
|
||||
SELECT 1 FROM public.tbl_mitarbeiter ma
|
||||
JOIN public.tbl_benutzer ben ON ma.mitarbeiter_uid = ben.uid
|
||||
WHERE person_id = prestudents.person_id
|
||||
AND ben.aktiv
|
||||
) THEN ' | Mitarbeiter' ELSE '' END)
|
||||
FROM (
|
||||
SELECT DISTINCT person_id, prestudent_id, UPPER(stg.typ || stg.kurzbz) AS studiengang, get_rolle_prestudent(ps.prestudent_id, null) AS last_status
|
||||
FROM public.tbl_prestudent ps
|
||||
JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
WHERE person_id = pers.person_id
|
||||
ORDER BY prestudent_id DESC
|
||||
) prestudents
|
||||
WHERE last_status IN ('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')
|
||||
GROUP BY person_id
|
||||
LIMIT 1;
|
||||
) AS \"Zugehörigkeit\",
|
||||
CASE
|
||||
WHEN
|
||||
EXISTS(SELECT 1
|
||||
@@ -60,7 +80,7 @@ $query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern
|
||||
FROM system.tbl_fehler_zustaendigkeiten
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
WHERE fehlercode = fr.fehlercode
|
||||
GROUP BY fehlercode
|
||||
GROUP BY fehlercode
|
||||
) AS \"Person Zuständigkeiten\",
|
||||
(
|
||||
SELECT string_agg(organisationseinheittyp_kurzbz || ' ' || oe.bezeichnung || COALESCE(' - ' || fu.beschreibung, ''), ' | ' ORDER BY bezeichnung, oe_kurzbz)
|
||||
@@ -68,7 +88,7 @@ $query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern
|
||||
LEFT JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
LEFT JOIN public.tbl_funktion fu USING (funktion_kurzbz)
|
||||
WHERE fehlercode = fr.fehlercode
|
||||
GROUP BY fehlercode
|
||||
GROUP BY fehlercode
|
||||
) AS \"Organisationseinheit Zuständigkeiten\"
|
||||
FROM system.tbl_issue iss
|
||||
JOIN system.tbl_fehler fr USING (fehlercode)
|
||||
@@ -95,13 +115,13 @@ if (!isEmptyArray($all_oe_kurzbz_berechtigt))
|
||||
AND NOT EXISTS (SELECT 1 /* irrelevant if already finished studies and studied a while ago */
|
||||
FROM public.tbl_prestudentstatus ps_finished
|
||||
JOIN public.tbl_studiensemester sem_finished USING (studiensemester_kurzbz)
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
AND status_kurzbz IN ('Absolvent','Abbrecher','Abgewiesener')
|
||||
AND datum::date + interval '2 months' < NOW()
|
||||
AND EXISTS (SELECT 1 FROM public.tbl_prestudent /* if more recent prestudent exists, still display the issue */
|
||||
JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
|
||||
WHERE tbl_prestudentstatus.status_kurzbz IN $RELEVANT_PRESTUDENT_STATUS
|
||||
WHERE tbl_prestudentstatus.status_kurzbz IN $RELEVANT_PRESTUDENT_STATUS
|
||||
AND person_id = ps.person_id
|
||||
AND prestudent_id <> ps_finished.prestudent_id
|
||||
AND tbl_studiensemester.start::date > sem_finished.start::date)
|
||||
@@ -149,6 +169,7 @@ $filterWidgetArray = array(
|
||||
ucfirst($this->p->t('fehlermonitoring', 'statuscode')),
|
||||
ucfirst($this->p->t('person', 'vorname')),
|
||||
ucfirst($this->p->t('person', 'nachname')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'zugehoerigkeit')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'zustaendigePersonen')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten'))
|
||||
@@ -180,16 +201,16 @@ $filterWidgetArray = array(
|
||||
$datasetRaw->{'OE'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Verarbeitet am'} == null)
|
||||
{
|
||||
$datasetRaw->{'Verarbeitet am'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Verarbeitet von'} == null)
|
||||
{
|
||||
$datasetRaw->{'Verarbeitet von'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Zugehörigkeit'} == null)
|
||||
{
|
||||
$datasetRaw->{'Zugehörigkeit'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Person Zuständigkeiten'} == null)
|
||||
{
|
||||
$datasetRaw->{'Person Zuständigkeiten'} = '-';
|
||||
@@ -200,8 +221,6 @@ $filterWidgetArray = array(
|
||||
$datasetRaw->{'Organisationseinheit Zuständigkeiten'} = '-';
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
@@ -282,7 +282,7 @@ function showHideBezeichnungDropDown()
|
||||
}
|
||||
else if (dd.options[dd.selectedIndex].value == 'DienstF')
|
||||
{
|
||||
sp.innerHTML = '<font color="red"><b>Dienstfreistellungen</b> nur in Absprache mit Personalservice eintragen!</font><br><input type="text" name="bezeichnung" maxlength="32" size="32" value="">';
|
||||
sp.innerHTML = '<font color="red"><b>Dienstfreistellungen</b> nur in Absprache mit HR Service eintragen!</font><br><input type="text" name="bezeichnung" maxlength="32" size="32" value="">';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -275,7 +275,7 @@ function searchOE($searchItems)
|
||||
$oe->result[] = new organisationseinheit($row->oe_kurzbz);
|
||||
}
|
||||
|
||||
if(count($oe->result)>0)
|
||||
if(is_array($oe->result) && count($oe->result)>0)
|
||||
{
|
||||
echo '<h2 style="padding-bottom: 10px;">',$p->t('global/organisationseinheiten'),'</h2>';
|
||||
echo '
|
||||
|
||||
@@ -496,7 +496,7 @@ if(!$error)
|
||||
elseif(isset($_POST['stsem_aktuell']))
|
||||
{
|
||||
$stsem = new studiensemester();
|
||||
$studiensemester_kurzbz = $stsem->getakt();
|
||||
$studiensemester_kurzbz = $stsem->getNearest();
|
||||
|
||||
$variable->name = 'semester_aktuell';
|
||||
$variable->wert = $studiensemester_kurzbz;
|
||||
|
||||
@@ -1477,7 +1477,7 @@ if(!$error)
|
||||
$lema_new->insertamum = date('Y-m-d H:i:s');
|
||||
$lema_new->insertvon = $user;
|
||||
$lema_new->ext_id = $row->ext_id;
|
||||
$lema_new->vertrag_id = $row->vertrag_id;
|
||||
$lema_new->vertrag_id = '';
|
||||
|
||||
if (!$lema_new->save(true))
|
||||
{
|
||||
|
||||
@@ -95,6 +95,7 @@ if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$r
|
||||
$data = '';
|
||||
$error = true;
|
||||
}
|
||||
$check_statusaenderung_berechtigung = 'student/keine_studstatuspruefung';
|
||||
|
||||
// *** FUNKTIONEN ***
|
||||
|
||||
@@ -372,6 +373,175 @@ function isBuchungAllowedToChange($buchung_obj)
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Prüft für einen Prestudenten, ob eine bestimmte Statusänderung valide ist.
|
||||
* @param $prestudent_id
|
||||
* @param $status_kurzbz des neuen/bearbeiteten Status
|
||||
* @param $new_status_studiensemester Studiensemester des neuen/zu ändernen Status
|
||||
* @param $new_status_datum Datum des neuen/zu ändernen Status
|
||||
* @param $new_status_ausbildungssemester Ausbildungssemester des neuen/zu ändernen Status
|
||||
* @param $old_status_studiensemester Studiensemester des alten Status, leer wenn neuer Status
|
||||
* @param $old_status_ausbildungssemester Ausbildungssemester des alten Status, leer wenn neuer Status
|
||||
* @return array
|
||||
*/
|
||||
function checkStatusaenderung(
|
||||
$prestudent_id, $status_kurzbz, $new_status_studiensemester, $new_status_datum, $new_status_ausbildungssemester,
|
||||
$old_status_studiensemester = '', $old_status_ausbildungssemester = ''
|
||||
)
|
||||
{
|
||||
global $db;
|
||||
// Es ist ein neuer Status wenn es kein altes Semester gibt
|
||||
$isNewStatus = $old_status_studiensemester == '' && $old_status_ausbildungssemester == '';
|
||||
// status_kurzbz für Endstatus
|
||||
$endstatusArr = array('Absolvent', 'Abbrecher');
|
||||
// Datum des neuen Status setzen
|
||||
$new_status_datum = new DateTime($new_status_datum);
|
||||
|
||||
// Wenn neuer Status
|
||||
if ($isNewStatus)
|
||||
{
|
||||
// Datum des neuen Status darf nicht in Vergangenheit liegen, sonst Probleme wenn neues Datum < Bismeldedatum
|
||||
$current_date = new DateTime('today');
|
||||
if ($new_status_datum < $current_date)
|
||||
{
|
||||
return array(
|
||||
'error' => true,
|
||||
'errormsg' => 'Datum eines neuen Statuseintrags darf nicht in der Vergangenheit liegen'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// start des Studiensemesters holen
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester->load($new_status_studiensemester);
|
||||
$new_status_semesterstart = new DateTime($studiensemester->start);
|
||||
|
||||
// Alle bisherigen prestudentstatus nach Datum sortiert
|
||||
$qry = "SELECT status_kurzbz, studiensemester_kurzbz, ausbildungssemester, datum, sem.start AS studiensemester_start
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_studiensemester sem USING (studiensemester_kurzbz)
|
||||
WHERE prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
// zu ändernden Status rausfiltern wenn Status bearbeitet wird
|
||||
if (!$isNewStatus)
|
||||
{
|
||||
$qry .= " AND NOT (
|
||||
status_kurzbz=".$db->db_add_param($status_kurzbz)
|
||||
." AND studiensemester_kurzbz=".$db->db_add_param($old_status_studiensemester)
|
||||
." AND ausbildungssemester=".$db->db_add_param($old_status_ausbildungssemester, FHC_INTEGER)."
|
||||
)";
|
||||
}
|
||||
|
||||
$qry .= " ORDER BY datum DESC, pss.insertamum DESC, pss.ext_id DESC";
|
||||
|
||||
$statusArr = array();
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
$newStatusInserted = false;
|
||||
|
||||
// für jeden Status
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$studiensemester_start = new DateTime($row->studiensemester_start);
|
||||
$status_datum = new DateTime($row->datum);
|
||||
|
||||
// Neuer/editierter Statuseintrag nach bestehendem Statuseintrag
|
||||
if ($new_status_datum >= $status_datum && $new_status_semesterstart >= $studiensemester_start)
|
||||
{
|
||||
if (!$newStatusInserted)
|
||||
{
|
||||
// neuer Status erstmals größer als Datum eines bestehenden Status -> neuen Status einfügen
|
||||
$new_status = new stdClass();
|
||||
$new_status->status_kurzbz = $status_kurzbz;
|
||||
$new_status->studiensemester_kurzbz = $new_status_studiensemester;
|
||||
$new_status->datum = $new_status_datum;
|
||||
$new_status->ausbildungssemester = $new_status_ausbildungssemester;
|
||||
$statusArr[] = $new_status;
|
||||
$newStatusInserted = true;
|
||||
}
|
||||
|
||||
// Gültige Zeitabfolge, bestehenden Status hinzufügen
|
||||
$statusArr[] = $row;
|
||||
}
|
||||
// oder Neuer/editierter Statuseintrag nach bestehendem Statuseintrag
|
||||
elseif ($new_status_datum <= $status_datum && $new_status_semesterstart <= $studiensemester_start)
|
||||
{
|
||||
// Gültige Zeitabfolge, bestehenden Status hinzufügen
|
||||
$statusArr[] = $row;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Zeitabfolge ungültig, Fehler
|
||||
return array(
|
||||
'error' => true,
|
||||
'errormsg' => 'Datum des Statuseintrags muss nach dem Statusdatum,'
|
||||
.' Semesterstartdatum nach Semesterstartdatum des vorherigen Statuseintrags sein'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Prüfungen den Prestudentstatus betreffend
|
||||
// Über alle gespeicherten Status gehen und Statusabfolge prüfen
|
||||
for ($i = 0; $i < count($statusArr); $i++)
|
||||
{
|
||||
$curr_status = $statusArr[$i];
|
||||
$curr_status_kurzbz = $curr_status->status_kurzbz;
|
||||
$curr_status_ausbildungssemester = $curr_status->ausbildungssemester;
|
||||
$next_idx = $i - 1; //absteigend sortiert, nächster Status ist vorheriger Eintrag
|
||||
$next_status = isset($statusArr[$next_idx]) ? $statusArr[$next_idx] : null;
|
||||
|
||||
// Abbrecher- oder Absolventenstatus muss Endstatus sein
|
||||
if (isset($next_status) && in_array($curr_status_kurzbz, $endstatusArr))
|
||||
{
|
||||
return array(
|
||||
'error' => true,
|
||||
'errormsg' => 'Nach Abbrecher- und Absolventenstatus darf kein anderer Status mehr eingetragen werden'
|
||||
);
|
||||
}
|
||||
|
||||
// wenn Unterbrecher auf Unterbrecher folgt, muss Ausbildungssemester gleich sein
|
||||
if (
|
||||
$curr_status_kurzbz == 'Unterbrecher' && isset($next_status) && $next_status->status_kurzbz == 'Unterbrecher'
|
||||
&& $curr_status_ausbildungssemester != $next_status->ausbildungssemester
|
||||
)
|
||||
{
|
||||
return array(
|
||||
'error' => true,
|
||||
'errormsg' => 'Aufeinanderfolgende Unterbrecher müssen gleiches Ausbildungssemester haben'
|
||||
);
|
||||
}
|
||||
|
||||
// wenn Abbrecher auf Unterbrecher folgt, muss Ausbildungssemester gleich sein
|
||||
if (
|
||||
isset($next_status) && $curr_status_kurzbz == 'Unterbrecher'
|
||||
&& $next_status->status_kurzbz == 'Abbrecher' && $curr_status_ausbildungssemester != $next_status->ausbildungssemester
|
||||
)
|
||||
{
|
||||
return array(
|
||||
'error' => true,
|
||||
'errormsg' => 'Unterbrecher und folgender Abbrecher müssen gleiches Ausbildungssemester haben'
|
||||
);
|
||||
}
|
||||
|
||||
// keine Studenten nach Diplomand Status
|
||||
if (
|
||||
isset($next_status) && $curr_status_kurzbz == 'Diplomand' && $next_status->status_kurzbz == 'Student'
|
||||
)
|
||||
{
|
||||
return array(
|
||||
'error' => true,
|
||||
'errormsg' => 'Nach Diplomantenstatus darf kein Studentenstatus mehr eingetragen werden'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
return array('error' => true, 'errormsg' => 'Fehler bei Statusänderungcheck');
|
||||
|
||||
return array('error' => false, 'errormsg' => '');
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
|
||||
@@ -403,7 +573,7 @@ if(!$error)
|
||||
$return = false;
|
||||
$errormsg = 'Geburtsdatum ist nicht korrekt.';
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
@@ -648,12 +818,12 @@ if(!$error)
|
||||
$prestudent->zgvort = $_POST['zgvort'];
|
||||
$prestudent->zgvdatum = $_POST['zgvdatum'];
|
||||
$prestudent->zgvnation = $_POST['zgvnation'];
|
||||
$prestudent->zgv_erfuellt = $_POST['zgv_erfuellt'];
|
||||
$prestudent->zgv_erfuellt = $_POST['zgv_erfuellt'];
|
||||
$prestudent->zgvmas_code = $_POST['zgvmas_code'];
|
||||
$prestudent->zgvmaort = $_POST['zgvmaort'];
|
||||
$prestudent->zgvmadatum = $_POST['zgvmadatum'];
|
||||
$prestudent->zgvmanation = $_POST['zgvmanation'];
|
||||
$prestudent->zgvmas_erfuellt = $_POST['zgvmas_erfuellt'];
|
||||
$prestudent->zgvmas_erfuellt = $_POST['zgvmas_erfuellt'];
|
||||
$prestudent->zgvdoktor_code = $_POST['zgvdoktor_code'];
|
||||
$prestudent->zgvdoktorort = $_POST['zgvdoktorort'];
|
||||
$prestudent->zgvdoktordatum = $_POST['zgvdoktordatum'];
|
||||
@@ -808,6 +978,28 @@ if(!$error)
|
||||
}
|
||||
}
|
||||
|
||||
// wenn keine spezielle Berechtiung zur Umgebung, Statusänderung Checks durchführen
|
||||
if (!$rechte->isBerechtigt($check_statusaenderung_berechtigung))
|
||||
{
|
||||
$new_status_datum = isset($_POST['datum']) ? $_POST['datum'] : date('Y-m-d');
|
||||
|
||||
$check_statusaenderung_result = checkStatusaenderung(
|
||||
$prestudent_id,
|
||||
$_POST['status_kurzbz'],
|
||||
$studiensemester,
|
||||
$new_status_datum,
|
||||
$sem
|
||||
);
|
||||
|
||||
if (isset($check_statusaenderung_result['error']) && $check_statusaenderung_result['error'] === true)
|
||||
{
|
||||
$return = false;
|
||||
$error = true;
|
||||
$errormsg .= isset($check_statusaenderung_result['errormsg']) ? $check_statusaenderung_result['errormsg'] : '';
|
||||
$anzahl_fehler++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$prestd_neu = new prestudent();
|
||||
@@ -1003,7 +1195,7 @@ if(!$error)
|
||||
isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) &&
|
||||
isset($_POST['ausbildungssemester']) && is_numeric($_POST['ausbildungssemester']))
|
||||
{
|
||||
if($_POST['status_kurzbz']=='Student' && !$rechte->isBerechtigt('admin', null, 'suid'))
|
||||
if($_POST['status_kurzbz']=='Student' && !$rechte->isBerechtigt('admin', null, 'suid') && !$rechte->isBerechtigt('student/keine_studstatuspruefung', null, 'suid'))
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Studentenrolle kann nur durch den Administrator geloescht werden';
|
||||
@@ -1019,7 +1211,7 @@ if(!$error)
|
||||
if($row->anzahl<=1)
|
||||
{
|
||||
$deletePrestudent = true;
|
||||
if (!$rechte->isBerechtigt('admin', null, 'suid'))
|
||||
if (!$rechte->isBerechtigt('admin', null, 'suid') && !$rechte->isBerechtigt('student/keine_studstatuspruefung', null, 'suid'))
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Die letzte Rolle kann nur durch den Administrator geloescht werden';
|
||||
@@ -1307,6 +1499,28 @@ if(!$error)
|
||||
$rolle->new = false;
|
||||
}
|
||||
|
||||
// Statuschecks durchführen wenn keine spezielle Berechtigung zur Umgehung
|
||||
if (!$rechte->isBerechtigt($check_statusaenderung_berechtigung))
|
||||
{
|
||||
// allgemeine Prüfung bei Änderung oder Hinzufügen eines Status, inkludiert alle Status
|
||||
$check_statusaenderung_result = checkStatusaenderung(
|
||||
$_POST['prestudent_id'],
|
||||
$_POST['status_kurzbz'],
|
||||
$_POST['studiensemester_kurzbz'],
|
||||
$_POST['datum'],
|
||||
$_POST['ausbildungssemester'],
|
||||
$_POST['studiensemester_old'],
|
||||
$_POST['ausbildungssemester_old']
|
||||
);
|
||||
|
||||
if (isset($check_statusaenderung_result['error']) && $check_statusaenderung_result['error'] === true)
|
||||
{
|
||||
$return = false;
|
||||
$error = true;
|
||||
$errormsg = isset($check_statusaenderung_result['errormsg']) ? $check_statusaenderung_result['errormsg'] : '';
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
// Bei Studenten wird der Studentlehrverband Eintrag angelegt/korrigiert
|
||||
@@ -2361,7 +2575,7 @@ if(!$error)
|
||||
{
|
||||
if ($dokument_kurzbz === 'Sonst' && $sonst !== 0)
|
||||
continue;
|
||||
|
||||
|
||||
if($dokument_kurzbz!='')
|
||||
{
|
||||
$dok = new dokument();
|
||||
@@ -2374,7 +2588,7 @@ if(!$error)
|
||||
$dok->new = true;
|
||||
if ($dokument_kurzbz === 'Sonst')
|
||||
$sonst++;
|
||||
|
||||
|
||||
|
||||
if(!$dok->save())
|
||||
{
|
||||
|
||||
@@ -71,9 +71,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<row>
|
||||
<label value="Person ID" control="student-detail-textbox-person_id"/>
|
||||
<hbox><textbox id="student-detail-textbox-person_id" readonly="true" maxlength="16" size="16"/></hbox>
|
||||
<label value="Zugangscode" control="student-detail-zugangscode"/>
|
||||
<?php $hideZugangscode = (defined('ACTIVE_ADDONS') && strpos(ACTIVE_ADDONS, 'bewerbung') !== false) ? '':' hidden="true"'; ?>
|
||||
<label value="Zugangscode" control="student-detail-zugangscode" <?php echo $hideZugangscode; ?>/>
|
||||
<label id="label-student-detail-link_bewerbungstool" hidden="true" value=""></label>
|
||||
<label class="text-link" href="#" id="label-student-detail-zugangscode" value="" onclick="window.open(document.getElementById('label-student-detail-link_bewerbungstool').value)"/>
|
||||
<label class="text-link" href="#" id="label-student-detail-zugangscode" value="" <?php echo $hideZugangscode; ?> onclick="window.open(document.getElementById('label-student-detail-link_bewerbungstool').value)"/>
|
||||
<?php $hideBpk = $rechte->isBerechtigt('student/bpk') ? '':' hidden="true"'; ?>
|
||||
<label value="BPK" control="student-detail-textbox-bpk"<?php echo $hideBpk; ?>/>
|
||||
<hbox><textbox id="student-detail-textbox-bpk" disabled="true" maxlength="28" size="50"<?php echo $hideBpk; ?>/></hbox>
|
||||
|
||||
@@ -831,6 +831,7 @@ class lehreinheit extends basis_db
|
||||
}
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
if(!isset($this->lehreinheiten[$row->unr])) $this->lehreinheiten[$row->unr] = new stdClass();
|
||||
$this->lehreinheiten[$row->unr]->lehreinheit_id[]=$row->lehreinheit_id;
|
||||
$this->lehreinheiten[$row->unr]->lvnr[]=$row->lvnr;
|
||||
$this->lehreinheiten[$row->unr]->unr=$row->unr;
|
||||
|
||||
@@ -69,6 +69,7 @@ class lehrveranstaltung extends basis_db
|
||||
public $semester_alternativ; // smallint
|
||||
public $farbe;
|
||||
public $lehrauftrag=true;
|
||||
public $lehrveranstaltung_template_id; // integer
|
||||
|
||||
|
||||
public $studienplan_lehrveranstaltung_id;
|
||||
@@ -158,6 +159,7 @@ class lehrveranstaltung extends basis_db
|
||||
$this->lvnr = $row->lvnr;
|
||||
$this->semester_alternativ = $row->semester_alternativ;
|
||||
$this->farbe = $row->farbe;
|
||||
$this->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
|
||||
$this->sws = $row->sws;
|
||||
$this->lvs = $row->lvs;
|
||||
@@ -237,6 +239,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
@@ -387,6 +390,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -516,6 +520,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -598,6 +603,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -729,6 +735,25 @@ class lehrveranstaltung extends basis_db
|
||||
$this->errormsg = 'Semesterwochen muss ein eine gueltige ganze Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if ($this->lehrveranstaltung_template_id != '')
|
||||
{
|
||||
if (!isint($this->lehrveranstaltung_template_id)) {
|
||||
$this->errormsg = 'Lehrveranstaltung Template Id muss eine gültige ganze Zahl sein';
|
||||
return false;
|
||||
} elseif($this->lehrtyp_kurzbz == 'tpl') {
|
||||
$this->errormsg = 'Lehrveranstaltung Template Id darf bei Lehrveranstaltungen des Typs "Template" nicht gesetzt werden';
|
||||
return false;
|
||||
} else {
|
||||
$template = new lehrveranstaltung($this->lehrveranstaltung_template_id);
|
||||
if ($template->errormsg) {
|
||||
$this->errormsg = 'Lehrveranstaltung Template: ' . $template->errormsg;
|
||||
return false;
|
||||
} elseif ($template->lehrtyp_kurzbz != 'tpl') {
|
||||
$this->errormsg = 'Lehrveranstaltung Template: Als Lehrtyp muss Template ausgewählt sein';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
@@ -753,7 +778,7 @@ class lehrveranstaltung extends basis_db
|
||||
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, insertamum,
|
||||
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,
|
||||
zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz,
|
||||
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe,sws,lvs,alvs,lvps,las,benotung,lvinfo,
|
||||
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe, lehrveranstaltung_template_id,sws,lvs,alvs,lvps,las,benotung,lvinfo,
|
||||
lehrauftrag, lehrmodus_kurzbz) VALUES ('.
|
||||
$this->db_add_param($this->studiengang_kz). ', '.
|
||||
$this->db_add_param($this->bezeichnung). ', '.
|
||||
@@ -790,6 +815,7 @@ class lehrveranstaltung extends basis_db
|
||||
$this->db_add_param($this->lvnr).','.
|
||||
$this->db_add_param($this->semester_alternativ).','.
|
||||
$this->db_add_param($this->farbe).','.
|
||||
$this->db_add_param($this->lehrveranstaltung_template_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->sws).','.
|
||||
$this->db_add_param($this->lvs).','.
|
||||
$this->db_add_param($this->alvs).','.
|
||||
@@ -846,6 +872,7 @@ class lehrveranstaltung extends basis_db
|
||||
'lvnr = ' . $this->db_add_param($this->lvnr) . ', ' .
|
||||
'semester_alternativ = '.$this->db_add_param($this->semester_alternativ).', '.
|
||||
'farbe = '.$this->db_add_param($this->farbe).', '.
|
||||
'lehrveranstaltung_template_id = '.$this->db_add_param($this->lehrveranstaltung_template_id, FHC_INTEGER).', '.
|
||||
'sws = '.$this->db_add_param($this->sws).', '.
|
||||
'lvs = '.$this->db_add_param($this->lvs).', '.
|
||||
'alvs = '.$this->db_add_param($this->alvs).', '.
|
||||
@@ -960,6 +987,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -1054,6 +1082,7 @@ class lehrveranstaltung extends basis_db
|
||||
$l->lvnr = $row->lvnr;
|
||||
$l->semester_alternativ = $row->semester_alternativ;
|
||||
$l->farbe = $row->farbe;
|
||||
$l->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$l->benotung = $this->db_parse_bool($row->benotung);
|
||||
$l->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -1137,6 +1166,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -1236,6 +1266,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->lvnr = $row->lvnr;
|
||||
$obj->semester_alternativ = $row->semester_alternativ;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$obj->stpllv_sort = $row->stpllv_sort;
|
||||
$obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
@@ -1309,7 +1340,7 @@ class lehrveranstaltung extends basis_db
|
||||
return $childs;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Generiert die Subtrees des Lehrveranstaltungstrees
|
||||
*/
|
||||
public function hasChildren($studienplan_lehrveranstaltung_id)
|
||||
@@ -1360,6 +1391,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->stpllv_koordinator = $lv->stpllv_koordinator;
|
||||
$obj->oe_kurzbz = $lv->oe_kurzbz;
|
||||
$obj->lvnr = $lv->lvnr;
|
||||
$obj->lehrveranstaltung_template_id = $lv->lehrveranstaltung_template_id;
|
||||
$obj->benotung = $this->db_parse_bool($lv->benotung);
|
||||
$obj->lvinfo =$this->db_parse_bool( $lv->lvinfo);
|
||||
$obj->zeugnis = $this->db_parse_bool($lv->zeugnis);
|
||||
@@ -1385,6 +1417,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->stpllv_koordinator = $this->stpllv_koordinator;
|
||||
$obj->oe_kurzbz = $this->oe_kurzbz;
|
||||
$obj->lvnr = $this->lvnr;
|
||||
$obj->lehrveranstaltung_template_id = $this->lehrveranstaltung_template_id;
|
||||
$obj->benotung = $this->db_parse_bool($this->benotung);
|
||||
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
|
||||
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
|
||||
@@ -1424,6 +1457,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->stpllv_pflicht = $lv->stpllv_pflicht;
|
||||
$obj->stpllv_koordinator = $lv->stpllv_koordinator;
|
||||
$obj->lvnr = $lv->lvnr;
|
||||
$obj->lehrveranstaltung_template_id = $lv->lehrveranstaltung_template_id;
|
||||
$obj->stpllv_sort = $lv->stpllv_sort;
|
||||
$obj->oe_kurzbz = $lv->oe_kurzbz;
|
||||
$obj->sws = $lv->sws;
|
||||
@@ -1467,6 +1501,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->stpllv_pflicht = $this->stpllv_pflicht;
|
||||
$obj->stpllv_koordinator = $this->stpllv_koordinator;
|
||||
$obj->lvnr = $this->lvnr;
|
||||
$obj->lehrveranstaltung_template_id = $this->lehrveranstaltung_template_id;
|
||||
$obj->benotung = $this->db_parse_bool($this->benotung);
|
||||
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
|
||||
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
|
||||
@@ -1574,6 +1609,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
|
||||
$lv_obj->lehrmodus_kurzbz = $row->lehrmodus_kurzbz;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -1660,6 +1696,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
|
||||
$lv_obj->lehrmodus_kurzbz = $row->lehrmodus_kurzbz;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -1750,7 +1787,7 @@ class lehrveranstaltung extends basis_db
|
||||
* @param $aktiv optional, true wenn nur aktive LVs
|
||||
* @param $lehrtyp optional, gewünschter Lehrtyp
|
||||
*/
|
||||
public function load_lva_oe($oe_kurzbz, $aktiv=null, $lehrtyp=null, $sort=null, $semester=null)
|
||||
public function load_lva_oe($oe_kurzbz, $aktiv=null, $lehrtyp=null, $sort=null, $semester=null, $lehrmodus=null)
|
||||
{
|
||||
|
||||
if (is_null($oe_kurzbz))
|
||||
@@ -1831,6 +1868,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
@@ -1961,6 +1999,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -2088,6 +2127,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -2276,7 +2316,7 @@ class lehrveranstaltung extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Lehrveranstaltungen eine Studienplans
|
||||
* Lädt alle Lehrveranstaltungen eines Studienplans
|
||||
* Optionale Filterung nach Lehrtyp und Semester
|
||||
* @param type $studienplan_id
|
||||
* @param type $lehrtyp_kurzbz
|
||||
@@ -2358,6 +2398,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->lvnr = $row->lvnr;
|
||||
$obj->semester_alternativ = $row->semester_alternativ;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
|
||||
$obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
@@ -2665,5 +2706,75 @@ class lehrveranstaltung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht nach LV Templates und gibt Id und Label ("bezeichnung [kurzbz]") aus
|
||||
* Diese funktion ist für autocomplete gedacht
|
||||
*
|
||||
* @param string $filter Suchfilter
|
||||
* @return array
|
||||
*/
|
||||
public function loadTemplates($filter)
|
||||
{
|
||||
$filter = strtolower($filter);
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
|
||||
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) LIKE '%".$this->db_escape($filter)."%' OR
|
||||
LOWER(tbl_lehrveranstaltung.bezeichnung) LIKE '%".$this->db_escape($filter). "%' OR
|
||||
LOWER(tbl_lehrveranstaltung.kurzbz) LIKE '%".$this->db_escape($filter). "%'
|
||||
)
|
||||
";
|
||||
$lehrveranstaltungen = [];
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$lehrveranstaltungen[] = $row;
|
||||
}
|
||||
return $lehrveranstaltungen;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei Datenbankabfrage';
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt Template und gibt Id und Label ("bezeichnung [kurzbz]") zurück
|
||||
* Diese funktion ist für autocomplete gedacht
|
||||
*
|
||||
* @param string $name
|
||||
* @return stdClass | null
|
||||
*/
|
||||
public function loadTemplateByName($name)
|
||||
{
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id as id, CONCAT(tbl_lehrveranstaltung.bezeichnung, ' [', tbl_lehrveranstaltung.kurzbz, ']') as label
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
|
||||
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) = '".($name ? $this->db_escape($name) : 0)."' OR tbl_lehrveranstaltung.bezeichnung = '".$this->db_escape($name). "' OR tbl_lehrveranstaltung.kurzbz = '".$this->db_escape($name). "'
|
||||
)
|
||||
";
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei Datenbankabfrage ' .$this->db_last_error();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -284,7 +284,7 @@ class person extends basis_db
|
||||
//Quersumme bilden
|
||||
for ($i = 0; $i < 10; $i++)
|
||||
{
|
||||
$erg += $gewichtung[$i] * $this->svnr{$i};
|
||||
$erg += $gewichtung[$i] * $this->svnr[$i];
|
||||
}
|
||||
|
||||
if ($this->svnr[3] != ($erg % 11)) //Vergleichen der Pruefziffer mit Quersumme Modulo 11
|
||||
|
||||
@@ -27,35 +27,36 @@ class studiengang extends basis_db
|
||||
public $new; // boolean
|
||||
public $result = array(); // studiengang Objekt
|
||||
|
||||
public $studiengang_kz; // integer
|
||||
public $kurzbz; // varchar(5)
|
||||
public $kurzbzlang; // varchar(10)
|
||||
public $bezeichnung; // varchar(128)
|
||||
public $english; // varchar(128)
|
||||
public $typ; // char(1)
|
||||
public $farbe; // char(6)
|
||||
public $email; // varchar(64)
|
||||
public $max_semester; // smallint
|
||||
public $max_verband; // char(1)
|
||||
public $max_gruppe; // char(1)
|
||||
public $erhalter_kz; // smallint
|
||||
public $bescheid; // varchar(256)
|
||||
public $bescheidbgbl1; // varchar(16)
|
||||
public $bescheidbgbl2; // varchar(16)
|
||||
public $bescheidgz; // varchar(16)
|
||||
public $bescheidvom; // Date
|
||||
public $titelbescheidvom; // Date
|
||||
public $ext_id; // bigint
|
||||
public $orgform_kurzbz; // varchar(3)
|
||||
public $zusatzinfo_html; // text
|
||||
public $sprache; // varchar(16)
|
||||
public $testtool_sprachwahl;// boolean
|
||||
public $studienplaetze; // smallint
|
||||
public $oe_kurzbz; // varchar(32)
|
||||
public $onlinebewerbung; // boolean
|
||||
public $melderelevant; // boolean
|
||||
public $foerderrelevant; // boolean
|
||||
public $standort_code; // integer
|
||||
public $studiengang_kz; // integer
|
||||
public $kurzbz; // varchar(5)
|
||||
public $kurzbzlang; // varchar(10)
|
||||
public $bezeichnung; // varchar(128)
|
||||
public $english; // varchar(128)
|
||||
public $typ; // char(1)
|
||||
public $farbe; // char(6)
|
||||
public $email; // varchar(64)
|
||||
public $max_semester; // smallint
|
||||
public $max_verband; // char(1)
|
||||
public $max_gruppe; // char(1)
|
||||
public $erhalter_kz; // smallint
|
||||
public $bescheid; // varchar(256)
|
||||
public $bescheidbgbl1; // varchar(16)
|
||||
public $bescheidbgbl2; // varchar(16)
|
||||
public $bescheidgz; // varchar(16)
|
||||
public $bescheidvom; // Date
|
||||
public $titelbescheidvom; // Date
|
||||
public $ext_id; // bigint
|
||||
public $orgform_kurzbz; // varchar(3)
|
||||
public $zusatzinfo_html; // text
|
||||
public $sprache; // varchar(16)
|
||||
public $testtool_sprachwahl; // boolean
|
||||
public $studienplaetze; // smallint
|
||||
public $oe_kurzbz; // varchar(32)
|
||||
public $onlinebewerbung; // boolean
|
||||
public $melderelevant; // boolean
|
||||
public $foerderrelevant; // boolean
|
||||
public $standort_code; // integer
|
||||
public $melde_studiengang_kz; // varchar(32)
|
||||
|
||||
public $kuerzel; // = typ + kurzbz (Bsp: BBE)
|
||||
public $kuerzel_arr = array(); // Array mit allen Kurzeln Index=studiengangs_kz
|
||||
@@ -134,6 +135,7 @@ class studiengang extends basis_db
|
||||
$this->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$this->standort_code = $row->standort_code;
|
||||
$this->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
|
||||
$this->bezeichnung_arr['German'] = $this->bezeichnung;
|
||||
$this->bezeichnung_arr['English'] = $this->english;
|
||||
@@ -210,6 +212,7 @@ class studiengang extends basis_db
|
||||
$stg_obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$stg_obj->standort_code = $row->standort_code;
|
||||
$stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
|
||||
$stg_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$stg_obj->bezeichnung_arr['English'] = $row->english;
|
||||
@@ -431,6 +434,7 @@ class studiengang extends basis_db
|
||||
$stg_obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$stg_obj->standort_code = $row->standort_code;
|
||||
$stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
|
||||
$stg_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$stg_obj->bezeichnung_arr['English'] = $row->english;
|
||||
@@ -474,6 +478,11 @@ class studiengang extends basis_db
|
||||
$this->errormsg = 'studiengang_kz ungueltig!';
|
||||
return false;
|
||||
}
|
||||
if(isset($this->melde_studiengang_kz) && $this->melde_studiengang_kz != '' && !is_numeric($this->melde_studiengang_kz))
|
||||
{
|
||||
$this->errormsg = 'melde_studiengang_kz ungueltig!';
|
||||
return false;
|
||||
}
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
@@ -501,7 +510,7 @@ class studiengang extends basis_db
|
||||
typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1,
|
||||
bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, onlinebewerbung, orgform_kurzbz, zusatzinfo_html,
|
||||
oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige,
|
||||
melderelevant, foerderrelevant, standort_code) VALUES ('.
|
||||
melderelevant, foerderrelevant, standort_code, melde_studiengang_kz) VALUES ('.
|
||||
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->kurzbz).', '.
|
||||
$this->db_add_param($this->kurzbzlang).', '.
|
||||
@@ -535,7 +544,8 @@ class studiengang extends basis_db
|
||||
$this->db_add_param($this->projektarbeit_note_anzeige, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->melderelevant, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->standort_code).');';
|
||||
$this->db_add_param($this->standort_code).','.
|
||||
$this->db_add_param($this->melde_studiengang_kz).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -575,7 +585,8 @@ class studiengang extends basis_db
|
||||
'mischform='.$this->db_add_param($this->mischform, FHC_BOOLEAN).', '.
|
||||
'melderelevant='.$this->db_add_param($this->melderelevant, FHC_BOOLEAN).', '.
|
||||
'foerderrelevant='.$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).', '.
|
||||
'standort_code='.$this->db_add_param($this->standort_code).' '.
|
||||
'standort_code='.$this->db_add_param($this->standort_code).', '.
|
||||
'melde_studiengang_kz='.$this->db_add_param($this->melde_studiengang_kz).' '.
|
||||
'WHERE studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER, false).';';
|
||||
}
|
||||
|
||||
@@ -701,6 +712,7 @@ class studiengang extends basis_db
|
||||
$this->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$this->standort_code = $row->standort_code;
|
||||
$this->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
$this->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
|
||||
$this->bezeichnung_arr['German'] = $this->bezeichnung;
|
||||
@@ -844,6 +856,7 @@ class studiengang extends basis_db
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$obj->standort_code = $row->standort_code;
|
||||
$obj->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
|
||||
$this->result[] = $obj;
|
||||
@@ -1024,6 +1037,7 @@ class studiengang extends basis_db
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$obj->standort_code = $row->standort_code;
|
||||
$obj->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $obj->english;
|
||||
@@ -1161,6 +1175,7 @@ class studiengang extends basis_db
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$obj->standort_code = $row->standort_code;
|
||||
$obj->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $obj->english;
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
*/
|
||||
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/lehrveranstaltung.class.php');
|
||||
require_once(dirname(__FILE__).'/studienordnung.class.php');
|
||||
|
||||
class studienplan extends basis_db
|
||||
{
|
||||
@@ -526,6 +528,25 @@ class studienplan extends basis_db
|
||||
public function saveStudienplanLehrveranstaltung()
|
||||
{
|
||||
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($this->lehrveranstaltung_id);
|
||||
if ($lv->lehrtyp_kurzbz == 'tpl') {
|
||||
$lv->lehrtyp_kurzbz = 'lv';
|
||||
$sp = new studienplan();
|
||||
$sp->loadStudienplan($this->studienplan_id);
|
||||
$so = new studienordnung();
|
||||
$so->loadStudienordnung($sp->studienordnung_id);
|
||||
$lv->studiengang_kz = $so->studiengang_kz;
|
||||
$lv->semester = $this->semester;
|
||||
$lv->lehrveranstaltung_template_id = $this->lehrveranstaltung_id;
|
||||
if (!$lv->save(true)) {
|
||||
$this->errormsg = "Fehler beim kopieren des Templates: " . $lv->errormsg;
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->lehrveranstaltung_id = $lv->lehrveranstaltung_id;
|
||||
}
|
||||
|
||||
if ($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
@@ -72,7 +72,7 @@ $menu=array
|
||||
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
|
||||
'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanVorruecken'=>array('name'=>'Studienplan vorrücken', 'link'=>'lehre/studienplan_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanVorruecken'=>array('name'=>'Studienplan vorrücken', 'link'=>'lehre/studienplan_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/studienplan')),
|
||||
|
||||
'Freifach'=>array
|
||||
(
|
||||
|
||||
@@ -754,8 +754,9 @@ class wochenplan extends basis_db
|
||||
if ($lehrstunde->grp!=null && $lehrstunde->grp!='0' && $lehrstunde->grp!='')
|
||||
$lvb.=$lehrstunde->grp;
|
||||
}
|
||||
if (count($lehrstunde->gruppe_kurzbz)>0)
|
||||
if ($lehrstunde->gruppe_kurzbz != '')
|
||||
$lvb=$lehrstunde->gruppe_kurzbz;
|
||||
|
||||
$lehrverband[]=$lvb;
|
||||
// Lehrfach
|
||||
$lf=$lehrstunde->lehrfach;
|
||||
@@ -1458,8 +1459,9 @@ class wochenplan extends basis_db
|
||||
if ($lehrstunde->grp!=null && $lehrstunde->grp!='0' && $lehrstunde->grp!='')
|
||||
$lvb.=$lehrstunde->grp;
|
||||
}
|
||||
if (count($lehrstunde->gruppe_kurzbz)>0)
|
||||
if ($lehrstunde->gruppe_kurzbz != '')
|
||||
$lvb=$lehrstunde->gruppe_kurzbz;
|
||||
|
||||
$lehrverband[]=$lvb;
|
||||
// Lehrfach
|
||||
$lf=htmlspecialchars($lehrstunde->lehrfach);
|
||||
|
||||
@@ -43,7 +43,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
$this->edit = $edit;
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
@@ -77,7 +77,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
$this->addError($ex->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $zeitaufzeichnung_id
|
||||
* @return void
|
||||
@@ -125,7 +125,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
$this->zeit->service_id = $service_id;
|
||||
$this->zeit->kunde_uid = $kunde_uid;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $start datetime
|
||||
* @param string $end datetime
|
||||
@@ -145,7 +145,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
* @param string $start "Y-m-d H:i:s" formatted datetime
|
||||
* @param string $end "Y-m-d H:i:s" formatted datetime
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkPauseInArbeitszeit($start, $end) {
|
||||
@@ -158,7 +158,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
* @param string $start "Y-m-d H:i:s" formatted datetime
|
||||
* @param string $end "Y-m-d H:i:s" formatted datetime
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkPauseValid($start, $end) {
|
||||
@@ -177,7 +177,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
$ende = $this->zeit->ende;
|
||||
$this->zeit->ende = $this->datum->formatDatum($start, 'Y-m-d H:i:s');
|
||||
if (!$this->zeit->save()) {
|
||||
$this->addError($p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $this->zeit->errormsg);
|
||||
$this->addError($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $this->zeit->errormsg);
|
||||
}
|
||||
//Eintrag für die Pause
|
||||
$pause = new zeitaufzeichnung();
|
||||
@@ -193,7 +193,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
$pause->ende = $this->datum->formatDatum($end, 'Y-m-d H:i:s');
|
||||
$pause->beschreibung = '';
|
||||
if (!$pause->save()) {
|
||||
$this->addError($p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $pause->errormsg);
|
||||
$this->addError($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $pause->errormsg);
|
||||
}
|
||||
// Eintrag Arbeit ab der Pause
|
||||
if ($this->zeit->new == false) {
|
||||
@@ -208,7 +208,7 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function saveZeit() {
|
||||
@@ -218,5 +218,5 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
|
||||
$this->addInfo($this->p->t("global/datenWurdenGespeichert"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+99
-2
@@ -6126,6 +6126,20 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_webservic
|
||||
}
|
||||
}
|
||||
|
||||
// Add column melde_studiengang_kz to public.tbl_studiengang and prefill values
|
||||
if (!$result = @$db->db_query("SELECT melde_studiengang_kz FROM public.tbl_studiengang LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE public.tbl_studiengang ADD COLUMN melde_studiengang_kz varchar(32);
|
||||
UPDATE public.tbl_studiengang stg SET melde_studiengang_kz = (SELECT lpad(abs(studiengang_kz)::text, 4, '0') FROM tbl_studiengang WHERE studiengang_kz = stg.studiengang_kz) WHERE melderelevant AND lgartcode IS NULL;
|
||||
UPDATE public.tbl_studiengang stg SET melde_studiengang_kz = (SELECT (SELECT lpad(erhalter_kz::text, 3, '0') FROM public.tbl_erhalter) || lpad(abs(studiengang_kz)::text, 4, '0') FROM tbl_studiengang WHERE studiengang_kz = stg.studiengang_kz) WHERE melderelevant AND lgartcode IS NOT NULL;
|
||||
COMMENT ON COLUMN public.tbl_studiengang.melde_studiengang_kz IS 'Studiengangskennzahl, mit der der Studiengang gemeldet wird (z.B. Bismeldung)'";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_studiengang: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_studiengang: Neue Spalte melde_studiengang_kz hinzugefuegt.';
|
||||
}
|
||||
|
||||
// ADD COLUMN insertamum to system.tbl_fehler_zustaendigkeiten
|
||||
if(!@$db->db_query("SELECT insertamum FROM system.tbl_fehler_zustaendigkeiten LIMIT 1"))
|
||||
{
|
||||
@@ -6242,6 +6256,89 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE(chris): Add "Template" to "Lehrtyp"
|
||||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_lehrtyp WHERE bezeichnung = 'Template';"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "INSERT INTO lehre.tbl_lehrtyp(lehrtyp_kurzbz, bezeichnung) VALUES('tpl', 'Template');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_lehrtyp '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>lehre.tbl_lehrtyp: Added "Template"';
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE(chris): Add Column "lehrveranstaltung_template_id" in tbl_lehrveranstaltung
|
||||
if(!$result = @$db->db_query("SELECT lehrveranstaltung_template_id FROM lehre.tbl_lehrveranstaltung LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lehrveranstaltung_template_id integer;
|
||||
ALTER TABLE lehre.tbl_lehrveranstaltung ADD CONSTRAINT fk_lehrveranstaltung_template FOREIGN KEY (lehrveranstaltung_template_id) REFERENCES lehre.tbl_lehrveranstaltung (lehrveranstaltung_id) ON DELETE RESTRICT ON UPDATE CASCADE;";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_lehrveranstaltung: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>lehre.tbl_lehrveranstaltung: Spalte lehrveranstaltung_template_id hinzugefuegt';
|
||||
}
|
||||
|
||||
// NOTE(chris): Add Webservice Rights for lehrveranstaltung::loadTemplates
|
||||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicerecht WHERE berechtigung_kurzbz='soap/studienordnung' AND methode = 'loadTemplates' AND klasse = 'lehrveranstaltung';"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, insertamum, insertvon, klasse) VALUES('soap/studienordnung', 'loadTemplates', now(), 'checksystem', 'lehrveranstaltung');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>system.tbl_webservicerecht '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>system.tbl_webservicerecht: soap/studienordnung/loadTemplates->lehrveranstaltung hinzugefügt';
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE(chris): Add Webservice Rights for lehrveranstaltung::loadTemplateByName
|
||||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicerecht WHERE berechtigung_kurzbz='soap/studienordnung' AND methode = 'loadTemplateByName' AND klasse = 'lehrveranstaltung';"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, insertamum, insertvon, klasse) VALUES('soap/studienordnung', 'loadTemplateByName', now(), 'checksystem', 'lehrveranstaltung');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>system.tbl_webservicerecht '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>system.tbl_webservicerecht: soap/studienordnung/loadTemplateByName->lehrveranstaltung hinzugefügt';
|
||||
}
|
||||
}
|
||||
|
||||
// Add permission for avoiding checks when saving prestudentstatus
|
||||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/keine_studstatuspruefung';"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/keine_studstatuspruefung', 'Ermöglicht Umgehen der Checks beim Speichern der Presstudentstatus');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo 'system.tbl_berechtigung: Added permission for student/keine_studstatuspruefung<br>';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Grant SELECT to bis.tbl_gsprogramm for web-user
|
||||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_gsprogramm' AND table_schema='bis' AND grantee='web' AND privilege_type in ('SELECT')"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "GRANT SELECT ON bis.tbl_gsprogramm TO web;";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>tbl_gsprogramm Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Granted SELECT privileges to web for bis.tbl_gsprogramm';
|
||||
}
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -6366,7 +6463,7 @@ $tabellen=array(
|
||||
"lehre.tbl_lehrmittel" => array("lehrmittel_kurzbz","beschreibung","ort_kurzbz"),
|
||||
"lehre.tbl_lehrmodus" => array("lehrmodus_kurzbz","bezeichnung_mehrsprachig","aktiv"),
|
||||
"lehre.tbl_lehrtyp" => array("lehrtyp_kurzbz","bezeichnung"),
|
||||
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag","lehrmodus_kurzbz"),
|
||||
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag","lehrmodus_kurzbz","lehrveranstaltung_template_id"),
|
||||
"lehre.tbl_lehrveranstaltung_kompatibel" => array("lehrveranstaltung_id","lehrveranstaltung_id_kompatibel"),
|
||||
"lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"),
|
||||
"lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"),
|
||||
@@ -6477,7 +6574,7 @@ $tabellen=array(
|
||||
"public.tbl_statistik" => array("statistik_kurzbz","bezeichnung","url","gruppe","sql","content_id","insertamum","insertvon","updateamum","updatevon","berechtigung_kurzbz","publish","preferences"),
|
||||
"public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code"),
|
||||
"public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code","melde_studiengang_kz"),
|
||||
"public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung","bezeichnung_mehrsprachig"),
|
||||
"public.tbl_studienjahr" => array("studienjahr_kurzbz","bezeichnung"),
|
||||
"public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"),
|
||||
|
||||
@@ -927,6 +927,7 @@ $filters = array(
|
||||
{"name": "Nachname"},
|
||||
{"name": "PersonId"},
|
||||
{"name": "Fehlerstatus"},
|
||||
{"name": "Zugehörigkeit"},
|
||||
{"name": "Person Zuständigkeiten"},
|
||||
{"name": "Organisationseinheit Zuständigkeiten"}
|
||||
],
|
||||
@@ -963,6 +964,7 @@ $filters = array(
|
||||
{"name": "Nachname"},
|
||||
{"name": "PersonId"},
|
||||
{"name": "Fehlerstatus"},
|
||||
{"name": "Zugehörigkeit"},
|
||||
{"name": "Person Zuständigkeiten"},
|
||||
{"name": "Organisationseinheit Zuständigkeiten"}
|
||||
],
|
||||
@@ -995,6 +997,7 @@ $filters = array(
|
||||
{"name": "Nachname"},
|
||||
{"name": "PersonId"},
|
||||
{"name": "Fehlerstatus"},
|
||||
{"name": "Zugehörigkeit"},
|
||||
{"name": "Verarbeitet von"},
|
||||
{"name": "Verarbeitet am"}
|
||||
],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -304,7 +304,9 @@ elseif ($stg_kz == 'alleBaMa')
|
||||
JOIN public.tbl_studiengang ON (tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
|
||||
WHERE
|
||||
bismelden=TRUE
|
||||
AND tbl_studiengang.typ IN ('b','m')
|
||||
AND tbl_studiengang.typ IN ('b','m','e')
|
||||
AND tbl_studiengang.melderelevant=TRUE
|
||||
AND tbl_studiengang.studiengang_kz > 0
|
||||
AND (((tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($ssem).") AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).")
|
||||
AND (status_kurzbz='Student' OR status_kurzbz='Outgoing'
|
||||
OR status_kurzbz='Praktikant' OR status_kurzbz='Diplomand' OR status_kurzbz='Absolvent'
|
||||
|
||||
@@ -727,9 +727,9 @@ echo '
|
||||
16: {sorter: false, filter: false},
|
||||
19: {sorter: false, filter: false},
|
||||
20: {sorter: false, filter: false},
|
||||
21: {sorter: false, filter: false},
|
||||
22: {sorter: false, filter: false},
|
||||
23: {sorter: false, filter: false}},
|
||||
23: {sorter: false, filter: false},
|
||||
24: {sorter: false, filter: false}},
|
||||
widgetOptions : {filter_functions : {
|
||||
// Add select menu to this column
|
||||
12 : {
|
||||
@@ -1083,7 +1083,8 @@ if ($result_lv!=0)
|
||||
<th>Zeugnis</th>
|
||||
<th title='Soll diese Lehrveranstaltung bei Diplom-/Bachelorarbeit ausgewaehlt werden koennen?'>BA/DA</th>
|
||||
<th>Koordinator</th>
|
||||
<th class=\"lvinfo\" >LV-Info</th>\n";
|
||||
<th class=\"lvinfo\" >LV-Info</th>
|
||||
<th>Template</th>\n";
|
||||
|
||||
if($write_admin)
|
||||
{
|
||||
@@ -1295,6 +1296,10 @@ if ($result_lv!=0)
|
||||
else
|
||||
echo 'vorhanden';
|
||||
echo '</td>';
|
||||
//Template
|
||||
echo "<td align='right'>";
|
||||
echo $db->convert_html_chars($row->lehrveranstaltung_template_id);
|
||||
echo '</td>';
|
||||
if($write_admin)
|
||||
{
|
||||
echo '
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
$lv->benotung = isset($_POST['benotung']);
|
||||
$lv->lvinfo = isset($_POST['lvinfo']);
|
||||
$lv->lehrauftrag = isset($_POST['lehrauftrag']);
|
||||
$lv->lehrveranstaltung_template_id = $lv->lehrtyp_kurzbz == 'tpl' ? '' : $_POST['lehrveranstaltung_template_id'];
|
||||
|
||||
if(!$lv->save())
|
||||
$errorstr = "Fehler beim Speichern der Daten: $lv->errormsg";
|
||||
@@ -436,6 +437,13 @@
|
||||
<td>Lehrauftrag</td>
|
||||
<td><input type="checkbox" name="lehrauftrag" '.($lv->lehrauftrag?'checked':'').'></td>
|
||||
</tr>
|
||||
<tr id="lehrveranstaltung_template_id">
|
||||
<td>Template</td>
|
||||
<td colspan="2"><input type="text" name="lehrveranstaltung_template_id" value="'.$lv->lehrveranstaltung_template_id.'" size="6"> <span class="text-template_name"></span></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
@@ -527,6 +535,7 @@
|
||||
<title>Lehrveranstaltung - Details</title>
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/colorpicker.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="../../include/js/mailcheck.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/datecheck.js"></script>
|
||||
|
||||
@@ -665,6 +674,91 @@
|
||||
{
|
||||
$(this).ColorPickerSetColor(this.value);
|
||||
});
|
||||
|
||||
$('input[name="lehrveranstaltung_template_id"]').autocomplete({
|
||||
minLength: 2,
|
||||
source: function(request, response) {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: "../../soap/fhcomplete.php",
|
||||
data: {
|
||||
typ: "json",
|
||||
class: "lehrveranstaltung",
|
||||
method: "loadTemplates",
|
||||
parameter_0: request.term
|
||||
}
|
||||
}).then(data => {
|
||||
for (var k in data.return) {
|
||||
data.return[k].value = data.return[k].lehrveranstaltung_id;
|
||||
data.return[k].name = data.return[k].bezeichnung + " [" + data.return[k].kurzbz + "]";
|
||||
data.return[k].label = data.return[k].name + " (" + data.return[k].lehrveranstaltung_id + ")";
|
||||
}
|
||||
response(data.return);
|
||||
});
|
||||
},
|
||||
close: function(e, ui) {
|
||||
$(this).trigger('check.ac-template');
|
||||
},
|
||||
focus: function(e, ui) {
|
||||
$(this).removeClass('input_ok input_error').val(ui.item.value).parent().parent().find('.text-template_name').text(ui.item.name);
|
||||
return false;
|
||||
},
|
||||
select: function(e, ui) {
|
||||
$(this).addClass('input_ok').val(ui.item.value).parent().parent().find('.text-template_name').text(ui.item.name);
|
||||
return false;
|
||||
}
|
||||
}).focus(function(e) {
|
||||
$(this).removeClass('input_ok input_error');
|
||||
}).blur(function(e) {
|
||||
$(this).trigger('check.ac-template');
|
||||
}).on('check.ac-template', function(e) {
|
||||
var self = $(this),
|
||||
val = self.val();
|
||||
if (!val) {
|
||||
self.removeClass('input_ok input_error').parent().parent().find('.text-template_name').text('');
|
||||
} else {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: "../../soap/fhcomplete.php",
|
||||
data: {
|
||||
typ: "json",
|
||||
class: "lehrveranstaltung",
|
||||
method: "loadTemplates",
|
||||
parameter_0: val
|
||||
},
|
||||
success: function(data) {
|
||||
if (self.val() == val) {
|
||||
var label = '',
|
||||
state = '',
|
||||
item = null;
|
||||
|
||||
for (var k in data.return) {
|
||||
if (data.return[k].lehrveranstaltung_id == val) {
|
||||
item = data.return[k];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (item) {
|
||||
state = 'input_ok';
|
||||
label = item.bezeichnung + " [" + item.kurzbz + "]";
|
||||
} else if (val) {
|
||||
state = 'input_error';
|
||||
}
|
||||
self.removeClass('input_ok input_error').addClass(state).parent().parent().find('.text-template_name').text(label);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}).trigger('check.ac-template');
|
||||
|
||||
$('select[name="lehrtyp_kurzbz"]').change(function(e) {
|
||||
if ($(this).val() == 'tpl') {
|
||||
$('#lehrveranstaltung_template_id').hide();
|
||||
} else {
|
||||
$('#lehrveranstaltung_template_id').show();
|
||||
}
|
||||
}).change();
|
||||
});
|
||||
</script>
|
||||
<style type="text/css">
|
||||
|
||||
@@ -1180,6 +1180,7 @@ function saveJsondataFromTree(nodeId, studienplan_id, studienplan_lehrveranstalt
|
||||
{
|
||||
if(d.error!==undefined && d.error=='false')
|
||||
{
|
||||
node.attr("lvid", d.result[0].lehrveranstaltung_id);
|
||||
node.attr("studienplan_lehrveranstaltung_id", d.result[0].studienplan_lehrveranstaltung_id);
|
||||
node.attr("id", d.result[0].studienplan_lehrveranstaltung_id);
|
||||
$("#jsonData").html(d);
|
||||
|
||||
@@ -31,11 +31,13 @@ $uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('lehre/studienordnung', null, 's'))
|
||||
if(!$rechte->isBerechtigt('lehre/studienplan', null, 's'))
|
||||
{
|
||||
die($rechte->errormsg);
|
||||
}
|
||||
|
||||
$berechtigteStgKz = $rechte->getStgKz('lehre/studienplan');
|
||||
|
||||
echo '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
@@ -138,7 +140,7 @@ echo '</form>';
|
||||
|
||||
if(isset($_POST['vorruecken']) && !empty($studienplaene) && $studiensemester_kurzbz_to != '')
|
||||
{
|
||||
if(!$rechte->isBerechtigt('lehre/studienordnung', null, 'suid'))
|
||||
if(!$rechte->isBerechtigt('lehre/studienplan', null, 'sui'))
|
||||
{
|
||||
die($rechte->errormsg);
|
||||
}
|
||||
@@ -193,6 +195,7 @@ if(isset($_POST['show']) && $studiensemester_kurzbz_from != '' && $studiensemest
|
||||
AND studiengang_kz = sto.studiengang_kz
|
||||
)
|
||||
AND tbl_studiengang.typ IN ('b', 'm', 'l')
|
||||
AND tbl_studiengang.studiengang_kz IN (".implode(',',$berechtigteStgKz).")
|
||||
AND studienplan.onlinebewerbung_studienplan = true";
|
||||
if (substr($studiensemester_kurzbz_from,0,2) == 'SS')
|
||||
{
|
||||
@@ -244,7 +247,7 @@ if(isset($_POST['show']) && $studiensemester_kurzbz_from != '' && $studiensemest
|
||||
</tr>';
|
||||
}
|
||||
echo "</tbody></table>";
|
||||
if ($rechte->isBerechtigt('lehre/studienordnung', null, 'suid'))
|
||||
if ($rechte->isBerechtigt('lehre/studienplan', null, 'sui'))
|
||||
{
|
||||
echo '<button type="submit" name="vorruecken">Ausgewählte Studienpläne vorrücken</button>';
|
||||
}
|
||||
|
||||
@@ -440,6 +440,44 @@ if ($deleteAllResults)
|
||||
}
|
||||
}
|
||||
|
||||
// Ajax-Request um die Liste zusammenzuräumen
|
||||
$clearList = filter_input(INPUT_POST, 'clearList', FILTER_VALIDATE_BOOLEAN);
|
||||
if ($clearList)
|
||||
{
|
||||
if (!$rechte->isBerechtigt('infocenter', null, 'suid'))
|
||||
{
|
||||
echo json_encode(array(
|
||||
'status' => 'fehler',
|
||||
'msg' => $rechte->errormsg
|
||||
));
|
||||
exit();
|
||||
}
|
||||
|
||||
$qry = "DELETE FROM testtool.tbl_pruefling pf
|
||||
WHERE
|
||||
(
|
||||
NOT EXISTS (SELECT 1 FROM testtool.tbl_pruefling_frage WHERE pruefling_id=pf.pruefling_id) AND
|
||||
NOT EXISTS (SELECT 1 FROM testtool.tbl_antwort WHERE pruefling_id=pf.pruefling_id)
|
||||
)";
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
echo json_encode(array(
|
||||
'status' => 'ok',
|
||||
'msg' => $db->db_affected_rows($result).' leere Prüflinge wurden gelöscht'));
|
||||
exit();
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array(
|
||||
'status' => 'fehler',
|
||||
'msg' => 'Fehler beim Löschen der leeren Prüflinge'
|
||||
));
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
// Ajax-Request um einen Prüfling zu sperren
|
||||
$rtprueflingEntSperren = filter_input(INPUT_POST, 'rtprueflingEntSperren', FILTER_VALIDATE_BOOLEAN);
|
||||
if ($rtprueflingEntSperren)
|
||||
{
|
||||
@@ -2581,6 +2619,39 @@ else
|
||||
});
|
||||
window.location.href = "mailto:?bcc="+adresseArray.join(";");
|
||||
}
|
||||
|
||||
function clearList()
|
||||
{
|
||||
$.ajax({
|
||||
url: "auswertung_fhtw.php",
|
||||
data: {clearList: true},
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
success: function(data)
|
||||
{
|
||||
if(data.status !== "ok")
|
||||
{
|
||||
$("#msgbox").attr("class","alert alert-danger");
|
||||
$("#msgbox").show();
|
||||
$("#msgbox").html(data["msg"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#freischaltenWarning").show();
|
||||
$("#freischaltenInfo").hide();
|
||||
$("#msgbox").show();
|
||||
$("#msgbox").html(data["msg"]).delay(2000).fadeOut();
|
||||
}
|
||||
},
|
||||
error: function(data)
|
||||
{
|
||||
$("#msgbox").attr("class","alert alert-danger");
|
||||
$("#msgbox").show();
|
||||
$("#msgbox").html(data["msg"]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function checkAllWithResult()
|
||||
{
|
||||
// Schleife ueber die einzelnen Elemente
|
||||
@@ -2965,6 +3036,10 @@ else
|
||||
{
|
||||
echo ' <a href="#" class="btn btn-default btn-xs" disabled="" role="button" title="Aktiv nur bei Einzelterminauswahl">Testfortschritt ansehen</a>';
|
||||
}
|
||||
if ($rechte->isBerechtigt('infocenter', null, 'suid'))
|
||||
{
|
||||
echo ' <button type="button" class="btn btn-default btn-xs" onclick="clearList()" id="clearListButton" title="Löscht alle Prüflinge, bei denen keine Daten vorhanden sind">Liste aufräumen</button>';
|
||||
}
|
||||
echo '</div></div></form>';
|
||||
echo ' <form class="form" role="form">
|
||||
<div class="panel panel-default hiddenEl" id="uebertragenOptions">
|
||||
|
||||
@@ -438,7 +438,7 @@ Alte Anmerkungen: ".$personToDelete_obj->anmerkungen;
|
||||
|
||||
$anmerkung .= "
|
||||
|
||||
Zusammengelegt mit Person-ID ".$personToDelete_obj->person_id." am ".date('d.m.Y H:i:s');
|
||||
Zusammengelegt mit Person-ID ".$personToDelete_obj->person_id." am ".date('d.m.Y H:i:s')." von ".$uid;
|
||||
|
||||
// Letztbenutzten Zugangscode abfragen und übernehmen
|
||||
$zugangscode = '';
|
||||
|
||||
@@ -92,6 +92,7 @@ $lgartcode='';
|
||||
$melderelevant = false;
|
||||
$foerderrelevant = false;
|
||||
$standort_code='';
|
||||
$melde_studiengang_kz = '';
|
||||
$schick = filter_input(INPUT_POST, 'schick');
|
||||
$onlinebewerbung = false;
|
||||
|
||||
@@ -155,6 +156,7 @@ if($schick)
|
||||
$melderelevant = filter_input(INPUT_POST, 'melderelevant', FILTER_VALIDATE_BOOLEAN);
|
||||
$foerderrelevant = filter_input(INPUT_POST, 'foerderrelevant', FILTER_VALIDATE_BOOLEAN);
|
||||
$standort_code = filter_input(INPUT_POST, 'standort_code');
|
||||
$melde_studiengang_kz = filter_input(INPUT_POST, 'melde_studiengang_kz');
|
||||
|
||||
$ext_id = filter_input(INPUT_POST, 'ext_id');
|
||||
|
||||
@@ -223,6 +225,7 @@ if($schick)
|
||||
$sg_update->melderelevant = $melderelevant;
|
||||
$sg_update->foerderrelevant = $foerderrelevant;
|
||||
$sg_update->standort_code = $standort_code;
|
||||
$sg_update->melde_studiengang_kz = $melde_studiengang_kz;
|
||||
|
||||
$sg_update->bescheidvom=$date->formatDatum($sg_update->bescheidvom,'Y-m-d');
|
||||
$sg_update->titelbescheidvom=$date->formatDatum($sg_update->titelbescheidvom,'Y-m-d');
|
||||
@@ -292,6 +295,7 @@ if ((isset($_REQUEST['studiengang_kz'])) && ((!isset($_REQUEST['neu'])) || ($_RE
|
||||
$melderelevant = $sg->melderelevant;
|
||||
$foerderrelevant = $sg->foerderrelevant;
|
||||
$standort_code = $sg->standort_code;
|
||||
$melde_studiengang_kz = $sg->melde_studiengang_kz;
|
||||
}
|
||||
|
||||
$erh = new erhalter();
|
||||
@@ -611,6 +615,12 @@ if (!$erh->getAll('kurzbz'))
|
||||
</td>
|
||||
<td valign="top">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Meldestudiengangskennzahl</td>
|
||||
<td>
|
||||
<input class="detail" type="text" name="melde_studiengang_kz" size="16" maxlength="7" value="<?php echo $melde_studiengang_kz ?>" onchange="submitable()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bezeichnung</td>
|
||||
<td>
|
||||
|
||||
Reference in New Issue
Block a user