diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 1fd4890b6..e2b567f56 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3675,6 +3675,159 @@ if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.vw_auswertung LI echo '
testtool.vw_auswertung view created'; } +// 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", "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", + 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, + 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 + 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, 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) + 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 Studiengang, BIC Studiengang, Studiengangskennzahl, Einstiegssemester, Einstiegsstudiensemester, Vorname Studiengangsassistenz, Nachname Studiengangsassistenz, Durchwahl Studiengangsassistenz, Relative Priorität added'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -3833,7 +3986,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"),