From 4497874908fbd8576e6c98d2c3fa844f9ffae332 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 23 Jan 2020 17:17:44 +0100 Subject: [PATCH 1/4] public.vw_msg_vars: added iban and bic of Studiengang of prestudent --- system/dbupdate_3.3.php | 77 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index f73517090..7721fefa4 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3449,6 +3449,81 @@ if(!$result = @$db->db_query("SELECT 1 FROM fue.tbl_projekttyp LIMIT 1")) echo '
fue.tbl_projekttyp hinzugefuegt.'; } +// iban und bic zu vw_msg_vars hinzufügen +if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang" FROM public.vw_msg_vars 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", + orgform_kurzbz AS "Orgform", + p.zugangscode AS "Zugangscode", + bk.iban AS "IBAN Studiengang", + bk.bic AS "BIC Studiengang" + 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 (prestudent_id) + tbl_prestudent.prestudent_id, + tbl_bankverbindung.iban, + tbl_bankverbindung.bic, + tbl_studiengang.oe_kurzbz + FROM public.tbl_bankverbindung + JOIN public.tbl_studiengang USING(oe_kurzbz) + JOIN public.tbl_prestudent USING (studiengang_kz) + ORDER BY prestudent_id, tbl_bankverbindung.insertamum DESC, iban) bk USING (prestudent_id) + WHERE p.aktiv = TRUE + ORDER BY p.person_id ASC, pr.prestudent_id ASC + );'; + + if(!$db->db_query($qry)) + echo 'public.vw_msg_vars: '.$db->db_last_error().'
'; + else + echo '
public.vw_msg_vars iban und bic added'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -3637,7 +3712,7 @@ $tabellen=array( "public.tbl_mitarbeiter" => array("mitarbeiter_uid","personalnummer","telefonklappe","kurzbz","lektor","fixangestellt","bismelden","stundensatz","ausbildungcode","ort_kurzbz","standort_id","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","kleriker"), "public.tbl_msg_attachment" => array("attachment_id","message_id","name","filename"), "public.tbl_msg_message" => array("message_id","person_id","subject","body","priority","relationmessage_id","oe_kurzbz","insertamum","insertvon"), - "public.tbl_msg_recipient" => array("message_id","person_id","token","sent","sentinfo","insertamum","insertvon"), + "public.tbl_msg_recipient" => array("message_id","person_id","token","sent","sentinfo","insertamum","insertvon","oe_kurzbz"), "public.tbl_msg_status" => array("message_id","person_id","status","statusinfo","insertamum","insertvon","updateamum","updatevon"), "public.tbl_notiz" => array("notiz_id","titel","text","verfasser_uid","bearbeiter_uid","start","ende","erledigt","insertamum","insertvon","updateamum","updatevon","ext_id"), "public.tbl_notizzuordnung" => array("notizzuordnung_id","notiz_id","projekt_kurzbz","projektphase_id","projekttask_id","uid","person_id","prestudent_id","bestellung_id","lehreinheit_id","ext_id","anrechnung_id"), From d5e8d33adcc3b0447cd65f90a819cfdd84a62e1d Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 11 Feb 2020 10:28:43 +0100 Subject: [PATCH 2/4] public.vw_msg_vars: added orgform_kurzbz for tbl_bankverbindung --- system/dbupdate_3.3.php | 107 +++++++++++++++++++++++----------------- 1 file changed, 63 insertions(+), 44 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 7721fefa4..a7d4011cc 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3449,6 +3449,18 @@ if(!$result = @$db->db_query("SELECT 1 FROM fue.tbl_projekttyp LIMIT 1")) echo '
fue.tbl_projekttyp hinzugefuegt.'; } +// Add column orgform_kurzbz to tbl_bankverbindung +if(!$result = @$db->db_query("SELECT orgform_kurzbz FROM public.tbl_bankverbindung LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_bankverbindung ADD COLUMN orgform_kurzbz varchar(3); + ALTER TABLE public.tbl_bankverbindung ADD CONSTRAINT fk_bankverbindung_orgform FOREIGN KEY (orgform_kurzbz) REFERENCES bis.tbl_orgform (orgform_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_bankverbindung: '.$db->db_last_error().'
'; + else + echo '
public.tbl_bankverbindung: Spalte orgform_kurzbz hinzugefuegt'; +} + // iban und bic zu vw_msg_vars hinzufügen if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang" FROM public.vw_msg_vars LIMIT 1')) { @@ -3469,53 +3481,60 @@ if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang" FROM s.bezeichnung AS "Studiengang DE", s.english AS "Studiengang EN", st.bezeichnung AS "Typ", - orgform_kurzbz AS "Orgform", + last_prestudent_status.orgform_kurzbz AS "Orgform", p.zugangscode AS "Zugangscode", bk.iban AS "IBAN Studiengang", bk.bic AS "BIC Studiengang" 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 (prestudent_id) - tbl_prestudent.prestudent_id, - tbl_bankverbindung.iban, - tbl_bankverbindung.bic, - tbl_studiengang.oe_kurzbz - FROM public.tbl_bankverbindung - JOIN public.tbl_studiengang USING(oe_kurzbz) - JOIN public.tbl_prestudent USING (studiengang_kz) - ORDER BY prestudent_id, tbl_bankverbindung.insertamum DESC, iban) bk USING (prestudent_id) - WHERE p.aktiv = TRUE - ORDER BY p.person_id ASC, pr.prestudent_id ASC + 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) tbl_studienplan.orgform_kurzbz, ps.prestudent_id + FROM public.tbl_prestudent ps + JOIN public.tbl_prestudentstatus ON ps.prestudent_id = tbl_prestudentstatus.prestudent_id + JOIN lehre.tbl_studienplan USING(studienplan_id) + 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 (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) + WHERE p.aktiv = TRUE + ORDER BY p.person_id ASC, pr.prestudent_id ASC );'; if(!$db->db_query($qry)) @@ -3682,7 +3701,7 @@ $tabellen=array( "public.tbl_aufnahmeschluessel" => array("aufnahmeschluessel"), "public.tbl_aufnahmetermin" => array("aufnahmetermin_id","aufnahmetermintyp_kurzbz","prestudent_id","termin","teilgenommen","bewertung","protokoll","insertamum","insertvon","updateamum","updatevon","ext_id"), "public.tbl_aufnahmetermintyp" => array("aufnahmetermintyp_kurzbz","bezeichnung"), - "public.tbl_bankverbindung" => array("bankverbindung_id","person_id","name","anschrift","bic","blz","iban","kontonr","typ","verrechnung","updateamum","updatevon","insertamum","insertvon","ext_id","oe_kurzbz"), + "public.tbl_bankverbindung" => array("bankverbindung_id","person_id","name","anschrift","bic","blz","iban","kontonr","typ","verrechnung","updateamum","updatevon","insertamum","insertvon","ext_id","oe_kurzbz", "orgform_kurzbz"), "public.tbl_benutzer" => array("uid","person_id","aktiv","alias","insertamum","insertvon","updateamum","updatevon","ext_id","updateaktivvon","updateaktivam","aktivierungscode"), "public.tbl_benutzerfunktion" => array("benutzerfunktion_id","fachbereich_kurzbz","uid","oe_kurzbz","funktion_kurzbz","semester", "datum_von","datum_bis", "updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung","wochenstunden"), "public.tbl_benutzergruppe" => array("uid","gruppe_kurzbz","studiensemester_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"), From fc9ae760b5a7849c2287d2678eca3140cd2ca209 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 20 Feb 2020 17:07:57 +0100 Subject: [PATCH 3/4] public.vw_msg_vars: added variables semester, Studiengangsassistenz, relative Prio --- system/dbupdate_3.3.php | 174 ++++++++++++++++++++++++++-------------- 1 file changed, 116 insertions(+), 58 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index a7d4011cc..de3df43c0 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3462,77 +3462,135 @@ if(!$result = @$db->db_query("SELECT orgform_kurzbz FROM public.tbl_bankverbindu } // iban und bic zu vw_msg_vars hinzufügen -if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang" FROM public.vw_msg_vars LIMIT 1')) +if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang", "Studiengangskennzahl", "Einstiegssemester", "Einstiegsstudiensemester", "Vorname Studiengangsassistenz", "Nachname Studiengangsassistenz", "Durchwahl Studiengangsassistenz", "Relative Priorität" FROM public.vw_msg_vars 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" - 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 + 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", + (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 Priorität" + 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) + 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) tbl_studienplan.orgform_kurzbz, ps.prestudent_id - FROM public.tbl_prestudent ps - JOIN public.tbl_prestudentstatus ON ps.prestudent_id = tbl_prestudentstatus.prestudent_id - JOIN lehre.tbl_studienplan USING(studienplan_id) - 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 + SELECT DISTINCT ON (ps.prestudent_id) ps.prestudent_id, tbl_studienplan.orgform_kurzbz + FROM public.tbl_prestudent ps + JOIN public.tbl_prestudentstatus ON ps.prestudent_id = tbl_prestudentstatus.prestudent_id + JOIN lehre.tbl_studienplan USING(studienplan_id) + 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 + 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) + )bk ON s.oe_kurzbz = bk.oe_kurzbz AND (last_prestudent_status.orgform_kurzbz = bk.orgform_kurzbz OR bk.orgform_kurzbz IS NULL) WHERE p.aktiv = TRUE ORDER BY p.person_id ASC, pr.prestudent_id ASC );'; @@ -3540,7 +3598,7 @@ if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang" FROM if(!$db->db_query($qry)) echo 'public.vw_msg_vars: '.$db->db_last_error().'
'; else - echo '
public.vw_msg_vars iban und bic added'; + echo '
public.vw_msg_vars IBAN Studiengang, BIC Studiengang, Studiengangskennzahl, Einstiegssemester, Einstiegsstudiensemester, Vorname Studiengangsassistenz, Nachname Studiengangsassistenz, Durchwahl Studiengangsassistenz, Relative Priorität added'; } // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen From f1cf82c107267f606e61599dac64cd28a9a30211 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 20 Feb 2020 18:48:15 +0100 Subject: [PATCH 4/4] =?UTF-8?q?Spalte=20Alias=20hinzugef=C3=BCgt,=20Spalte?= =?UTF-8?q?=20Prio=20umbenannt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 107 ++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 53 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index de3df43c0..a3965780a 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3462,62 +3462,63 @@ if(!$result = @$db->db_query("SELECT orgform_kurzbz FROM public.tbl_bankverbindu } // iban und bic zu vw_msg_vars hinzufügen -if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang", "Studiengangskennzahl", "Einstiegssemester", "Einstiegsstudiensemester", "Vorname Studiengangsassistenz", "Nachname Studiengangsassistenz", "Durchwahl Studiengangsassistenz", "Relative Priorität" FROM public.vw_msg_vars LIMIT 1')) +if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang", "Studiengangskennzahl", "Einstiegssemester", "Einstiegsstudiensemester", "Vorname Studiengangsassistenz", "Nachname Studiengangsassistenz", "Durchwahl Studiengangsassistenz", "Relative Prio" FROM public.vw_msg_vars 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", - (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 Priorität" + 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" FROM public.tbl_person p LEFT JOIN ( SELECT person_id, @@ -3576,7 +3577,7 @@ if(!$result = @$db->db_query('SELECT "IBAN Studiengang", "BIC Studiengang", "Stu 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 + 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)