fix key.toLowerCase() in 2 instances by preserving underscores for keys like karrierepfad_de in msg vars; dbupdate msgvars view;

This commit is contained in:
Johann Hoffmann
2026-10-28 11:04:08 +01:00
parent ae85f7bec6
commit 0013a934ab
3 changed files with 153 additions and 4 deletions
@@ -239,7 +239,7 @@ export default {
const person = this.fieldsPerson[0];
this.itemsPerson = Object.entries(person).map(([key, value]) => ({
label: key.toLowerCase(),
value: '{' + key.toLowerCase() + '}'
value: '{' + key.toLowerCase().replace(/ /g, '_') + '}'
}));
})
.catch(this.$fhcAlert.handleSystemError);
@@ -253,7 +253,7 @@ export default {
const prestudent = this.fieldsPrestudent[0];
this.itemsPrestudent = Object.entries(prestudent).map(([key, value]) => ({
label: key.toLowerCase(),
value: '{' + key.toLowerCase() + '}'
value: '{' + key.toLowerCase().replace(/ /g, '_') + '}'
}));
})
.catch(this.$fhcAlert.handleSystemError);
@@ -243,7 +243,7 @@ export default {
const person = this.fieldsPerson[0];
this.itemsPerson = Object.entries(person).map(([key, value]) => ({
label: key.toLowerCase(),
value: '{' + key.toLowerCase() + '}'
value: '{' + key.toLowerCase().replace(/ /g, '_') + '}'
}));
})
.catch(this.$fhcAlert.handleSystemError);
@@ -257,7 +257,7 @@ export default {
const prestudent = this.fieldsPrestudent[0];
this.itemsPrestudent = Object.entries(prestudent).map(([key, value]) => ({
label: key.toLowerCase(),
value: '{' + key.toLowerCase() + '}'
value: '{' + key.toLowerCase().replace(/ /g, '_') + '}'
}));
})
.catch(this.$fhcAlert.handleSystemError);
+149
View File
@@ -118,3 +118,152 @@ if ($result = $db->db_query("SELECT 1 FROM information_schema.columns WHERE tabl
echo 'public.tbl_prestudent: Spalte karrierepfad_id hinzugefuegt<br>';
}
}
// Add "Karrierepfad DE" and "Karrierepfad EN" to public.vw_msg_vars: definition of dbupdate_3.3.php plus two columns at the end
if (!$result = @$db->db_query('SELECT "Karrierepfad DE", "Karrierepfad EN" FROM public.vw_msg_vars WHERE person_id=-1 LIMIT 1'))
{
$qry = '
CREATE OR REPLACE VIEW public.vw_msg_vars AS (
SELECT DISTINCT ON(p.person_id, pr.prestudent_id) p.person_id,
pr.prestudent_id AS prestudent_id,
p.nachname AS "Nachname",
p.vorname AS "Vorname",
p.anrede AS "Anrede",
a.strasse AS "Strasse",
a.ort AS "Ort",
a.plz AS "PLZ",
a.gemeinde AS "Gemeinde",
a.langtext AS "Nation",
ke.kontakt AS "Email",
kt.kontakt AS "Telefon",
s.bezeichnung AS "Studiengang DE",
s.english AS "Studiengang EN",
st.bezeichnung AS "Typ",
last_prestudent_status.orgform_kurzbz AS "Orgform",
p.zugangscode AS "Zugangscode",
bk.iban AS "IBAN Studiengang",
bk.bic AS "BIC Studiengang",
s.studiengang_kz AS "Studiengangskennzahl",
first_prestudent_status.ausbildungssemester AS "Einstiegssemester",
first_prestudent_status.studiensemester AS "Einstiegsstudiensemester",
ass.vorname AS "Vorname Studiengangsassistenz",
ass.nachname AS "Nachname Studiengangsassistenz",
ass.telefonklappe AS "Durchwahl Studiengangsassistenz",
ass.alias AS "Alias Studiengangsassistenz",
(SELECT count(*)
FROM (
SELECT pss.prestudent_id, pss.person_id, priorisierung,
(
SELECT status_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id = pss.prestudent_id
ORDER BY datum DESC,
tbl_prestudentstatus.insertamum DESC LIMIT 1
) AS laststatus
FROM public.tbl_prestudent pss
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE person_id = (
SELECT person_id
FROM public.tbl_prestudent
WHERE prestudent_id = pr.prestudent_id
)
AND studiensemester_kurzbz = (
SELECT studiensemester_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id = pr.prestudent_id
AND status_kurzbz = \'Interessent\' LIMIT 1
)
AND status_kurzbz = \'Interessent\'
) prest
WHERE laststatus NOT IN (\'Abbrecher\', \'Abgewiesener\', \'Absolvent\')
AND priorisierung <= pr.priorisierung) AS "Relative Prio",
last_prestudent_status.orgform_bezeichnung_de AS "Orgform DE",
last_prestudent_status.orgform_bezeichnung_en AS "Orgform EN",
kp.bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE content=TRUE AND sprache=\'German\' LIMIT 1)] AS "Karrierepfad DE",
kp.bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE content=TRUE AND sprache=\'English\' LIMIT 1)] AS "Karrierepfad EN"
FROM public.tbl_person p
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY kontakt_id DESC
) ke USING(person_id)
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp IN (\'telefon\', \'mobil\')
ORDER BY kontakt_id DESC
) kt USING(person_id)
LEFT JOIN (
SELECT person_id,
strasse,
ort,
plz,
gemeinde,
langtext
FROM public.tbl_adresse
LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
WHERE public.tbl_adresse.heimatadresse = TRUE
ORDER BY adresse_id DESC
) a USING(person_id)
LEFT JOIN public.tbl_prestudent pr USING(person_id)
INNER JOIN public.tbl_studiengang s USING(studiengang_kz)
INNER JOIN public.tbl_studiengangstyp st USING(typ)
LEFT JOIN (
SELECT DISTINCT ON (ps.prestudent_id) ps.prestudent_id, tbl_studienplan.orgform_kurzbz,
tbl_orgform.bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE content=TRUE AND sprache=\'German\' LIMIT 1)] AS orgform_bezeichnung_de,
tbl_orgform.bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE content=TRUE AND sprache=\'English\' LIMIT 1)] AS orgform_bezeichnung_en
FROM public.tbl_prestudent ps
JOIN public.tbl_prestudentstatus ON ps.prestudent_id = tbl_prestudentstatus.prestudent_id
JOIN lehre.tbl_studienplan USING(studienplan_id)
LEFT JOIN bis.tbl_orgform ON tbl_studienplan.orgform_kurzbz = tbl_orgform.orgform_kurzbz
ORDER BY ps.prestudent_id DESC,
tbl_prestudentstatus.datum DESC,
tbl_prestudentstatus.insertamum DESC,
tbl_prestudentstatus.ext_id DESC
) last_prestudent_status ON pr.prestudent_id = last_prestudent_status.prestudent_id
LEFT JOIN (
SELECT DISTINCT ON (ps.prestudent_id) ps.prestudent_id, tbl_prestudentstatus.ausbildungssemester,
studiensemester_kurzbz, tbl_studiensemester.bezeichnung AS studiensemester,
tbl_studienordnung.studiengang_kz
FROM public.tbl_prestudent ps
JOIN public.tbl_prestudentstatus ON ps.prestudent_id = tbl_prestudentstatus.prestudent_id
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
JOIN lehre.tbl_studienplan USING(studienplan_id)
JOIN lehre.tbl_studienordnung USING (studienordnung_id)
WHERE tbl_prestudentstatus.status_kurzbz = \'Interessent\'
ORDER BY ps.prestudent_id ASC,
tbl_prestudentstatus.datum ASC,
tbl_prestudentstatus.insertamum ASC,
tbl_prestudentstatus.ext_id ASC
) first_prestudent_status ON pr.prestudent_id = first_prestudent_status.prestudent_id
LEFT JOIN (
SELECT DISTINCT ON (tbl_benutzerfunktion.oe_kurzbz) vorname, nachname, oe_kurzbz, telefonklappe, alias
FROM public.tbl_benutzerfunktion
JOIN public.tbl_benutzer USING (uid)
JOIN public.tbl_person USING (person_id)
JOIN public.tbl_mitarbeiter on tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid
WHERE tbl_benutzerfunktion.funktion_kurzbz = \'ass\'
AND NOW() BETWEEN COALESCE(datum_von, NOW()) AND COALESCE(datum_bis, NOW())
ORDER BY tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerfunktion.insertamum DESC NULLS LAST, datum_von DESC NULLS LAST
) ass ON s.oe_kurzbz = ass.oe_kurzbz
LEFT JOIN (
SELECT DISTINCT ON (oe_kurzbz, orgform_kurzbz) oe_kurzbz, orgform_kurzbz, iban, bic
FROM tbl_bankverbindung
WHERE oe_kurzbz IS NOT NULL
ORDER BY oe_kurzbz, orgform_kurzbz, tbl_bankverbindung.insertamum DESC,tbl_bankverbindung.iban
)bk ON s.oe_kurzbz = bk.oe_kurzbz AND (last_prestudent_status.orgform_kurzbz = bk.orgform_kurzbz OR bk.orgform_kurzbz IS NULL)
LEFT JOIN public.tbl_karrierepfad kp ON kp.karrierepfad_id = pr.karrierepfad_id
WHERE p.aktiv = TRUE
ORDER BY p.person_id ASC, pr.prestudent_id ASC
);';
if (!$db->db_query($qry))
echo '<strong>public.vw_msg_vars: '.$db->db_last_error().'</strong><br>';
else
echo 'public.vw_msg_vars: Spalten "Karrierepfad DE" und "Karrierepfad EN" hinzugefuegt<br>';
}