From 843c65d52befb898d9ae449d8680c19b7f549de5 Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Wed, 25 Mar 2026 11:56:19 +0100 Subject: [PATCH] =?UTF-8?q?Lehrauftr=C3=A4ge=20workflow=20wurde=20angepass?= =?UTF-8?q?t=20&=20getestet=20f=C3=BCr=20zuk=C3=BCnftige=20Projektarbeiten?= =?UTF-8?q?=20ohne=20hinterlegte=20LE.=20Subqueries=20"Projektbetreuungsau?= =?UTF-8?q?ftr=C3=A4ge=20and=20-vertragsstati"=20verwenden=20KEINE=20Lehre?= =?UTF-8?q?inheit=20table=20mehr,=20join=20funktioniert=20via=20pb=20->=20?= =?UTF-8?q?pa=20->=20lva=20&=20where=20clauses=20wurden=20entsprechend=20a?= =?UTF-8?q?uf=20pa.lva=20&=20pa.sem=5Fkurzbz=20angepasst=20f=C3=BCr=20orde?= =?UTF-8?q?rLehrauftragData.php,=20approveLehrauftragData.php=20&=20accept?= =?UTF-8?q?LehrauftragData.php.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Weitere Anpassung in Vertrag_model: prüfung auf lehreinheit nur wenn vertragstyp nicht 'Betreuung' ist. Added missing "setFormData" Method in stv Projektarbeit Details component --- application/models/accounting/Vertrag_model.php | 12 +++++++----- .../lehre/lehrauftrag/acceptLehrauftragData.php | 5 ++--- .../lehre/lehrauftrag/approveLehrauftragData.php | 5 ++--- .../views/lehre/lehrauftrag/orderLehrauftragData.php | 5 ++--- .../Details/Projektarbeit/Details.js | 4 ++++ 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/application/models/accounting/Vertrag_model.php b/application/models/accounting/Vertrag_model.php index 97b5c72b6..1a7404ccb 100644 --- a/application/models/accounting/Vertrag_model.php +++ b/application/models/accounting/Vertrag_model.php @@ -31,18 +31,20 @@ class Vertrag_model extends DB_Model */ public function save($person_id, $mitarbeiter_uid, $lehrveranstaltung_id, $lehreinheit_id, $projektarbeit_id = null, $vertragsstunden, $betrag, $studiensemester_kurzbz) { - $person_id = (isset($person_id) && is_numeric($person_id)) + $vertragstyp_kurzbz = (is_null($projektarbeit_id)) ? 'Lehrauftrag' : 'Betreuung'; + + $person_id = (isset($person_id) && is_numeric($person_id)) ? $person_id : show_error('peron_id must be set and numeric.'); - $lehreinheit_id = (isset($lehreinheit_id) && is_numeric($lehreinheit_id)) - ? $lehreinheit_id - : show_error('lehreinheit_id must be set and numeric.'); $lehrveranstaltung_id = (isset($lehrveranstaltung_id) && is_numeric($lehrveranstaltung_id)) ? $lehrveranstaltung_id : show_error('lehrveranstaltung_id must be set and numeric.'); $projektarbeit_id = (isset($projektarbeit_id) && is_numeric($projektarbeit_id)) ? $projektarbeit_id : null; + $lehreinheit_id = (isset($lehreinheit_id) && is_numeric($lehreinheit_id)) + ? $lehreinheit_id + : $vertragstyp_kurzbz == 'Betreuung' ? null : show_error('lehreinheit_id must be set and numeric.'); $vertragsstunden = (isset($vertragsstunden) && is_numeric($vertragsstunden)) ? $vertragsstunden : 0; @@ -53,7 +55,7 @@ class Vertrag_model extends DB_Model ? $mitarbeiter_uid : show_error('mitarbeiter_uid must be set and a string value.');; - $vertragstyp_kurzbz = (is_null($projektarbeit_id)) ? 'Lehrauftrag' : 'Betreuung'; + // First check if Vertrag already exists for that Lehrauftrag or for that Projektbetreuerauftrag if ($vertragstyp_kurzbz == 'Lehrauftrag') diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index a42739952..f1cc42728 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -233,7 +233,7 @@ FROM pa.lehreinheit_id, lv.lehrveranstaltung_id, pa.projektarbeit_id::text AS "projektarbeit_id", - le.studiensemester_kurzbz, + pa.studiensemester_kurzbz, stg.studiengang_kz, upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz", lv.orgform_kurzbz, @@ -268,7 +268,6 @@ FROM FROM lehre.tbl_projektbetreuer pb JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) - JOIN lehre.tbl_lehreinheit le ON (le.lehrveranstaltung_id = pa.lehrveranstaltung_id AND le.studiensemester_kurzbz = pa.studiensemester_kurzbz) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_person person USING (person_id) @@ -280,7 +279,7 @@ FROM /* filter projektbetreuuer */ pb.person_id = \'' . $PERSON_ID . '\' /* filter studiensemester */ - AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\' + AND pa.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\' /* filter active lehrveranstaltungen */ AND lv.aktiv = TRUE /* filter active organisationseinheiten */ diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index c0aa04c84..d67a37b06 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -243,7 +243,7 @@ FROM lv.lehrveranstaltung_id, lv.bezeichnung AS "lv_bezeichnung", (pa.projektarbeit_id::text) AS "projektarbeit_id", - le.studiensemester_kurzbz, + pa.studiensemester_kurzbz, stg.studiengang_kz, upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz", lv.orgform_kurzbz, @@ -280,7 +280,6 @@ FROM FROM lehre.tbl_projektbetreuer pb JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) - JOIN lehre.tbl_lehreinheit le ON (le.lehrveranstaltung_id = pa.lehrveranstaltung_id AND le.studiensemester_kurzbz = pa.studiensemester_kurzbz) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_person person USING (person_id) @@ -291,7 +290,7 @@ FROM /* filter organisationseinheit */ lv.oe_kurzbz IN (\'' . implode('\',\'', $ORGANISATIONSEINHEIT) . '\') /* filter studiensemester */ - AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\' + AND pa.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\' /* filter active lehrveranstaltungen */ AND lv.aktiv = TRUE /* filter active organisationseinheiten */ diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index efe2b01bc..d62ecd076 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -273,7 +273,7 @@ FROM lv.lehrveranstaltung_id, lv.bezeichnung AS "lv_bezeichnung", pa.projektarbeit_id::text AS "projektarbeit_id", - le.studiensemester_kurzbz, + pa.studiensemester_kurzbz, stg.studiengang_kz, upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz", lv.orgform_kurzbz, @@ -310,7 +310,6 @@ FROM FROM lehre.tbl_projektbetreuer pb JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) - JOIN lehre.tbl_lehreinheit le ON (le.lehrveranstaltung_id = pa.lehrveranstaltung_id AND le.studiensemester_kurzbz = pa.studiensemester_kurzbz) JOIN lehre.tbl_lehrveranstaltung lv ON (pa.lehrveranstaltung_id = lv.lehrveranstaltung_id) JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) JOIN PUBLIC.tbl_person person USING (person_id) @@ -321,7 +320,7 @@ FROM /* filter studiengang */ lv.studiengang_kz IN ('. implode(',', $STUDIENGANG) . ') /* filter studiensemester */ - AND le.studiensemester_kurzbz = \''. $STUDIENSEMESTER. '\' + AND pa.studiensemester_kurzbz = \''. $STUDIENSEMESTER. '\' /* filter active lehrveranstaltungen */ AND lv.aktiv = TRUE /* filter ausbildungssemester */ diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js index bccbd96c2..95eb8cd7d 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js @@ -111,6 +111,10 @@ export default { this.formData.anmerkung = null; this.$refs.formDetails.clearValidation(); }, + setFormData(projektarbeit) { + this.formData = projektarbeit; + if (this.formData.firma_id) this.formData.firma = {firma_id: this.formData.firma_id, name: this.formData.firma_name}; + }, getFormData(newProjektarbeit, studiensemester_kurzbz, additional_lehrveranstaltung_id) { this.additional_lehrveranstaltung_id = additional_lehrveranstaltung_id;