mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
6360 lines
316 KiB
PHP
6360 lines
316 KiB
PHP
<?php
|
||
/* Copyright (C) 2017 fhcomplete.org
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as
|
||
* published by the Free Software Foundation; either version 2 of the
|
||
* License, or (at your option) any later version.
|
||
*
|
||
* This program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License
|
||
* along with this program; if not, write to the Free Software
|
||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||
*
|
||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||
* Cristina Hainberger <hainberg@technikum-wien.at>
|
||
*
|
||
* Beschreibung:
|
||
* Dieses Skript prueft die Datenbank auf aktualitaet, dabei werden fehlende Attribute angelegt.
|
||
*/
|
||
|
||
//Spalte statusgrund_id in tbl_prestudentstauts
|
||
if(!$result = @$db->db_query("SELECT statusgrund_id FROM public.tbl_prestudentstatus LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_prestudentstatus ADD COLUMN statusgrund_id integer;
|
||
ALTER TABLE public.tbl_prestudentstatus ADD CONSTRAINT fk_prestudentstatus_statusgrund FOREIGN KEY (statusgrund_id) REFERENCES public.tbl_status_grund (statusgrund_id) ON DELETE RESTRICT ON UPDATE CASCADE;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudentstatus: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_prestudentstatus: Spalte statusgrund_id hinzugefuegt';
|
||
}
|
||
|
||
// Berechtigungen fuer web User erteilen um Gebiete anlegen zu duerfen
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_gebiet' AND table_schema='testtool' AND grantee='web' AND privilege_type='INSERT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "GRANT SELECT, INSERT, UPDATE, DELETE ON testtool.tbl_gebiet TO web;
|
||
GRANT SELECT, UPDATE ON testtool.tbl_gebiet_gebiet_id_seq TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Testtool Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Web User fuer testtool.tbl_gebiet berechtigt';
|
||
}
|
||
}
|
||
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars WHERE person_id=-1 LIMIT 1"))
|
||
{
|
||
// CREATE OR REPLACE VIEW public.vw_msg_vars and grants privileges
|
||
$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"
|
||
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)
|
||
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 '<br>public.vw_msg_vars view created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars TO web;';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on public.vw_msg_vars';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars TO vilesci;';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on public.vw_msg_vars';
|
||
}
|
||
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_person LIMIT 1"))
|
||
{
|
||
// CREATE OR REPLACE VIEW public.vw_msg_vars and grants privileges
|
||
$qry = '
|
||
CREATE OR REPLACE VIEW public.vw_msg_vars_person AS (
|
||
SELECT DISTINCT ON(p.person_id) p.person_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"
|
||
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)
|
||
ORDER BY p.person_id ASC
|
||
);';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.vw_msg_vars_person view created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_person TO web;';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on public.vw_msg_vars_person';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_person TO vilesci;';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on public.vw_msg_vars_person';
|
||
}
|
||
|
||
// CREATE OR REPLACE VIEW public.vw_msg_vars_user and grants privileges
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_user LIMIT 1"))
|
||
{
|
||
$qry = '
|
||
CREATE OR REPLACE VIEW public.vw_msg_vars_user AS (
|
||
SELECT DISTINCT ON
|
||
(b.uid) b.uid AS "my_uid",
|
||
p.vorname AS "my_vorname",
|
||
p.nachname AS "my_nachname",
|
||
COALESCE(b.alias, b.uid) AS "my_alias",
|
||
ma.telefonklappe AS "my_durchwahl"
|
||
FROM public.tbl_person p
|
||
JOIN public.tbl_benutzer b USING (person_id)
|
||
JOIN public.tbl_mitarbeiter ma ON ma.mitarbeiter_uid = b.uid
|
||
WHERE ma.personalnummer > 0
|
||
);';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars_user: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.vw_msg_vars_user view created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO web;';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars_user: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on public.vw_msg_vars_user';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO vilesci;';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars_user: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on public.vw_msg_vars_user';
|
||
}
|
||
|
||
//Spalte anmerkung und rechnungsadresse in tbl_adresse
|
||
if(!$result = @$db->db_query("SELECT rechnungsadresse FROM public.tbl_adresse LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_adresse ADD COLUMN rechnungsadresse boolean NOT NULL DEFAULT false;
|
||
ALTER TABLE public.tbl_adresse ADD COLUMN anmerkung text;
|
||
COMMENT ON COLUMN public.tbl_adresse.typ IS 'h=hauptwohnsitz, n=nebenwohnsitz, f=firma, r=Rechnungsadresse';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_adresse: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_adresse: Spalte rechnungsadresse und anmerkung hinzugefuegt';
|
||
}
|
||
|
||
//Spalte final tbl_projektarbeit zum Markieren der letztgueltigen Projektarbeit
|
||
if(!$result = @$db->db_query("SELECT final FROM lehre.tbl_projektarbeit LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_projektarbeit ADD COLUMN final boolean NOT NULL DEFAULT true;
|
||
COMMENT ON COLUMN lehre.tbl_projektarbeit.final IS 'Markiert letztgültige Version der Projektarbeit';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_projektarbeit: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_projektarbeit: Spalte final hinzugefuegt';
|
||
}
|
||
|
||
//Spalte insertamum tbl_pruefungsanmeldung zur Ausgabe des Anmeldedatums auf Anmeldelisten
|
||
if(!$result = @$db->db_query("SELECT insertamum FROM campus.tbl_pruefungsanmeldung LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE campus.tbl_pruefungsanmeldung ADD COLUMN insertamum timestamp DEFAULT now();";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_pruefungsanmeldung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>campus.tbl_pruefungsanmeldung: Spalte insertamum hinzugefuegt';
|
||
}
|
||
|
||
// Berechtigungs View liefert nur noch aktive Benutzer
|
||
if($result = $db->db_query("SELECT view_definition FROM information_schema.views WHERE table_schema='system' AND table_name='vw_berechtigung_nichtrekursiv'"))
|
||
{
|
||
if($row = $db->db_fetch_object($result))
|
||
{
|
||
if(!mb_stristr($row->view_definition, 'tbl_benutzer.aktiv = true'))
|
||
{
|
||
$qry = "
|
||
CREATE OR REPLACE VIEW system.vw_berechtigung_nichtrekursiv AS
|
||
SELECT
|
||
uid, berechtigung_kurzbz,
|
||
-- art zusammenfassung und nur die nehmen die gleich sind
|
||
CASE WHEN length(art)>length(art1) THEN art1 ELSE art END as art,
|
||
oe_kurzbz, kostenstelle_id
|
||
FROM
|
||
(
|
||
-- Normal
|
||
SELECT
|
||
benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz,
|
||
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
|
||
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
|
||
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
|
||
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
|
||
FROM
|
||
system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz)
|
||
|
||
-- Rollen
|
||
UNION
|
||
SELECT
|
||
benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz,
|
||
tbl_benutzerrolle.rolle_kurzbz, tbl_berechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.art art1,
|
||
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
|
||
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
|
||
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
|
||
FROM
|
||
system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz)
|
||
JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz)
|
||
JOIN system.tbl_berechtigung ON(tbl_rolleberechtigung.berechtigung_kurzbz=tbl_berechtigung.berechtigung_kurzbz)
|
||
|
||
-- Funktionen
|
||
UNION
|
||
SELECT
|
||
benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz,
|
||
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
|
||
tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
|
||
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
|
||
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
|
||
FROM
|
||
system.tbl_benutzerrolle JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz)
|
||
WHERE
|
||
(tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now())
|
||
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())
|
||
|
||
-- Funktion Mitarbeiter
|
||
UNION
|
||
SELECT
|
||
benutzerberechtigung_id, vw_mitarbeiter.uid, tbl_benutzerrolle.funktion_kurzbz,
|
||
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
|
||
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
|
||
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
|
||
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
|
||
FROM
|
||
system.tbl_benutzerrolle, campus.vw_mitarbeiter
|
||
WHERE
|
||
tbl_benutzerrolle.funktion_kurzbz='Mitarbeiter' and vw_mitarbeiter.aktiv
|
||
|
||
|
||
-- Funktion Student
|
||
UNION
|
||
SELECT
|
||
benutzerberechtigung_id, vw_student.uid, tbl_benutzerrolle.funktion_kurzbz,
|
||
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
|
||
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
|
||
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
|
||
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
|
||
FROM
|
||
system.tbl_benutzerrolle, campus.vw_student
|
||
WHERE
|
||
tbl_benutzerrolle.funktion_kurzbz='Student' and vw_student.aktiv
|
||
) as a
|
||
JOIN public.tbl_benutzer USING(uid)
|
||
WHERE
|
||
-- Datumsgrenzen beruecksichtigen
|
||
tbl_benutzer.aktiv = true
|
||
AND (a.start<=now() OR a.start is null)
|
||
AND (a.ende>=now() OR a.ende is null)
|
||
|
||
-- Neagtiv Rechte entfernen
|
||
AND not negativ
|
||
AND NOT EXISTS(SELECT
|
||
1
|
||
FROM
|
||
system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) WHERE uid=a.uid AND berechtigung_kurzbz=a.berechtigung_kurzbz AND negativ);
|
||
|
||
GRANT SELECT ON system.vw_berechtigung_nichtrekursiv TO web;
|
||
GRANT SELECT ON system.vw_berechtigung_nichtrekursiv TO vilesci;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.vw_berechtigung_nichtrekursiv:'.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.vw_berechtigung_nichtrekursiv angepasst damit nur aktive Benutzer beruecksichtigt werden';
|
||
}
|
||
}
|
||
}
|
||
|
||
// Creates table system.tbl_udf if it doesn't exist and grants privileges
|
||
if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_udf LIMIT 1"))
|
||
{
|
||
$qry = '
|
||
CREATE TABLE system.tbl_udf (
|
||
"schema" VARCHAR(32) NOT NULL,
|
||
"table" VARCHAR(128) NOT NULL,
|
||
"jsons" JSONB NOT NULL,
|
||
CONSTRAINT tbl_udf_pkey PRIMARY KEY("schema", "table")
|
||
);';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_udf: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_udf table created';
|
||
|
||
$qry = 'COMMENT ON COLUMN system.tbl_udf.schema IS \'Schema of the table\';';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_udf.schema: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_udf.schema';
|
||
|
||
$qry = 'COMMENT ON COLUMN system.tbl_udf.table IS \'Table name\';';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_udf.table: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_udf.table';
|
||
|
||
$qry = 'COMMENT ON COLUMN system.tbl_udf.jsons IS \'JSON schema\';';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_udf.jsons: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_udf.jsons';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_udf TO web;';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_udf: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_udf';
|
||
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_udf TO vilesci;';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_udf: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_udf';
|
||
}
|
||
|
||
// Add column udf_values to public.tbl_person
|
||
if(!$result = @$db->db_query("SELECT udf_values FROM public.tbl_person LIMIT 1"))
|
||
{
|
||
$qry = 'ALTER TABLE public.tbl_person ADD COLUMN udf_values JSONB;';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added column udf_values to table public.tbl_person';
|
||
}
|
||
|
||
// Add column udf_values to public.tbl_prestudent
|
||
if(!$result = @$db->db_query("SELECT udf_values FROM public.tbl_prestudent LIMIT 1"))
|
||
{
|
||
$qry = 'ALTER TABLE public.tbl_prestudent ADD COLUMN udf_values JSONB;';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudent: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added column udf_values to table public.tbl_prestudent';
|
||
}
|
||
|
||
// Add permission for UDF
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'system/udf';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('system/udf', 'UDF');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for UDF<br>';
|
||
}
|
||
}
|
||
|
||
// Spalten mailversand,teilnehmer_anonym,termine_anonym in campus.tbl_coodle
|
||
if(!$result = @$db->db_query("SELECT mailversand FROM campus.tbl_coodle LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE campus.tbl_coodle ADD COLUMN mailversand boolean;
|
||
ALTER TABLE campus.tbl_coodle ADD COLUMN teilnehmer_anonym boolean;
|
||
ALTER TABLE campus.tbl_coodle ADD COLUMN termine_anonym boolean;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_coodle: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>campus.tbl_coodle: Spalten mailversand, teilnehmer_anonym und termine_anonym hinzugefuegt!<br>';
|
||
}
|
||
|
||
// Spalte onlinebewerbung_studienplan in lehre.tbl_studienplan
|
||
if(!$result = @$db->db_query("SELECT onlinebewerbung_studienplan FROM lehre.tbl_studienplan LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_studienplan ADD COLUMN onlinebewerbung_studienplan boolean NOT NULL DEFAULT true;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_studienplan: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_studienplan: Spalte onlinebewerbung_studienplan hinzugefuegt!<br>';
|
||
}
|
||
|
||
// Spalte sort in lehre.tbl_pruefungstyp (gibt Reihenfolge der Prüfungsantritte an)
|
||
if(!$result = @$db->db_query("SELECT sort FROM lehre.tbl_pruefungstyp LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_pruefungstyp ADD COLUMN sort smallint;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_pruefungstyp: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_pruefungstyp: Spalte sort hinzugefuegt!<br>';
|
||
}
|
||
|
||
// zusätzliche kommissionelle Prüfung (4.Termin) als Zeile hinzufügen
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefungstyp_kurzbz= 'zusKommPruef';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_pruefungstyp(pruefungstyp_kurzbz, beschreibung, abschluss) VALUES ('zusKommPruef', 'zusätzliche kommissionelle Prüfung', FALSE);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_pruefungstyp: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_pruefungstyp: Zeile zusKommPruef hinzugefuegt!<br>';
|
||
}
|
||
}
|
||
|
||
// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64)
|
||
if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64"))
|
||
{
|
||
if($db->db_num_rows($result)>0)
|
||
{
|
||
$qry = "
|
||
ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// Note "entschuldigt" hinzufügen
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre) VALUES((SELECT max(note)+1 FROM lehre.tbl_note),'entschuldigt', 'en', NULL, TRUE, NULL, TRUE, TRUE);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_note: Zeile entschuldigt hinzugefuegt!<br>';
|
||
}
|
||
}
|
||
|
||
// Note "unentschuldigt" hinzufügen
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'ue' AND (bezeichnung = 'unentschuldigt' OR bezeichnung = 'Unentschuldigt');"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre) VALUES((SELECT max(note)+1 FROM lehre.tbl_note),'unentschuldigt', 'ue', NULL, FALSE, NULL, TRUE, TRUE);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_note: Zeile unentschuldigt hinzugefuegt!<br>';
|
||
}
|
||
}
|
||
|
||
// Note "intern angerechnet" hinzufügen
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'iar' AND (bezeichnung = 'intern angerechnet' OR bezeichnung = 'Intern angerechnet');"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "
|
||
INSERT INTO
|
||
lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar)
|
||
VALUES(
|
||
(SELECT max(note)+1 FROM lehre.tbl_note),'intern angerechnet', 'iar', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"intern angerechnet\",\"internally credited\"}', FALSE
|
||
);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_note: Note intern angerechnet hinzugefuegt!<br>';
|
||
}
|
||
}
|
||
|
||
// Note "nicht zugelassen" hinzufügen
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'nz' AND (bezeichnung = 'nicht zugelassen' OR bezeichnung = 'Nicht zugelassen');"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "
|
||
INSERT INTO
|
||
lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar)
|
||
VALUES(
|
||
(SELECT max(note)+1 FROM lehre.tbl_note), 'nicht zugelassen', 'nz', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"nicht zugelassen\",\"not admitted\"}', FALSE
|
||
);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_note: Note nicht zugelassen hinzugefuegt!<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte offiziell in lehre.tbl_note
|
||
if(!$result = @$db->db_query("SELECT offiziell FROM lehre.tbl_note LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_note ADD COLUMN offiziell boolean NOT NULL DEFAULT true;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_note: Spalte offiziell hinzugefuegt!<br>';
|
||
}
|
||
|
||
// Spalte bezeichnung_mehrsprachig in lehre.tbl_note
|
||
if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM lehre.tbl_note LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_note ADD COLUMN bezeichnung_mehrsprachig varchar(64)[];";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'lehre.tbl_note: Spalte bezeichnung_mehrsprachig hinzugefuegt!<br>';
|
||
|
||
// Bezeichnung_mehrsprachig aus existierender Bezeichnung vorausfuellen. Ein Eintrag fuer jede Sprache mit Content aktiv.
|
||
$qry_help = "SELECT index FROM public.tbl_sprache WHERE content=TRUE;";
|
||
if(!$result = $db->db_query($qry_help))
|
||
echo '<strong>tbl_note bezeichnung_mehrsprachig: Fehler beim ermitteln der Sprachen: '.$db->db_last_error().'</strong>';
|
||
else
|
||
{
|
||
$qry='';
|
||
while($row = $db->db_fetch_object($result))
|
||
$qry.= "UPDATE lehre.tbl_note set bezeichnung_mehrsprachig[".$row->index."] = bezeichnung;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Setzen der bezeichnung_mehrsprachig fehlgeschlagen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'lehre.tbl_note: bezeichnung_mehrprachig automatisch aus existierender Bezeichnung uebernommen<br>';
|
||
}
|
||
}
|
||
|
||
// Column design_uid, betrieb_uid and operativ_uid to tbl_service
|
||
if(!$result = @$db->db_query("SELECT design_uid FROM public.tbl_service LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_service ADD COLUMN design_uid varchar(32);
|
||
ALTER TABLE public.tbl_service ADD COLUMN betrieb_uid varchar(32);
|
||
ALTER TABLE public.tbl_service ADD COLUMN operativ_uid varchar(32);
|
||
ALTER TABLE public.tbl_service ADD CONSTRAINT fk_tbl_service_design_uid FOREIGN KEY (design_uid) REFERENCES public.tbl_benutzer (uid) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE public.tbl_service ADD CONSTRAINT fk_tbl_service_betrieb_uid FOREIGN KEY (betrieb_uid) REFERENCES public.tbl_benutzer (uid) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE public.tbl_service ADD CONSTRAINT fk_tbl_service_operativ_uid FOREIGN KEY (operativ_uid) REFERENCES public.tbl_benutzer (uid) ON DELETE RESTRICT ON UPDATE CASCADE;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_service: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_service: Spalten design_uid,betrieb_uid,operativ_uid hinzugefuegt!<br>';
|
||
}
|
||
|
||
// FOREIGN KEY tbl_phrasentext_sprache_fkey: system.tbl_phrasentext.sprache references public.tbl_sprache.sprache
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_phrasentext_sprache_fkey'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE system.tbl_phrasentext ADD CONSTRAINT tbl_phrasentext_sprache_fkey FOREIGN KEY (sprache) REFERENCES public.tbl_sprache(sprache) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_phrasentext: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_phrasentext: added foreign key on column sprache referenced to public.tbl_sprache(sprache)';
|
||
}
|
||
}
|
||
|
||
// FOREIGN KEY tbl_phrasentext_orgeinheit_kurzbz_fkey: system.tbl_phrasentext.orgeinheit_kurzbz references public.tbl_organisationseinheit.orgeinheit_kurzbz
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_phrasentext_orgeinheit_kurzbz_fkey'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE system.tbl_phrasentext ADD CONSTRAINT tbl_phrasentext_orgeinheit_kurzbz_fkey FOREIGN KEY (orgeinheit_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_phrasentext: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_phrasentext: added foreign key on column orgeinheit_kurzbz referenced to public.tbl_organisationseinheit(orgeinheit_kurzbz)';
|
||
}
|
||
}
|
||
|
||
// FOREIGN KEY tbl_phrasentext_orgform_kurzbz_fkey: system.tbl_phrasentext.orgform_kurzbz references bis.tbl_orgform.orgform_kurzbz
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_phrasentext_orgform_kurzbz_fkey'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE system.tbl_phrasentext ADD CONSTRAINT tbl_phrasentext_orgform_kurzbz_fkey FOREIGN KEY (orgform_kurzbz) REFERENCES bis.tbl_orgform(orgform_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_phrasentext: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_phrasentext: added foreign key on column orgform_kurzbz referenced to bis.tbl_orgform(orgform_kurzbz)';
|
||
}
|
||
}
|
||
|
||
// Add FOREIGN KEY testtool.tbl_pruefling.prestudent_id
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'fk_pruefling_prestudent'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "SELECT * FROM testtool.tbl_pruefling WHERE prestudent_id is not null AND NOT EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE prestudent_id=tbl_pruefling.prestudent_id)";
|
||
if($result = $db->db_query($qry))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE testtool.tbl_pruefling ADD CONSTRAINT fk_pruefling_prestudent FOREIGN KEY (prestudent_id) REFERENCES public.tbl_prestudent(prestudent_id) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>testtool.tbl_pruefling: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>testtool.tbl_pruefling: added foreign key on column prestudent_id referenced to public.tbl_prestudent(prestudent_id)';
|
||
}
|
||
else
|
||
{
|
||
echo '<strong>
|
||
Foreign Key für testtool.tbl_pruefling.prestudent_id kann nicht erstellt werden da in tbl_pruefling
|
||
'.$db->db_num_rows($result).' Prestudenten eingetragen sind die nicht in tbl_prestudent vorhanden sind.<br>
|
||
<br>
|
||
Bitte korrigieren Sie die fehlenden Zuordnungen damit der FK erstellt werden kann.
|
||
Mit folgendem Befehl können die falschen Zuordnungen entfernt werden:<br>
|
||
UPDATE testtool.tbl_pruefling SET prestudent_id=null WHERE NOT EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE prestudent_id=tbl_pruefling.prestudent_id)
|
||
</strong>';
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// ADD COLUMN insertamum to public.tbl_rt_person
|
||
if(!@$db->db_query("SELECT insertamum FROM public.tbl_rt_person LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_rt_person ADD COLUMN insertamum timestamp DEFAULT now();";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_rt_person '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte insertamum in public.tbl_rt_person hinzugefügt';
|
||
}
|
||
|
||
// ADD COLUMN insertvon to public.tbl_rt_person
|
||
if(!@$db->db_query("SELECT insertvon FROM public.tbl_rt_person LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_rt_person ADD COLUMN insertvon varchar(32);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_rt_person '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte insertvon in public.tbl_rt_person hinzugefügt';
|
||
}
|
||
|
||
// ADD COLUMN updateamum to public.tbl_rt_person
|
||
if(!@$db->db_query("SELECT updateamum FROM public.tbl_rt_person LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_rt_person ADD COLUMN updateamum timestamp DEFAULT now();";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_rt_person '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte updateamum in public.tbl_rt_person hinzugefügt';
|
||
}
|
||
|
||
// ADD COLUMN studiengang_kz to testtool.vw_auswertung_ablauf
|
||
if(!$result = @$db->db_query("SELECT studiengang_kz FROM testtool.vw_auswertung_ablauf LIMIT 1"))
|
||
{
|
||
// CREATE OR REPLACE VIEW testtool.vw_auswertung_ablauf and grants privileges
|
||
$qry = '
|
||
CREATE OR REPLACE VIEW testtool.vw_auswertung_ablauf AS (
|
||
SELECT
|
||
tbl_gebiet.gebiet_id,
|
||
tbl_gebiet.bezeichnung AS gebiet,
|
||
tbl_ablauf.reihung,
|
||
tbl_gebiet.maxpunkte,
|
||
tbl_pruefling.pruefling_id,
|
||
tbl_pruefling.prestudent_id,
|
||
tbl_person.vorname,
|
||
tbl_person.nachname,
|
||
tbl_person.gebdatum,
|
||
tbl_person.geschlecht,
|
||
tbl_pruefling.semester,
|
||
upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz,
|
||
tbl_studiengang.bezeichnung AS stg_bez,
|
||
tbl_pruefling.registriert,
|
||
tbl_pruefling.idnachweis,
|
||
( SELECT sum(tbl_vorschlag.punkte) AS sum
|
||
FROM testtool.tbl_vorschlag
|
||
JOIN testtool.tbl_antwort USING (vorschlag_id)
|
||
JOIN testtool.tbl_frage USING (frage_id)
|
||
WHERE tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id
|
||
) AS punkte,
|
||
tbl_rt_person.rt_id AS reihungstest_id,
|
||
tbl_ablauf.gewicht,
|
||
tbl_studiengang.studiengang_kz
|
||
FROM
|
||
testtool.tbl_pruefling
|
||
JOIN testtool.tbl_ablauf ON tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz
|
||
JOIN testtool.tbl_gebiet USING (gebiet_id)
|
||
JOIN public.tbl_prestudent USING (prestudent_id)
|
||
JOIN public.tbl_person USING (person_id)
|
||
JOIN public.tbl_rt_person USING (person_id)
|
||
JOIN lehre.tbl_studienplan ON tbl_studienplan.studienplan_id = tbl_rt_person.studienplan_id
|
||
JOIN lehre.tbl_studienordnung ON tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id
|
||
JOIN public.tbl_studiengang ON tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz
|
||
WHERE NOT (tbl_ablauf.gebiet_id IN
|
||
(
|
||
SELECT tbl_kategorie.gebiet_id
|
||
FROM testtool.tbl_kategorie
|
||
)
|
||
) AND tbl_studienordnung.studiengang_kz = tbl_pruefling.studiengang_kz
|
||
)';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>testtool.vw_auswertung_ablauf: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>testtool.vw_auswertung_ablauf view created';
|
||
}
|
||
|
||
|
||
// ADD COLUMN updatevon to public.tbl_rt_person
|
||
if(!@$db->db_query("SELECT updatevon FROM public.tbl_rt_person LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_rt_person ADD COLUMN updatevon varchar(32);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_rt_person '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte updatevon in public.tbl_rt_person hinzugefügt';
|
||
}
|
||
|
||
// Neue Funktion get_highest_content_version
|
||
if(!@$db->db_query("SELECT campus.get_highest_content_version(0)"))
|
||
{
|
||
$qry = 'CREATE FUNCTION campus.get_highest_content_version(bigint) RETURNS smallint
|
||
LANGUAGE plpgsql
|
||
AS $_$
|
||
DECLARE i_content_id ALIAS FOR $1;
|
||
DECLARE rec RECORD;
|
||
BEGIN
|
||
SELECT INTO rec version
|
||
FROM campus.tbl_contentsprache
|
||
WHERE content_id=i_content_id
|
||
ORDER BY version desc
|
||
LIMIT 1;
|
||
|
||
RETURN rec.version;
|
||
END;
|
||
$_$;
|
||
|
||
ALTER FUNCTION campus.get_highest_content_version(bigint) OWNER TO fhcomplete;';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.get_highest_content_version(content_id): '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Funktion get_highest_content_version(content_id) hinzugefügt';
|
||
}
|
||
|
||
// ADD COLUMN ausstellungsnation and formal_geprueft_amum to public.tbl_akte
|
||
if(!@$db->db_query("SELECT ausstellungsnation FROM public.tbl_akte LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_akte ADD COLUMN ausstellungsnation varchar(3);
|
||
ALTER TABLE public.tbl_akte ADD CONSTRAINT fk_tbl_akte_ausstellungsnation FOREIGN KEY (ausstellungsnation) REFERENCES bis.tbl_nation(nation_code) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE public.tbl_akte ADD COLUMN formal_geprueft_amum timestamp;
|
||
COMMENT ON COLUMN public.tbl_akte.ausstellungsnation IS 'Nation-Code des Landes, in dem das Dokument ausgestellt wurde';
|
||
COMMENT ON COLUMN public.tbl_akte.formal_geprueft_amum IS 'Bestaetigungsdatum, an dem das Dokument inhaltlich auf Formalkriterien (Leserlichkeit, Vollständigkeit, etc) geprueft wurde';
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_rt_person '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte updatevon in public.tbl_rt_person hinzugefügt';
|
||
}
|
||
|
||
// ADD COLUMN ausstellungsdetails (boolean) to public.tbl_dokument
|
||
if(!@$db->db_query("SELECT ausstellungsdetails FROM public.tbl_dokument LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_dokument ADD COLUMN ausstellungsdetails boolean NOT NULL DEFAULT false;
|
||
COMMENT ON COLUMN public.tbl_dokument.ausstellungsdetails IS 'Sollen beim Dokument weitere Felder (zB Ausstellungsnation) angezeigt werden?';
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokument '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte ausstellungsdetails in public.tbl_dokument hinzugefügt';
|
||
}
|
||
|
||
// ADD COLUMN geschaeftsjahrvon and geschaeftsjahrbis in wawi.tbl_kostenstelle
|
||
if(!$result = @$db->db_query("SELECT geschaeftsjahrvon FROM wawi.tbl_kostenstelle LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE wawi.tbl_kostenstelle ADD COLUMN geschaeftsjahrvon varchar(32);
|
||
ALTER TABLE wawi.tbl_kostenstelle ADD COLUMN geschaeftsjahrbis varchar(32);
|
||
ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT fk_tbl_geschaeftsjahr_geschaeftsjahrvon FOREIGN KEY (geschaeftsjahrvon) REFERENCES public.tbl_geschaeftsjahr (geschaeftsjahr_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT fk_tbl_geschaeftsjahr_geschaeftsjahrbis FOREIGN KEY (geschaeftsjahrbis) REFERENCES public.tbl_geschaeftsjahr (geschaeftsjahr_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>wawi.tbl_kostenstelle: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>wawi.tbl_kostenstelle: Spalten geschaeftsjahrvon, geschaeftsjahrbis hinzugefuegt!<br>';
|
||
}
|
||
|
||
//---------------------------------------------------------------------------------------------------------------------
|
||
// Start extensions
|
||
|
||
// SEQUENCE tbl_extensions_id_seq
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_extensions_id_seq'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = '
|
||
CREATE SEQUENCE system.tbl_extensions_id_seq
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created sequence: system.tbl_extensions_id_seq';
|
||
|
||
// GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_extensions_id_seq';
|
||
|
||
// GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO fhcomplete;
|
||
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO fhcomplete;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_extensions_id_seq';
|
||
}
|
||
}
|
||
|
||
// TABLE system.tbl_extensions
|
||
if(!@$db->db_query("SELECT 0 FROM system.tbl_extensions WHERE 0 = 1"))
|
||
{
|
||
$qry = '
|
||
CREATE TABLE system.tbl_extensions (
|
||
extension_id integer NOT NULL DEFAULT NEXTVAL(\'system.tbl_extensions_id_seq\'),
|
||
name character varying(128) NOT NULL,
|
||
version integer NOT NULL,
|
||
description text,
|
||
license character varying(256),
|
||
url character varying(256),
|
||
core_version character varying(48) NOT NULL,
|
||
dependencies character varying(128)[],
|
||
enabled boolean NOT NULL DEFAULT true
|
||
);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created table system.tbl_extensions';
|
||
|
||
|
||
// GRANT SELECT ON TABLE system.tbl_extensions TO web;
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_extensions TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_extensions';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_extensions TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_extensions TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_extensions';
|
||
|
||
// COMMENT ON TABLE system.tbl_extensions
|
||
$qry = 'COMMENT ON TABLE system.tbl_extensions IS \'Table to manage extensions\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_extensions: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_extensions';
|
||
|
||
// COMMENT ON COLUMN system.tbl_extensions.name
|
||
$qry = 'COMMENT ON COLUMN system.tbl_extensions.name IS \'Extension unique name\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_extensions.name: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_extensions.name';
|
||
|
||
// COMMENT ON COLUMN system.tbl_extensions.core_version
|
||
$qry = 'COMMENT ON COLUMN system.tbl_extensions.core_version IS \'Minimum required core version\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_extensions.core_version: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_extensions.core_version';
|
||
|
||
// COMMENT ON COLUMN system.tbl_extensions.dependencies
|
||
$qry = 'COMMENT ON COLUMN system.tbl_extensions.dependencies IS \'Required extensions\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_extensions.dependencies: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_extensions.dependencies';
|
||
|
||
// ALTER SEQUENCE system.tbl_extensions_id_seq
|
||
$qry = 'ALTER SEQUENCE system.tbl_extensions_id_seq OWNED BY system.tbl_extensions.extension_id;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Altered sequence system.tbl_extensions_id_seq';
|
||
}
|
||
|
||
// Adds primary key to system.tbl_extensions using column extension_id
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'pk_extensions_extension_id'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE system.tbl_extensions ADD CONSTRAINT pk_extensions_extension_id PRIMARY KEY (extension_id);";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_extensions '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_extensions: added primary key on column extension_id';
|
||
}
|
||
}
|
||
|
||
// UNIQUE INDEX uidx_extensions_name_version
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_extensions_name_version'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'CREATE UNIQUE INDEX uidx_extensions_name_version ON system.tbl_extensions USING btree (name, version);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>uidx_extensions_name_version '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created unique uidx_extensions_name_version';
|
||
}
|
||
}
|
||
|
||
// Add permission for extensions
|
||
if ($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'system/extensions';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('system/extensions', 'To manage core extensions');";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for extensions<br>';
|
||
}
|
||
}
|
||
|
||
// End extensions
|
||
//---------------------------------------------------------------------------------------------------------------------
|
||
|
||
// Tabellen fuer Person Log
|
||
if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_log LIMIT 1"))
|
||
{
|
||
$qry = "CREATE TABLE system.tbl_log
|
||
(
|
||
log_id bigint NOT NULL,
|
||
person_id integer,
|
||
zeitpunkt timestamp NOT NULL DEFAULT now(),
|
||
app varchar(32) NOT NULL,
|
||
oe_kurzbz varchar(32),
|
||
logtype_kurzbz varchar(32) NOT NULL,
|
||
logdata jsonb NOT NULL,
|
||
insertvon varchar(32)
|
||
);
|
||
ALTER TABLE system.tbl_log ADD CONSTRAINT pk_log PRIMARY KEY (log_id);
|
||
|
||
CREATE SEQUENCE system.tbl_log_log_id_seq
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
ALTER TABLE system.tbl_log ALTER COLUMN log_id SET DEFAULT nextval('system.tbl_log_log_id_seq');
|
||
|
||
GRANT SELECT, INSERT ON system.tbl_log TO vilesci;
|
||
GRANT SELECT, INSERT ON system.tbl_log TO web;
|
||
GRANT SELECT, UPDATE ON system.tbl_log_log_id_seq TO vilesci;
|
||
GRANT SELECT, UPDATE ON system.tbl_log_log_id_seq TO web;
|
||
|
||
CREATE TABLE system.tbl_logtype
|
||
(
|
||
logtype_kurzbz varchar(32),
|
||
data_schema jsonb NOT NULL
|
||
);
|
||
ALTER TABLE system.tbl_logtype ADD CONSTRAINT pk_logtype PRIMARY KEY (logtype_kurzbz);
|
||
GRANT SELECT ON system.tbl_logtype TO vilesci;
|
||
GRANT SELECT ON system.tbl_logtype TO web;
|
||
|
||
ALTER TABLE system.tbl_log ADD CONSTRAINT fk_log_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_log ADD CONSTRAINT fk_log_app FOREIGN KEY (app) REFERENCES system.tbl_app(app) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_log ADD CONSTRAINT fk_log_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_log ADD CONSTRAINT fk_log_logtype_kurzbz FOREIGN KEY (logtype_kurzbz) REFERENCES system.tbl_logtype(logtype_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
|
||
INSERT INTO system.tbl_logtype VALUES ('Action', '{\"type\": \"object\", \"title\": \"Action\", \"required\": [\"name\", \"success\", \"message\"], \"properties\": {\"name\": {\"type\": \"string\"}, \"message\": {\"type\": \"string\"}, \"success\": {\"type\": \"string\"}}}');
|
||
INSERT INTO system.tbl_logtype VALUES ('Processstate', '{\"type\": \"object\", \"title\": \"Processstate\", \"required\": [\"name\", \"message\"], \"properties\": {\"name\": {\"type\": \"string\"}, \"message\": {\"type\": \"string\"}}}');
|
||
";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_log '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_log hinzugefügt<br>';
|
||
}
|
||
|
||
// Add index to system.tbl_log
|
||
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_log_person_id'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "CREATE INDEX idx_tbl_log_person_id ON system.tbl_log USING btree (person_id)";
|
||
|
||
if (! $db->db_query($qry))
|
||
echo '<strong>Indizes: ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo 'Index fuer system.tbl_log hinzugefuegt';
|
||
}
|
||
}
|
||
|
||
//---------------------------------------------------------------------------------------------------------------------
|
||
// Start filters
|
||
|
||
// SEQUENCE tbl_filters_id_seq
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_filters_id_seq'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = '
|
||
CREATE SEQUENCE system.tbl_filters_id_seq
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created sequence: system.tbl_filters_id_seq';
|
||
|
||
// GRANT SELECT, UPDATE ON SEQUENCE system.tbl_filters_id_seq TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE system.tbl_filters_id_seq TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_filters_id_seq';
|
||
|
||
// GRANT SELECT, UPDATE ON SEQUENCE system.tbl_filters_id_seq TO fhcomplete;
|
||
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE system.tbl_filters_id_seq TO fhcomplete;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_filters_id_seq';
|
||
}
|
||
}
|
||
|
||
// TABLE system.tbl_filters
|
||
if (!@$db->db_query("SELECT 0 FROM system.tbl_filters WHERE 0 = 1"))
|
||
{
|
||
$qry = '
|
||
CREATE TABLE system.tbl_filters (
|
||
filter_id integer NOT NULL DEFAULT nextval(\'system.tbl_filters_id_seq\'::regclass),
|
||
app character varying(32) NOT NULL,
|
||
dataset_name character varying(128) NOT NULL,
|
||
filter_kurzbz character varying(64) NOT NULL,
|
||
person_id integer,
|
||
description character varying(128)[] NOT NULL,
|
||
sort integer,
|
||
default_filter boolean DEFAULT FALSE,
|
||
filter jsonb NOT NULL,
|
||
oe_kurzbz character varying(16)
|
||
);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created table system.tbl_filters';
|
||
|
||
// GRANT SELECT ON TABLE system.tbl_filters TO web;
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_filters TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_filters';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_filters TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_filters TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_filters';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters
|
||
$qry = 'COMMENT ON TABLE system.tbl_filters IS \'Table to manage filters\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.app
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.app IS \'Application which this filter belongs to\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.app: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.app';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.dataset_name
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.dataset_name IS \'Name that identifies the data set to be filtered\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.dataset_name: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.dataset_name';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.filter_kurzbz
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.filter_kurzbz IS \'Short description of the filter, unique for this application and this data set\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.filter_kurzbz: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.filter_kurzbz';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.person_id
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.person_id IS \'Person identifier which this filter belongs to. If null it is global\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.person_id: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.person_id';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.description
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.description IS \'Long description for this filter\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.description: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.description';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.sort
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.sort IS \'Indicates the order in which the filters appear in a list\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.sort: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.sort';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.default_filter
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.default_filter IS \'If it is the default filter for that data set\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.default_filter: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.default_filter';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.filter
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.filter IS \'Cointains json that define the filter\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.filter: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.filter';
|
||
|
||
// COMMENT ON TABLE system.tbl_filters.oe_kurzbz
|
||
$qry = 'COMMENT ON COLUMN system.tbl_filters.oe_kurzbz IS \'Organisation unit which this filter belongs to. If null it is for all the organisation units\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_filters.oe_kurzbz: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_filters.oe_kurzbz';
|
||
|
||
// ALTER SEQUENCE system.tbl_filters_id_seq OWNED BY system.tbl_filters.filter_id;
|
||
$qry = 'ALTER SEQUENCE system.tbl_filters_id_seq OWNED BY system.tbl_filters.filter_id;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Altered sequence system.tbl_filters_id_seq';
|
||
}
|
||
|
||
// Add missing primary Key to system.tbl_filters.filter_id
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'pk_filters_filter_id'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE system.tbl_filters ADD CONSTRAINT pk_filters_filter_id PRIMARY KEY (filter_id);";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_filters: added primary key on column filter_id';
|
||
}
|
||
}
|
||
|
||
// UNIQUE INDEX uidx_filters_app_dataset_name_filter_kurzbz
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_filters_app_dataset_name_filter_kurzbz'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'CREATE UNIQUE INDEX uidx_filters_app_dataset_name_filter_kurzbz ON system.tbl_filters USING btree (app, dataset_name, filter_kurzbz);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>uidx_filters_app_dataset_name_filter_kurzbz '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created unique uidx_filters_app_dataset_name_filter_kurzbz';
|
||
}
|
||
}
|
||
|
||
// Add permission for filters
|
||
if ($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'system/filters';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('system/filters', 'To manage core filters');";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for filters<br>';
|
||
}
|
||
}
|
||
|
||
// FOREIGN KEY tbl_filters_app_fkey
|
||
if ($result = $db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_filters_app_fkey'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'ALTER TABLE system.tbl_filters ADD CONSTRAINT tbl_filters_app_fkey FOREIGN KEY (app) REFERENCES system.tbl_app(app) ON UPDATE CASCADE ON DELETE RESTRICT;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>tbl_filters_app_fkey '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created foreign key tbl_filters_app_fkey';
|
||
}
|
||
}
|
||
|
||
// FOREIGN KEY tbl_filters_person_id_fkey
|
||
if ($result = $db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_filters_person_id_fkey'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'ALTER TABLE system.tbl_filters ADD CONSTRAINT tbl_filters_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>tbl_filters_person_id_fkey '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created foreign key tbl_filters_person_id_fkey';
|
||
}
|
||
}
|
||
|
||
// FOREIGN KEY tbl_filters_oe_kurzbz_fkey
|
||
if ($result = $db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_filters_oe_kurzbz_fkey'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'ALTER TABLE system.tbl_filters ADD CONSTRAINT tbl_filters_oe_kurzbz_fkey FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>tbl_filters_oe_kurzbz_fkey '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created foreign key tbl_filters_oe_kurzbz_fkey';
|
||
}
|
||
}
|
||
// End filters
|
||
//---------------------------------------------------------------------------------------------------------------------
|
||
|
||
// system.tbl_verarbeitungstaetigkeit
|
||
if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_verarbeitungstaetigkeit"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE system.tbl_verarbeitungstaetigkeit
|
||
(
|
||
taetigkeit_kurzbz varchar(32) NOT NULL,
|
||
bezeichnung varchar(255),
|
||
bezeichnung_mehrsprachig varchar(255)[],
|
||
aktiv boolean DEFAULT true
|
||
);
|
||
|
||
ALTER TABLE system.tbl_verarbeitungstaetigkeit ADD CONSTRAINT pk_verarbeitungstaetigkeit PRIMARY KEY (taetigkeit_kurzbz);
|
||
|
||
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
|
||
VALUES('bewerbung','Bewerbung','{\'Bewerbung\',\'Bewerbung\'}', true);
|
||
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
|
||
VALUES('aufnahme','Reihungs-/Aufnahmeverfahren','{\'Reihungs-/Aufnahmeverfahren\',\'Reihungs-/Aufnahmeverfahren\'}', true);
|
||
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
|
||
VALUES('bewertung','Bewertung/Benotung','{\'Bewertung/Benotung\',\'Bewertung/Benotung\'}', true);
|
||
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
|
||
VALUES('lehrauftraege','Lehraufträge','{\'Lehraufträge\',\'Lehraufträge\'}', true);
|
||
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
|
||
VALUES('datenwartung','Datenwartung','{\'Datenwartung\',\'Datenwartung\'}', true);
|
||
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
|
||
VALUES('kommunikation','Kommunikation','{\'Kommunikation\',\'Kommunikation\'}', true);
|
||
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_verarbeitungstaetigkeit TO vilesci;
|
||
GRANT SELECT ON system.tbl_verarbeitungstaetigkeit TO web;
|
||
";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>tbl_verarbeitungstaetigkeit '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created new table system.tbl_verarbeitungstaetigkeit';
|
||
}
|
||
|
||
// system.tbl_log.taetigkeit_kurzbz
|
||
if (!$result = @$db->db_query("SELECT taetigkeit_kurzbz FROM system.tbl_log LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
ALTER TABLE system.tbl_log ADD COLUMN taetigkeit_kurzbz varchar(32);
|
||
ALTER TABLE system.tbl_log ADD CONSTRAINT fk_log_taetigkeit FOREIGN KEY (taetigkeit_kurzbz) REFERENCES system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_log.taetigkeit_kurzbz '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added Column taetigkeit_kurzbz to system.tbl_log';
|
||
}
|
||
|
||
// Add index to tbl_akte
|
||
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_akte_dokument_kurzbz'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = " CREATE INDEX idx_tbl_akte_dokument_kurzbz ON tbl_akte USING btree (dokument_kurzbz);
|
||
CREATE INDEX idx_tbl_akte_person_id ON tbl_akte USING btree (person_id);
|
||
CREATE INDEX idx_tbl_akte_person_id_dokument_kurzbz ON tbl_akte USING btree (person_id, dokument_kurzbz)";
|
||
|
||
if (! $db->db_query($qry))
|
||
echo '<strong>Indizes: ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo 'Diverse Indizes fuer tbl_akte hinzugefuegt';
|
||
}
|
||
}
|
||
|
||
// Berechtigungen fuer vilesci User erteilen auf system.tbl_log
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='system' AND grantee='vilesci' AND privilege_type='UPDATE'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "GRANT UPDATE ON system.tbl_log TO vilesci;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Permission Log: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'Updaterechte auf system.tbl_log für Vilesci User hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// App 'core' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='core'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('core');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App core in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// App 'infocenter' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='infocenter'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('infocenter');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App infocenter in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// App 'bewerbung' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='bewerbung'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('bewerbung');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App bewerbung in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// App 'lehrauftrag' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='lehrauftrag'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('lehrauftrag');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App lehrauftrag in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// Archiv boolean fuer public.tbl_akte
|
||
if(!@$db->db_query("SELECT archiv FROM public.tbl_akte LIMIT 1"))
|
||
{
|
||
// Defaultwerte und Update werden hier nacheinander durchgefuehrt da dies
|
||
// schneller ist als ein ALTER TABLE mit inkludiertem Defaultwert
|
||
$qry = "ALTER TABLE public.tbl_akte ADD COLUMN archiv boolean;
|
||
UPDATE public.tbl_akte SET archiv=true WHERE dokument_kurzbz='Zeugnis';
|
||
UPDATE public.tbl_akte SET archiv=false WHERE dokument_kurzbz<>'Zeugnis';
|
||
ALTER TABLE public.tbl_akte ALTER COLUMN archiv SET DEFAULT false;
|
||
ALTER TABLE public.tbl_akte ALTER COLUMN archiv SET NOT NULL;
|
||
COMMENT ON COLUMN public.tbl_akte.archiv IS 'Is the document part of the archive';";
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>tbl_akte.archiv: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte archiv in public.tbl_akte hinzugefügt';
|
||
}
|
||
|
||
// signiert boolean fuer public.tbl_akte
|
||
if(!@$db->db_query("SELECT signiert FROM public.tbl_akte LIMIT 1"))
|
||
{
|
||
// Defaultwerte und Update werden hier nacheinander durchgefuehrt da dies
|
||
// schneller ist als ein ALTER TABLE mit inkludiertem Defaultwert
|
||
$qry = "ALTER TABLE public.tbl_akte ADD COLUMN signiert boolean;
|
||
UPDATE public.tbl_akte SET signiert = false;
|
||
ALTER TABLE public.tbl_akte ALTER COLUMN signiert SET DEFAULT false;
|
||
ALTER TABLE public.tbl_akte ALTER COLUMN signiert SET NOT NULL;
|
||
COMMENT ON COLUMN public.tbl_akte.signiert IS 'Is the document digitally signed'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte signiert in public.tbl_akte hinzugefügt';
|
||
}
|
||
|
||
// stud_selfservice boolean fuer public.tbl_akte
|
||
if(!@$db->db_query("SELECT stud_selfservice FROM public.tbl_akte LIMIT 1"))
|
||
{
|
||
// Defaultwerte und Update werden hier nacheinander durchgefuehrt da dies
|
||
// schneller ist als ein ALTER TABLE mit inkludiertem Defaultwert
|
||
$qry = "ALTER TABLE public.tbl_akte ADD COLUMN stud_selfservice boolean;
|
||
UPDATE public.tbl_akte SET stud_selfservice = false;
|
||
ALTER TABLE public.tbl_akte ALTER COLUMN stud_selfservice SET DEFAULT false;
|
||
ALTER TABLE public.tbl_akte ALTER COLUMN stud_selfservice SET NOT NULL;
|
||
COMMENT ON COLUMN public.tbl_akte.stud_selfservice IS 'Is the document downloadable for students'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte stud_selfservice in public.tbl_akte hinzugefügt';
|
||
}
|
||
|
||
// Berechtigung fuer Vorlagen setzen die vormals direkt in PDFExport.php geprueft wurden
|
||
function AddBerechtigungVorlage($berechtigung_arr, $vorlage_arr)
|
||
{
|
||
global $db;
|
||
|
||
$berechtigung = '{';
|
||
foreach($berechtigung_arr as $item)
|
||
{
|
||
$berechtigung .= '"'.$db->db_escape($item).'",';
|
||
}
|
||
$berechtigung = mb_substr($berechtigung, 0, -1).'}';
|
||
|
||
foreach($vorlage_arr as $vorlage)
|
||
{
|
||
$qry = "SELECT 1 FROM public.tbl_vorlagestudiengang
|
||
WHERE berechtigung is null AND vorlage_kurzbz=".$db->db_add_param($vorlage);
|
||
|
||
$result = $db->db_query($qry);
|
||
if($db->db_num_rows($result)>0)
|
||
{
|
||
$qry = "UPDATE public.tbl_vorlagestudiengang SET berechtigung='".$berechtigung."'
|
||
WHERE berechtigung is null AND vorlage_kurzbz=".$db->db_add_param($vorlage);
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Vorlage Berechtigung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Berechtigung '.$berechtigung.' fuer Vorlage '.$vorlage.' gesetzt';
|
||
}
|
||
}
|
||
}
|
||
|
||
AddBerechtigungVorlage(array('admin','assistenz'),array('Lehrveranstaltungszeugnis','Zertifikat','Diplomurkunde',
|
||
'Diplomzeugnis','Bescheid', 'BescheidEng','Bakkurkunde','BakkurkundeEng','Bakkzeugnis',
|
||
'PrProtokollBakk','PrProtokollDipl','Lehrauftrag','DiplomurkundeEng','Zeugnis','ZeugnisEng','StudienerfolgEng',
|
||
'Sammelzeugnis','PrProtDiplEng','PrProtBakkEng','BakkzeugnisEng','DiplomzeugnisEng','statusbericht',
|
||
'DiplSupplement','Zutrittskarte','Projektbeschr','Ausbildungsver','AusbildStatus','PrProtBA','PrProtMA',
|
||
'PrProtBAEng','PrProtMAEng','Studienordnung','Erfolgsnachweis','ErfolgsnwHead','Studienblatt','LV_Informationen',
|
||
'LVZeugnis','AnwListBarcode','Honorarvertrag','AusbVerEng','AusbVerEngHead','Zeugnis','ZeugnisNeu','ZeugnisEngNeu',
|
||
'ErfolgsnachweisE','ErfolgsnwHeadE','Magisterurkunde','Masterurkunde','Defensiourkunde','Magisterzeugnis',
|
||
'Laufzettel','StudienblattEng','Zahlung1','Terminliste','Studienbuchblatt','Veranstaltungen',
|
||
'Inskription','Studienerfolg','OutgoingLearning','OutgoingChangeL','LearningAgree','Zahlung','DichiaSost'
|
||
));
|
||
AddBerechtigungVorlage(array('lehre/lvplan'), array('Ressource'));
|
||
AddBerechtigungVorlage(array('wawi/inventar','assistenz','basis/betriebsmittel'), array('Uebernahme'));
|
||
AddBerechtigungVorlage(array('wawi/bestellung'), array('Bestellung'));
|
||
AddBerechtigungVorlage(array('admin','mitarbeiter','assistenz'), array('AccountInfo'));
|
||
|
||
// archivierbar boolean fuer public.tbl_vorlage
|
||
if(!@$db->db_query("SELECT archivierbar FROM public.tbl_vorlage LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN archivierbar boolean DEFAULT false;
|
||
UPDATE public.tbl_vorlage SET archivierbar=true
|
||
WHERE vorlage_kurzbz in('DiplSupplement','Zeugnis','ZeugnisEng', 'Bescheid',' BescheidEng');
|
||
COMMENT ON COLUMN public.tbl_vorlage.archivierbar IS 'Can this document be archived'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte archivierbar in public.tbl_vorlage hinzugefügt';
|
||
}
|
||
|
||
// signierbar boolean fuer public.tbl_vorlage
|
||
if(!@$db->db_query("SELECT signierbar FROM public.tbl_vorlage LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN signierbar boolean DEFAULT false;
|
||
COMMENT ON COLUMN public.tbl_vorlage.signierbar IS 'Can this document be digitally signed'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte signierbar in public.tbl_vorlage hinzugefügt';
|
||
}
|
||
|
||
// stud_selfservice boolean fuer public.tbl_vorlage
|
||
if(!@$db->db_query("SELECT stud_selfservice FROM public.tbl_vorlage LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN stud_selfservice boolean DEFAULT false;
|
||
COMMENT ON COLUMN public.tbl_vorlage.stud_selfservice IS 'Can this documents be downloaded if archived'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte stud_selfserice in public.tbl_vorlage hinzugefügt';
|
||
}
|
||
|
||
// dokument_kurzbz fuer public.tbl_vorlage
|
||
if(!@$db->db_query("SELECT dokument_kurzbz FROM public.tbl_vorlage LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN dokument_kurzbz varchar(8);
|
||
ALTER TABLE public.tbl_vorlage ADD CONSTRAINT fk_vorlage_dokument FOREIGN KEY (dokument_kurzbz) REFERENCES public.tbl_dokument (dokument_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
COMMENT ON COLUMN public.tbl_vorlage.dokument_kurzbz IS 'Connects a Template with the corresponding Dokument'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte dokument_kurzbz in public.tbl_vorlage hinzugefügt';
|
||
}
|
||
|
||
// Remove NOT NULL constraint on vorlaufszeit on public.tbl_ampel
|
||
if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_ampel' AND COLUMN_NAME = 'vorlaufzeit' AND is_nullable = 'NO'"))
|
||
{
|
||
if($db->db_num_rows($result) > 0)
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_ampel ALTER COLUMN vorlaufzeit DROP NOT NULL;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_ampel '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Removed NOT NULL constraint on "vorlaufszeit" from public.tbl_ampel<br>';
|
||
}
|
||
}
|
||
|
||
// Remove NOT NULL constraint on verfallszeit on public.tbl_ampel
|
||
if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_ampel' AND COLUMN_NAME = 'verfallszeit' AND is_nullable = 'NO'"))
|
||
{
|
||
if($db->db_num_rows($result) > 0 )
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_ampel ALTER COLUMN verfallszeit DROP NOT NULL;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_ampel '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Removed NOT NULL constraint on "verfallszeit" from public.tbl_ampel<br>';
|
||
}
|
||
}
|
||
|
||
// Tabelle person_lock hinzufügen
|
||
if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_person_lock LIMIT 1"))
|
||
{
|
||
$qry = "CREATE TABLE system.tbl_person_lock
|
||
(
|
||
lock_id bigint NOT NULL,
|
||
person_id integer NOT NULL,
|
||
uid varchar(32) NOT NULL,
|
||
zeitpunkt timestamp NOT NULL DEFAULT now(),
|
||
app varchar(32)
|
||
);
|
||
|
||
ALTER TABLE system.tbl_person_lock ADD CONSTRAINT pk_lock PRIMARY KEY (lock_id);
|
||
|
||
CREATE SEQUENCE system.tbl_person_lock_lock_id_seq
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
ALTER TABLE system.tbl_person_lock ALTER COLUMN lock_id SET DEFAULT nextval('system.tbl_person_lock_lock_id_seq');
|
||
|
||
GRANT SELECT, INSERT, DELETE ON system.tbl_person_lock TO vilesci;
|
||
GRANT SELECT, INSERT, DELETE ON system.tbl_person_lock TO web;
|
||
GRANT SELECT, UPDATE ON system.tbl_person_lock_lock_id_seq TO vilesci;
|
||
GRANT SELECT, UPDATE ON system.tbl_person_lock_lock_id_seq TO web;
|
||
|
||
ALTER TABLE system.tbl_person_lock ADD CONSTRAINT fk_lock_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_person_lock ADD CONSTRAINT fk_lock_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_person_lock ADD CONSTRAINT fk_lock_app FOREIGN KEY (app) REFERENCES system.tbl_app(app) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_person_lock '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_person_lock hinzugefügt<br>';
|
||
}
|
||
|
||
// Spalte bezeichnung_mehrsprachig in public.tbl_kontakttyp
|
||
if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM public.tbl_kontakttyp LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_kontakttyp ADD COLUMN bezeichnung_mehrsprachig varchar(128)[];";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_kontakttyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_kontakttyp: Spalte bezeichnung_mehrsprachig hinzugefuegt!<br>';
|
||
|
||
// Bezeichnung_mehrsprachig aus existierender Bezeichnung vorausfuellen. Ein Eintrag fuer jede Sprache mit Content aktiv.
|
||
$qry_help = "SELECT index FROM public.tbl_sprache WHERE content=TRUE;";
|
||
if(!$result = $db->db_query($qry_help))
|
||
echo '<strong>tbl_kontakttyp bezeichnung_mehrsprachig: Fehler beim ermitteln der Sprachen: '.$db->db_last_error().'</strong>';
|
||
else
|
||
{
|
||
$qry='';
|
||
while($row = $db->db_fetch_object($result))
|
||
$qry.= "UPDATE public.tbl_kontakttyp set bezeichnung_mehrsprachig[".$row->index."] = beschreibung;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Setzen der bezeichnung_mehrsprachig fehlgeschlagen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_kontakttyp: bezeichnung_mehrprachig automatisch aus existierender Beschreibung uebernommen<br>';
|
||
}
|
||
}
|
||
|
||
// INSERT Berechtigungen fuer web User erteilen fuer tbl_msg_status
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT SELECT, INSERT ON public.tbl_msg_status TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_msg_status Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'INSERT Rechte fuer public.tbl_msg_status fuer web user gesetzt ';
|
||
}
|
||
}
|
||
|
||
// UPDATE Berechtigungen fuer web User erteilen fuer tbl_msg_status
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='UPDATE'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT UPDATE ON public.tbl_msg_status TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_msg_status Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'UPDATE Rechte fuer public.tbl_msg_status fuer web user gesetzt ';
|
||
}
|
||
}
|
||
|
||
// UPDATE Berechtigungen fuer vilesci User erteilen fuer tbl_person_lock
|
||
if ($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_person_lock' AND table_schema='system' AND grantee='vilesci' AND privilege_type='UPDATE'"))
|
||
{
|
||
if ($db->db_num_rows($result) === 0)
|
||
{
|
||
$qry = "GRANT UPDATE ON system.tbl_person_lock TO vilesci;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_person_lock Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br> UPDATE Recht fuer system.tbl_person_lock fuer vilesci user gesetzt <br>';
|
||
}
|
||
}
|
||
|
||
|
||
// SELECT Berechtigung fuer web User erteilen fuer tbl_mobilitaet
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_mobilitaet' AND table_schema='bis' AND grantee='web' AND privilege_type='SELECT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT SELECT ON bis.tbl_mobilitaet TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_mobilitaet Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>SELECT Recht fuer bis.tbl_mobilitaet fuer web user gesetzt <br>';
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Kommentare fuer Datenbanktabellen
|
||
*/
|
||
if($result = $db->db_query("SELECT obj_description('public.ci_apikey'::regclass) as comment"))
|
||
{
|
||
if($row = $db->db_fetch_object($result))
|
||
{
|
||
if($row->comment == '')
|
||
{
|
||
$qry = "
|
||
COMMENT ON TABLE public.ci_apikey IS 'API Keys';
|
||
COMMENT ON TABLE public.tbl_adresse IS 'Person and Company Addresses';
|
||
COMMENT ON TABLE public.tbl_akte IS 'Documents of Persons';
|
||
COMMENT ON TABLE public.tbl_ampel IS 'Notification System';
|
||
COMMENT ON TABLE public.tbl_ampel_benutzer_bestaetigt IS 'Accepted Notifications';
|
||
COMMENT ON TABLE public.tbl_aufnahmeschluessel IS 'DEPRECATED';
|
||
COMMENT ON TABLE public.tbl_aufnahmetermin IS 'DEPRECATED';
|
||
COMMENT ON TABLE public.tbl_aufnahmetermintyp IS 'DEPRECATED';
|
||
COMMENT ON TABLE public.tbl_aufmerksamdurch IS 'Key-Table of Brand Awareness';
|
||
COMMENT ON TABLE public.tbl_bankverbindung IS 'Bank Data of Persons';
|
||
COMMENT ON TABLE public.tbl_benutzer IS 'List of Accounts';
|
||
COMMENT ON TABLE public.tbl_benutzerfunktion IS 'Functions of Persons';
|
||
COMMENT ON TABLE public.tbl_benutzergruppe IS 'Connects Users and Groups';
|
||
COMMENT ON TABLE public.tbl_bewerbungstermine IS 'Application Dates';
|
||
COMMENT ON TABLE public.tbl_buchungstyp IS 'Key-Table of Payment Types';
|
||
COMMENT ON TABLE public.tbl_dokument IS 'Key-Table of Documents';
|
||
COMMENT ON TABLE public.tbl_dokumentprestudent IS 'Accepted Documents of Degree Program';
|
||
COMMENT ON TABLE public.tbl_dokumentstudiengang IS 'Connection Table of Degree Programs and needed Documents';
|
||
COMMENT ON TABLE public.tbl_erhalter IS 'Company Caretaker Information';
|
||
COMMENT ON TABLE public.tbl_fachbereich IS 'Institute, Department';
|
||
COMMENT ON TABLE public.tbl_filter IS 'Predefined Dropdowns for Reports';
|
||
COMMENT ON TABLE public.tbl_firma IS 'Universities, Suppliers, Companies';
|
||
COMMENT ON TABLE public.tbl_firma_mobilitaetsprogramm IS 'Mobility programes of Universities';
|
||
COMMENT ON TABLE public.tbl_firma_organisationseinheit IS 'Connects Companys with Organisation Units';
|
||
COMMENT ON TABLE public.tbl_firmatag IS 'Tags for Companys';
|
||
COMMENT ON TABLE public.tbl_firmentyp IS 'Types of Companys';
|
||
COMMENT ON TABLE public.tbl_fotostatus IS 'Key-Table of Picture Upload Status';
|
||
COMMENT ON TABLE public.tbl_funktion IS 'Key-Table of User Functions';
|
||
COMMENT ON TABLE public.tbl_geschaeftsjahr IS 'Finacial Year';
|
||
COMMENT ON TABLE public.tbl_gruppe IS 'Study Groups, Mail Groups';
|
||
COMMENT ON TABLE public.tbl_kontakt IS 'Contacts of Persons';
|
||
COMMENT ON TABLE public.tbl_kontaktmedium IS 'PreInteressenten-Kontakttypen';
|
||
COMMENT ON TABLE public.tbl_kontakttyp IS 'Key-Table of Contact Types';
|
||
COMMENT ON TABLE public.tbl_konto IS 'Student Payments';
|
||
COMMENT ON TABLE public.tbl_lehrverband IS 'List of Groups';
|
||
COMMENT ON TABLE public.tbl_log IS 'Logging and Undo';
|
||
COMMENT ON TABLE public.tbl_mitarbeiter IS 'Employee Data';
|
||
COMMENT ON TABLE public.tbl_msg_attachment IS 'Messages Attachments';
|
||
COMMENT ON TABLE public.tbl_msg_message IS 'Messages';
|
||
COMMENT ON TABLE public.tbl_msg_recipient IS 'Message Recipients';
|
||
COMMENT ON TABLE public.tbl_msg_status IS 'Message Status';
|
||
COMMENT ON TABLE public.tbl_notiz IS 'Notes';
|
||
COMMENT ON TABLE public.tbl_notiz_dokument IS 'Documents assigned to Notes';
|
||
COMMENT ON TABLE public.tbl_notizzuordnung IS 'Connects Notes with Persons, Courses, …';
|
||
COMMENT ON TABLE public.tbl_organisationseinheit IS 'Organisation Units';
|
||
COMMENT ON TABLE public.tbl_organisationseinheittyp IS 'Key-Table of Types of Organisation Units';
|
||
COMMENT ON TABLE public.tbl_ort IS 'Teaching Rooms, Offices';
|
||
COMMENT ON TABLE public.tbl_ortraumtyp IS 'Connection of Rooms and Room Types';
|
||
COMMENT ON TABLE public.tbl_person IS 'List of all Persons';
|
||
COMMENT ON TABLE public.tbl_person_fotostatus IS 'Connects Picture Upload States with Persons';
|
||
COMMENT ON TABLE public.tbl_personfunktionstandort IS 'Contact Persons of a Company';
|
||
COMMENT ON TABLE public.tbl_preincoming IS 'Incoming Registration';
|
||
COMMENT ON TABLE public.tbl_preincoming_lehrveranstaltung IS 'Incoming Courses';
|
||
COMMENT ON TABLE public.tbl_preinteressent IS 'DEPRECATED';
|
||
COMMENT ON TABLE public.tbl_preinteressentstudiengang IS 'DEPRECATED';
|
||
COMMENT ON TABLE public.tbl_preoutgoing IS 'Outgoing Data';
|
||
COMMENT ON TABLE public.tbl_preoutgoing_firma IS 'Outgoing University';
|
||
COMMENT ON TABLE public.tbl_preoutgoing_lehrveranstaltung IS 'Visited Courses of Outgoings';
|
||
COMMENT ON TABLE public.tbl_preoutgoing_preoutgoing_status IS 'Ougoing Status';
|
||
COMMENT ON TABLE public.tbl_preoutgoing_status IS 'Key-Table of Outgoing Status';
|
||
COMMENT ON TABLE public.tbl_prestudent IS 'Relation Person-DegreeProgram';
|
||
COMMENT ON TABLE public.tbl_prestudentstatus IS 'Student History';
|
||
COMMENT ON TABLE public.tbl_raumtyp IS 'Room Types';
|
||
COMMENT ON TABLE public.tbl_reihungstest IS 'Placement Tests';
|
||
COMMENT ON TABLE public.tbl_rt_ort IS 'Connection Room – Placementtest';
|
||
COMMENT ON TABLE public.tbl_rt_person IS 'Connection Person – Placementtest';
|
||
COMMENT ON TABLE public.tbl_rt_studienplan IS 'Connection StudyPlan – Placementtest';
|
||
COMMENT ON TABLE public.tbl_semesterwochen IS 'Number of Weeks per Semester';
|
||
COMMENT ON TABLE public.tbl_service IS 'ServiceLevelAgreements';
|
||
COMMENT ON TABLE public.tbl_sprache IS 'Key-Table of Languages';
|
||
COMMENT ON TABLE public.tbl_standort IS 'Company Locations';
|
||
COMMENT ON TABLE public.tbl_statistik IS 'Statistics';
|
||
COMMENT ON TABLE public.tbl_status IS 'Key-Table of Student Status';
|
||
COMMENT ON TABLE public.tbl_status_grund IS 'Key-Table of Reasons for Student Status Changes';
|
||
COMMENT ON TABLE public.tbl_student IS 'List of Students';
|
||
COMMENT ON TABLE public.tbl_studentlehrverband IS 'Connection of Students to Semester and Groups';
|
||
COMMENT ON TABLE public.tbl_studiengang IS 'List of Degree Programs';
|
||
COMMENT ON TABLE public.tbl_studiengangstyp IS 'Key-Table of Degree Program Types';
|
||
COMMENT ON TABLE public.tbl_studienjahr IS 'Key-Table of Study Year';
|
||
COMMENT ON TABLE public.tbl_studiensemester IS 'Key-Table of Study Semester';
|
||
COMMENT ON TABLE public.tbl_tag IS 'Orders and Company Tags';
|
||
COMMENT ON TABLE public.tbl_variable IS 'User Variables';
|
||
COMMENT ON TABLE public.tbl_vorlage IS 'Key-Table of Document Templates';
|
||
COMMENT ON TABLE public.tbl_vorlagedokument IS 'Connects Documents with Templates';
|
||
COMMENT ON TABLE public.tbl_vorlagestudiengang IS 'Document Templates of Degree Programs';
|
||
COMMENT ON TABLE bis.tbl_archiv IS 'Ministery Report archive';
|
||
COMMENT ON TABLE bis.tbl_ausbildung IS 'Key-Table of Highest Education of Employees';
|
||
COMMENT ON TABLE bis.tbl_berufstaetigkeit IS 'Key-Table of Professional Activity of Students';
|
||
COMMENT ON TABLE bis.tbl_beschaeftigungsart1 IS 'Key-Table of Contract Types';
|
||
COMMENT ON TABLE bis.tbl_beschaeftigungsart2 IS 'Key-Table of Contract Types';
|
||
COMMENT ON TABLE bis.tbl_beschaeftigungsausmass IS 'Key-Table of Amount of Workinghours';
|
||
COMMENT ON TABLE bis.tbl_besqual IS 'Key-Table of Employee Qualification';
|
||
COMMENT ON TABLE bis.tbl_bisfunktion IS 'Summary of Teaching Hours per Lector';
|
||
COMMENT ON TABLE bis.tbl_bisio IS 'Incoming, Outgoing Mobility';
|
||
COMMENT ON TABLE bis.tbl_bisorgform IS 'Official Organisation Forms for BIS-Meldung';
|
||
COMMENT ON TABLE bis.tbl_bisverwendung IS 'Employee Contracts';
|
||
COMMENT ON TABLE bis.tbl_bundesland IS 'Federal States';
|
||
COMMENT ON TABLE bis.tbl_entwicklungsteam IS 'Members of the Degree Program Development Team';
|
||
COMMENT ON TABLE bis.tbl_gemeinde IS 'Key-Table of Local Community';
|
||
COMMENT ON TABLE bis.tbl_gsprogramm IS 'Joint Degree Programs';
|
||
COMMENT ON TABLE bis.tbl_gsprogrammtyp IS 'Joint Degree Programs';
|
||
COMMENT ON TABLE bis.tbl_gsstudientyp IS 'Joint Degree Programs';
|
||
COMMENT ON TABLE bis.tbl_hauptberuf IS 'Key-Table of Main Job';
|
||
COMMENT ON TABLE bis.tbl_lgartcode IS 'Key-Table of Program Types';
|
||
COMMENT ON TABLE bis.tbl_mobilitaet IS 'Joint Degree Programs of Students';
|
||
COMMENT ON TABLE bis.tbl_mobilitaetsprogramm IS 'Key-Table of Mobility Programs';
|
||
COMMENT ON TABLE bis.tbl_mobilitaetstyp IS 'Key-Table of Type of international activity';
|
||
COMMENT ON TABLE bis.tbl_nation IS 'Key-Table of Nations';
|
||
COMMENT ON TABLE bis.tbl_orgform IS 'Key-Table of Organisation Forms of Degree Programs';
|
||
COMMENT ON TABLE bis.tbl_verwendung IS 'Key-Table of Employee Functions';
|
||
COMMENT ON TABLE bis.tbl_zgv IS 'Key-Table of Requirements Bachelor';
|
||
COMMENT ON TABLE bis.tbl_zgvdoktor IS 'Key-Table of Requirements Doktor';
|
||
COMMENT ON TABLE bis.tbl_zgvgruppe IS 'Aliqoute Reduction Groups';
|
||
COMMENT ON TABLE bis.tbl_zgvgruppe_zuordnung IS 'Aliqoute Reduction Groups';
|
||
COMMENT ON TABLE bis.tbl_zgvmaster IS 'Key-Table of Requirements Master';
|
||
COMMENT ON TABLE bis.tbl_zweck IS 'Key-Table of Purpose of Semester Abroad';
|
||
COMMENT ON TABLE campus.tbl_abgabe IS 'Uploads to Kreuzerltool';
|
||
COMMENT ON TABLE campus.tbl_anwesenheit IS 'Student Attendance';
|
||
COMMENT ON TABLE campus.tbl_beispiel IS 'Kreuzerltool Entries';
|
||
COMMENT ON TABLE campus.tbl_benutzerlvstudiensemester IS 'Subscriptions to Elective Courses';
|
||
COMMENT ON TABLE campus.tbl_content IS 'Content Pages';
|
||
COMMENT ON TABLE campus.tbl_contentchild IS 'Building the Content Tree';
|
||
COMMENT ON TABLE campus.tbl_contentgruppe IS 'Content Permissions';
|
||
COMMENT ON TABLE campus.tbl_contentlog IS 'Locking Log of Content Pages';
|
||
COMMENT ON TABLE campus.tbl_contentsprache IS 'CMS Content in Different Languages';
|
||
COMMENT ON TABLE campus.tbl_coodle IS 'Appointment Surveys';
|
||
COMMENT ON TABLE campus.tbl_coodle_ressource IS 'Ressources Assigned to a Survey';
|
||
COMMENT ON TABLE campus.tbl_coodle_ressource_termin IS 'Selected Time Slots of a Survey';
|
||
COMMENT ON TABLE campus.tbl_coodle_status IS 'Key Table of State of the Survey';
|
||
COMMENT ON TABLE campus.tbl_coodle_termin IS 'Time Slots of a Survey';
|
||
COMMENT ON TABLE campus.tbl_dms IS 'List of CMS Documents';
|
||
COMMENT ON TABLE campus.tbl_dms_kategorie IS 'Document Categories';
|
||
COMMENT ON TABLE campus.tbl_dms_kategorie_gruppe IS 'Restrict Access to Document Categories';
|
||
COMMENT ON TABLE campus.tbl_dms_version IS 'Versions of Documents';
|
||
COMMENT ON TABLE campus.tbl_erreichbarkeit IS 'Key Table of Reachability in Case of Absence';
|
||
COMMENT ON TABLE campus.tbl_feedback IS 'DEPRECATED';
|
||
COMMENT ON TABLE campus.tbl_freebusy IS 'List of FreeBusy Calenders of a Person';
|
||
COMMENT ON TABLE campus.tbl_freebusytyp IS 'Key Table of Supported FreeBusy Urls';
|
||
COMMENT ON TABLE campus.tbl_infoscreen IS 'List of Aavailable Information Monitors';
|
||
COMMENT ON TABLE campus.tbl_infoscreen_content IS 'Content of Information Monitors';
|
||
COMMENT ON TABLE campus.tbl_legesamtnote IS 'Lehreinheit Grades';
|
||
COMMENT ON TABLE campus.tbl_lehre_tools IS 'Additional Course Tools';
|
||
COMMENT ON TABLE campus.tbl_lehre_tools_organisationseinheit IS 'Connects Courses of a Organisationunit to Tools';
|
||
COMMENT ON TABLE campus.tbl_lehrveranstaltung_pruefung IS 'Connects Multiple Courses with one Exam';
|
||
COMMENT ON TABLE campus.tbl_lvgesamtnote IS 'Course Grades Lector';
|
||
COMMENT ON TABLE campus.tbl_lvinfo IS 'DEPRECATED';
|
||
COMMENT ON TABLE campus.tbl_news IS 'studiengang_kz=0 and Semester=NULL -> global News
|
||
studiengang_kz=0 and Semester=0 -> Elective Course News
|
||
studiengang_kz=0 and Semester>0 -> News for selected Semester in all Degree Programs
|
||
studiengang_kz>0 and (Semester=NULL or Semester=0) -> all Semesters in Degree Program
|
||
studiengang_kz>0 and Semester>0 -> News for selected Semester in Degree Program';
|
||
COMMENT ON TABLE campus.tbl_notenschluessel IS 'Kreuzerltool Grading Scheme';
|
||
COMMENT ON TABLE campus.tbl_notenschluesseluebung IS 'Kreuzerltool Grading Scheme';
|
||
COMMENT ON TABLE campus.tbl_paabgabe IS 'Project Submissions';
|
||
COMMENT ON TABLE campus.tbl_paabgabetyp IS 'Key Table of Types of Submissions';
|
||
COMMENT ON TABLE campus.tbl_pruefung IS 'Exams';
|
||
COMMENT ON TABLE campus.tbl_pruefungsanmeldung IS 'Subscriptions to Exams';
|
||
COMMENT ON TABLE campus.tbl_pruefungsfenster IS 'Definition Exam Weeks';
|
||
COMMENT ON TABLE campus.tbl_pruefungsstatus IS 'Key Table of Exam Status';
|
||
COMMENT ON TABLE campus.tbl_pruefungstermin IS 'Exam Time Slots';
|
||
COMMENT ON TABLE campus.tbl_reservierung IS 'Room Reservation';
|
||
COMMENT ON TABLE campus.tbl_resturlaub IS 'DEPRECATED';
|
||
COMMENT ON TABLE campus.tbl_studentbeispiel IS 'Selected Entry in Kreuzerltool';
|
||
COMMENT ON TABLE campus.tbl_studentuebung IS 'Exercise Grades in Kreuzerltool';
|
||
COMMENT ON TABLE campus.tbl_template IS 'Templates for CMS Pages';
|
||
COMMENT ON TABLE campus.tbl_uebung IS 'Exercises in Kreuzerltool';
|
||
COMMENT ON TABLE campus.tbl_veranstaltung IS 'Events';
|
||
COMMENT ON TABLE campus.tbl_veranstaltungskategorie IS 'Event Categories';
|
||
COMMENT ON TABLE campus.tbl_zeitaufzeichnung IS 'Time Sheets of Employees';
|
||
COMMENT ON TABLE campus.tbl_zeitsperre IS 'Absences of Employees';
|
||
COMMENT ON TABLE campus.tbl_zeitsperretyp IS 'Type of Absences';
|
||
COMMENT ON TABLE campus.tbl_zeitwunsch IS 'Teaching Time Preferences';
|
||
COMMENT ON TABLE lehre.tbl_abschlussbeurteilung IS 'Key Table of Final Exam Grades';
|
||
COMMENT ON TABLE lehre.tbl_abschlusspruefung IS 'Final Exam';
|
||
COMMENT ON TABLE lehre.tbl_akadgrad IS 'Academic Title Assigned by Degree Program';
|
||
COMMENT ON TABLE lehre.tbl_anrechnung IS 'Course Crediting';
|
||
COMMENT ON TABLE lehre.tbl_anrechnung_begruendung IS 'Course Crediting Reasons';
|
||
COMMENT ON TABLE lehre.tbl_betreuerart IS 'Key Table of Type of Project Supervisor';
|
||
COMMENT ON TABLE lehre.tbl_ferien IS 'Holidays';
|
||
COMMENT ON TABLE lehre.tbl_lehreinheit IS 'Course Parts';
|
||
COMMENT ON TABLE lehre.tbl_lehreinheitgruppe IS 'Groups Assigned to Course';
|
||
COMMENT ON TABLE lehre.tbl_lehreinheitmitarbeiter IS 'Lectures Assigned to Course';
|
||
COMMENT ON TABLE lehre.tbl_lehrfach IS 'DEPRECATED';
|
||
COMMENT ON TABLE lehre.tbl_lehrform IS 'Key Table of Teached Course Types';
|
||
COMMENT ON TABLE lehre.tbl_lehrfunktion IS 'Key Table of Lector Functions in a Course';
|
||
COMMENT ON TABLE lehre.tbl_lehrmittel IS 'DEPRECATED';
|
||
COMMENT ON TABLE lehre.tbl_lehrtyp IS 'Key Table of Course Types';
|
||
COMMENT ON TABLE lehre.tbl_lehrveranstaltung IS 'Courses, Modules';
|
||
COMMENT ON TABLE lehre.tbl_lehrveranstaltung_kompatibel IS 'Course Compatibility';
|
||
COMMENT ON TABLE lehre.tbl_lvangebot IS 'Offered Course Times';
|
||
COMMENT ON TABLE lehre.tbl_lvregel IS 'Course Attendance Rules';
|
||
COMMENT ON TABLE lehre.tbl_lvregeltyp IS 'Key Table of Course Rule Types';
|
||
COMMENT ON TABLE lehre.tbl_moodle IS 'DEPRECATED';
|
||
COMMENT ON TABLE lehre.tbl_moodle_version IS 'DEPRECATED';
|
||
COMMENT ON TABLE lehre.tbl_note IS 'Key Table of Grades';
|
||
COMMENT ON TABLE lehre.tbl_notenschluessel IS 'Course Grading Scheme';
|
||
COMMENT ON TABLE lehre.tbl_notenschluesselaufteilung IS 'Course Grading Scheme Details';
|
||
COMMENT ON TABLE lehre.tbl_notenschluesselzuordnung IS 'Connection Between Grading Scheme and Course/Degree Program';
|
||
COMMENT ON TABLE lehre.tbl_projektarbeit IS 'Projects';
|
||
COMMENT ON TABLE lehre.tbl_projektbetreuer IS 'Project Supervisor';
|
||
COMMENT ON TABLE lehre.tbl_projekttyp IS 'Key Table of Project Type';
|
||
COMMENT ON TABLE lehre.tbl_pruefung IS 'Exams';
|
||
COMMENT ON TABLE lehre.tbl_pruefungstyp IS 'Key Table of Type of Exams';
|
||
COMMENT ON TABLE lehre.tbl_studienordnung IS 'Additional Information for Degree Programs and Study Regulations';
|
||
COMMENT ON TABLE lehre.tbl_studienordnung_semester IS 'DEPRECATED';
|
||
COMMENT ON TABLE lehre.tbl_studienordnungstatus IS 'Key Table of Study Regulation Status';
|
||
COMMENT ON TABLE lehre.tbl_studienplan IS 'Study Plan';
|
||
COMMENT ON TABLE lehre.tbl_studienplan_lehrveranstaltung IS 'Connects Courses with a Study Plan';
|
||
COMMENT ON TABLE lehre.tbl_studienplan_semester IS 'Valid Semesters of a Study Plan';
|
||
COMMENT ON TABLE lehre.tbl_studienplatz IS 'Defines the Maximum Study Places per Degree Program';
|
||
COMMENT ON TABLE lehre.tbl_stunde IS 'Time Grid of Schedule';
|
||
COMMENT ON TABLE lehre.tbl_stundenplan IS 'Schedule (Productive Data)';
|
||
COMMENT ON TABLE lehre.tbl_stundenplan_betriebsmittel IS 'Required Teaching Material';
|
||
COMMENT ON TABLE lehre.tbl_stundenplandev IS 'Schedule (Developing Data)';
|
||
COMMENT ON TABLE lehre.tbl_vertrag IS 'Teaching Contracts';
|
||
COMMENT ON TABLE lehre.tbl_vertrag_vertragsstatus IS 'Status History of Contracts';
|
||
COMMENT ON TABLE lehre.tbl_vertragsstatus IS 'Key Table of Contract Status';
|
||
COMMENT ON TABLE lehre.tbl_vertragstyp IS 'Key Table of Type of Contracts';
|
||
COMMENT ON TABLE lehre.tbl_zeitfenster IS 'DEPRECATED';
|
||
COMMENT ON TABLE lehre.tbl_zeugnis IS 'DEPRECATED';
|
||
COMMENT ON TABLE lehre.tbl_zeugnisnote IS 'Final Grades for Courses';
|
||
COMMENT ON TABLE system.tbl_app IS 'FH Complete Applications';
|
||
COMMENT ON TABLE system.tbl_appdaten IS 'App Specific Data';
|
||
COMMENT ON TABLE system.tbl_benutzerrolle IS 'Assigns Permissions and Roles to Users';
|
||
COMMENT ON TABLE system.tbl_berechtigung IS 'Key Table of Permissions';
|
||
COMMENT ON TABLE system.tbl_cronjob IS 'Automatic Cronjobs';
|
||
COMMENT ON TABLE system.tbl_extensions IS 'Table to Manage FH Complete Extensions';
|
||
COMMENT ON TABLE system.tbl_filters IS 'Table to Manage FH Complete Filters';
|
||
COMMENT ON TABLE system.tbl_log IS 'Person Log';
|
||
COMMENT ON TABLE system.tbl_logtype IS 'Key Table of Types of Log Entries';
|
||
COMMENT ON TABLE system.tbl_phrase IS 'Multi Language Phrases';
|
||
COMMENT ON TABLE system.tbl_phrasentext IS 'Multi Language Phrases Text';
|
||
COMMENT ON TABLE system.tbl_person_lock IS 'Persons that are locked for editing';
|
||
COMMENT ON TABLE system.tbl_rolle IS 'Permission Roles';
|
||
COMMENT ON TABLE system.tbl_rolleberechtigung IS 'Assigns Permissions to Roles';
|
||
COMMENT ON TABLE system.tbl_server IS 'List of Servers for Cronjobs';
|
||
COMMENT ON TABLE system.tbl_udf IS 'User Defined Fields';
|
||
COMMENT ON TABLE system.tbl_verarbeitungstaetigkeit IS 'Processing Activities';
|
||
COMMENT ON TABLE system.tbl_webservicelog IS 'Webservice Log';
|
||
COMMENT ON TABLE system.tbl_webservicerecht IS 'Webservice Permissions';
|
||
COMMENT ON TABLE system.tbl_webservicetyp IS 'Key Table of Webservice Types';
|
||
COMMENT ON TABLE fue.tbl_aktivitaet IS 'Timesheet SLA Activity';
|
||
COMMENT ON TABLE fue.tbl_aufwandstyp IS 'Estimation Scale Type';
|
||
COMMENT ON TABLE fue.tbl_projekt IS 'Projects';
|
||
COMMENT ON TABLE fue.tbl_projekt_dokument IS 'Assigns a DMS Document to a Project';
|
||
COMMENT ON TABLE fue.tbl_projekt_ressource IS 'Assigns a Ressource to a Project';
|
||
COMMENT ON TABLE fue.tbl_projektphase IS 'Project Phases';
|
||
COMMENT ON TABLE fue.tbl_projekttask IS 'Project Tasks';
|
||
COMMENT ON TABLE fue.tbl_ressource IS 'Project Ressources (Persons, Companys, Inventory)';
|
||
COMMENT ON TABLE fue.tbl_scrumsprint IS 'DEPRECATED';
|
||
COMMENT ON TABLE fue.tbl_scrumteam IS 'DEPRECATED';
|
||
COMMENT ON TABLE wawi.tbl_aufteilung IS 'DEPRECATED';
|
||
COMMENT ON TABLE wawi.tbl_aufteilung_default IS 'DEPRECATED';
|
||
COMMENT ON TABLE wawi.tbl_bestelldetail IS 'Order Details';
|
||
COMMENT ON TABLE wawi.tbl_bestelldetailtag IS 'Order Details Tags';
|
||
COMMENT ON TABLE wawi.tbl_bestellstatus IS 'Key Table of Order Status';
|
||
COMMENT ON TABLE wawi.tbl_bestellung IS 'Orders';
|
||
COMMENT ON TABLE wawi.tbl_bestellung_bestellstatus IS 'Order Status History';
|
||
COMMENT ON TABLE wawi.tbl_bestellungtag IS 'Order Tags';
|
||
COMMENT ON TABLE wawi.tbl_betriebsmittel IS 'Inventory';
|
||
COMMENT ON TABLE wawi.tbl_betriebsmittel_betriebsmittelstatus IS 'Inventory Status History';
|
||
COMMENT ON TABLE wawi.tbl_betriebsmittelperson IS 'Assigns Inventory to a Person';
|
||
COMMENT ON TABLE wawi.tbl_betriebsmittelstatus IS 'Key Table of Inventory Status';
|
||
COMMENT ON TABLE wawi.tbl_betriebsmitteltyp IS 'Key Table of Inventory Type';
|
||
COMMENT ON TABLE wawi.tbl_buchung IS 'Accounting of Lecturers (Addon-Abrechnung)';
|
||
COMMENT ON TABLE wawi.tbl_buchungstyp IS 'Key Table of Booking Types';
|
||
COMMENT ON TABLE wawi.tbl_budget IS 'Budget per Cost Unit';
|
||
COMMENT ON TABLE wawi.tbl_konto IS 'Accounts';
|
||
COMMENT ON TABLE wawi.tbl_konto_kostenstelle IS 'Connects Multiple Accounts with a Cost Unit';
|
||
COMMENT ON TABLE wawi.tbl_kostenstelle IS 'Cost Units';
|
||
COMMENT ON TABLE wawi.tbl_projekt_bestellung IS 'Assigns Orders to a Project';
|
||
COMMENT ON TABLE wawi.tbl_rechnung IS 'Invoice';
|
||
COMMENT ON TABLE wawi.tbl_rechnungsbetrag IS 'Invoice Amount';
|
||
COMMENT ON TABLE wawi.tbl_rechnungstyp IS 'Key Table of Invoice Types';
|
||
COMMENT ON TABLE wawi.tbl_zahlungstyp IS 'Key Table of Payment Types';
|
||
COMMENT ON TABLE testtool.tbl_ablauf IS 'List of Sections per Degree Program';
|
||
COMMENT ON TABLE testtool.tbl_ablauf_vorgaben IS 'Additional Test Configuration';
|
||
COMMENT ON TABLE testtool.tbl_antwort IS 'Answers of the Candidate';
|
||
COMMENT ON TABLE testtool.tbl_frage IS 'List of Questions';
|
||
COMMENT ON TABLE testtool.tbl_frage_sprache IS 'Questions in Different Languages';
|
||
COMMENT ON TABLE testtool.tbl_gebiet IS 'List of Test Sections';
|
||
COMMENT ON TABLE testtool.tbl_kategorie IS 'DEPRECATED';
|
||
COMMENT ON TABLE testtool.tbl_kriterien IS 'DEPRECATED';
|
||
COMMENT ON TABLE testtool.tbl_pruefling IS 'List of Tested Candidates';
|
||
COMMENT ON TABLE testtool.tbl_pruefling_frage IS 'Questions Given to a Candidate';
|
||
COMMENT ON TABLE testtool.tbl_vorschlag IS 'Available Answers to a Question';
|
||
COMMENT ON TABLE testtool.tbl_vorschlag_sprache IS 'Answers in Different Languages';
|
||
|
||
COMMENT ON SCHEMA addon IS 'Extensions and Addons';
|
||
COMMENT ON SCHEMA bis IS 'Key Table of and Additional Tables for Ministery Report';
|
||
COMMENT ON SCHEMA campus IS 'Campus Management and CIS';
|
||
COMMENT ON SCHEMA fue IS 'Projectmanagement';
|
||
COMMENT ON SCHEMA lehre IS 'Teaching and Learning';
|
||
COMMENT ON SCHEMA public IS 'Base Data';
|
||
COMMENT ON SCHEMA reports IS 'Cachingtables for Reporting';
|
||
COMMENT ON SCHEMA sync IS 'Synchronisation Data';
|
||
COMMENT ON SCHEMA system IS 'Permissions, Logging';
|
||
COMMENT ON SCHEMA testtool IS 'Placement Test';
|
||
COMMENT ON SCHEMA wawi IS 'Inventory, Orders';
|
||
|
||
COMMENT ON COLUMN public.tbl_prestudent.rt_punkte1 IS 'DEPRECATED';
|
||
COMMENT ON COLUMN public.tbl_prestudent.rt_punkte2 IS 'DEPRECATED';
|
||
COMMENT ON COLUMN public.tbl_prestudent.rt_punkte3 IS 'DEPRECATED';
|
||
COMMENT ON COLUMN public.tbl_prestudent.anmeldungreihungstest IS 'DEPRECATED';
|
||
COMMENT ON COLUMN public.tbl_prestudent.reihungstest_id IS 'DEPRECATED';
|
||
COMMENT ON COLUMN public.tbl_prestudent.ausstellungsstaat IS 'DEPRECATED';
|
||
COMMENT ON COLUMN public.tbl_prestudent.aufnahmeschluessel IS 'DEPRECATED';
|
||
COMMENT ON COLUMN lehre.tbl_lehrveranstaltung.old_lehrfach_id IS 'DEPRECATED';
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Comments: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'Kommentare fuer DB Datenbanktabellen hinzugefügt';
|
||
}
|
||
}
|
||
}
|
||
|
||
if (!$result = @$db->db_query("SELECT projekt_id FROM fue.tbl_projekt LIMIT 1"))
|
||
{
|
||
$qry = "CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
GRANT SELECT, UPDATE ON fue.tbl_projekt_projekt_id_seq TO vilesci;
|
||
ALTER TABLE fue.tbl_projekt ADD COLUMN projekt_id integer NOT NULL DEFAULT nextval('fue.tbl_projekt_projekt_id_seq');
|
||
ALTER TABLE fue.tbl_projekt ADD CONSTRAINT uk_tbl_projekt_projekt_id UNIQUE (projekt_id);
|
||
";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Projekt: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte projekt_id für fue.tbl_projekt hinzugefügt';
|
||
|
||
}
|
||
|
||
// add column zeitaufzeichnung to fue.tbl_project
|
||
if (!$result = @$db->db_query("SELECT zeitaufzeichnung FROM fue.tbl_projekt LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE fue.tbl_projekt ADD COLUMN zeitaufzeichnung BOOLEAN NOT NULL DEFAULT true;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>fue.tbl_projekt '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte zeitaufzeichnung zu fue.tbl_projekt hinzugefügt';
|
||
}
|
||
|
||
// add column zeitaufzeichnung to fue.tbl_projectphase
|
||
if (!$result = @$db->db_query("SELECT zeitaufzeichnung FROM fue.tbl_projektphase LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE fue.tbl_projektphase ADD COLUMN zeitaufzeichnung BOOLEAN NOT NULL DEFAULT true;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>fue.tbl_projektphase '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte zeitaufzeichnung zu fue.tbl_projektphase hinzugefügt';
|
||
}
|
||
|
||
// Extension Schema
|
||
if ($result = $db->db_query("SELECT schema_name FROM information_schema.schemata WHERE schema_name='extension'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "CREATE SCHEMA extension;
|
||
COMMENT ON SCHEMA extension is 'Extension Tables';";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Extension: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neues Schema extension hinzugefuegt';
|
||
}
|
||
}
|
||
|
||
// Berechtigungen fuer web-user erteilen Log in public.tbl_log zu schreiben
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "GRANT SELECT, INSERT ON public.tbl_log TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Log Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Web User Insert fuer public.tbl_log berechtigt';
|
||
}
|
||
}
|
||
|
||
// ADD COLUMN oe_kurzbz AND berechtigung_kurzbz to campus.tbl_dms_kategorie
|
||
if(!@$db->db_query("SELECT oe_kurzbz FROM campus.tbl_dms_kategorie LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE campus.tbl_dms_kategorie ADD COLUMN oe_kurzbz varchar(32);
|
||
ALTER TABLE campus.tbl_dms_kategorie ADD COLUMN berechtigung_kurzbz varchar(32);
|
||
|
||
ALTER TABLE campus.tbl_dms_kategorie ADD CONSTRAINT fk_dms_kategorie_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE campus.tbl_dms_kategorie ADD CONSTRAINT fk_dms_kategorie_berechtigung_kurzbz FOREIGN KEY (berechtigung_kurzbz) REFERENCES system.tbl_berechtigung(berechtigung_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_dms_kategorie '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte oe_kurzbz und berechtigung_kurzbz in campus.tbl_dms_kategorie hinzugefügt';
|
||
}
|
||
|
||
// ADD COLUMN cis_suche (boolean) AND schlagworte to campus.tbl_dms_version
|
||
if(!@$db->db_query("SELECT cis_suche FROM campus.tbl_dms_version LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE campus.tbl_dms_version ADD COLUMN cis_suche boolean NOT NULL DEFAULT false;
|
||
ALTER TABLE campus.tbl_dms_version ADD COLUMN schlagworte text;
|
||
|
||
COMMENT ON COLUMN campus.tbl_dms_version.schlagworte IS 'Semicolon-separated string with keywords for CIS-search';
|
||
UPDATE campus.tbl_dms_version SET cis_suche=true WHERE beschreibung != '';
|
||
UPDATE campus.tbl_dms_version SET schlagworte=beschreibung WHERE beschreibung != '';
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_dms_version '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' <br>Spalte cis_suche und schlagworte in campus.tbl_dms_version hinzugefügt.
|
||
<br><b>Alle DMS-Einträge mit befülltem Beschreibungstext wurden auf cis_suche=true gesetzt</b>
|
||
<br><b>Bei allen DMS-Einträge mit befülltem Beschreibungstext, wurde dieser in die Spalte schlagworte übernommen</b>';
|
||
}
|
||
|
||
//---------------------------------------------------------------------------------------------------------------------
|
||
// Start changes to Phrases
|
||
|
||
// ADD COLUMN category to system.tbl_phrase
|
||
if (!$result = @$db->db_query("SELECT category FROM system.tbl_phrase LIMIT 1"))
|
||
{
|
||
$qry = 'ALTER TABLE system.tbl_phrase ADD COLUMN category character varying(64);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_phrase: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added column category to table system.tbl_phrase';
|
||
|
||
// COMMENT ON TABLE system.tbl_phrase
|
||
$qry = 'COMMENT ON COLUMN system.tbl_phrase.category IS \'To divide the phrases into categories\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to system.tbl_phrase.category: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to system.tbl_phrase.category';
|
||
}
|
||
|
||
// UNIQUE INDEX uidx_phrase_category_phrase
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_phrase_category_phrase'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'CREATE UNIQUE INDEX uidx_phrase_category_phrase ON system.tbl_phrase USING btree (category, phrase);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>uidx_phrase_category_phrase '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created unique uidx_phrase_category_phrase';
|
||
}
|
||
}
|
||
|
||
// UNIQUE INDEX uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'CREATE UNIQUE INDEX uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz ON system.tbl_phrasentext USING btree (phrase_id, sprache, orgeinheit_kurzbz, orgform_kurzbz);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created unique uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz';
|
||
}
|
||
}
|
||
|
||
// End changes to Phrases
|
||
// ---------------------------------------------------------------------------------------------------------------------
|
||
|
||
// Remove NOT NULL constraint on matrikelnr on public.tbl_student
|
||
if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_student' AND COLUMN_NAME = 'matrikelnr' AND is_nullable = 'NO'"))
|
||
{
|
||
if($db->db_num_rows($result) > 0)
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_student ALTER COLUMN matrikelnr DROP NOT NULL;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_student '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Removed NOT NULL constraint on "matrikelnr" from public.tbl_student<br>';
|
||
}
|
||
}
|
||
|
||
// public.vw_prestudentstatus Datum zur Reihungstestanmeldung aus tbl_rt_person
|
||
if($result = $db->db_query("SELECT view_definition FROM information_schema.views WHERE table_schema='public' AND table_name='vw_prestudentstatus'"))
|
||
{
|
||
if($row = $db->db_fetch_object($result))
|
||
{
|
||
if(!mb_stristr($row->view_definition, 'tbl_rt_person'))
|
||
{
|
||
$qry = "
|
||
CREATE OR REPLACE VIEW public.vw_prestudentstatus AS
|
||
SELECT tbl_prestudent.prestudent_id,
|
||
tbl_person.person_id,
|
||
tbl_person.staatsbuergerschaft,
|
||
tbl_person.geburtsnation,
|
||
tbl_person.sprache,
|
||
tbl_person.anrede,
|
||
tbl_person.titelpost,
|
||
tbl_person.titelpre,
|
||
tbl_person.nachname,
|
||
tbl_person.vorname,
|
||
tbl_person.vornamen,
|
||
tbl_person.gebdatum,
|
||
tbl_person.gebort,
|
||
tbl_person.gebzeit,
|
||
tbl_person.foto,
|
||
tbl_person.homepage,
|
||
tbl_person.svnr,
|
||
tbl_person.ersatzkennzeichen,
|
||
tbl_person.familienstand,
|
||
tbl_person.geschlecht,
|
||
tbl_person.anzahlkinder,
|
||
tbl_person.aktiv,
|
||
tbl_person.bundesland_code,
|
||
tbl_person.kompetenzen,
|
||
tbl_person.kurzbeschreibung,
|
||
tbl_person.zugangscode,
|
||
tbl_person.foto_sperre,
|
||
tbl_person.matr_nr,
|
||
tbl_prestudent.aufmerksamdurch_kurzbz,
|
||
tbl_prestudent.studiengang_kz,
|
||
tbl_prestudent.berufstaetigkeit_code,
|
||
tbl_prestudent.ausbildungcode,
|
||
tbl_prestudent.zgv_code,
|
||
tbl_prestudent.zgvort,
|
||
tbl_prestudent.zgvdatum,
|
||
tbl_prestudent.zgvmas_code,
|
||
tbl_prestudent.zgvmaort,
|
||
tbl_prestudent.zgvmadatum,
|
||
tbl_prestudent.aufnahmeschluessel,
|
||
tbl_prestudent.facheinschlberuf,
|
||
tbl_prestudent.reihungstest_id,
|
||
(SELECT
|
||
COALESCE(anmeldedatum, tbl_rt_person.insertamum::date)
|
||
FROM
|
||
public.tbl_rt_person
|
||
JOIN public.tbl_reihungstest ON(rt_id=reihungstest_id)
|
||
JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||
WHERE
|
||
person_id=tbl_prestudent.person_id
|
||
AND tbl_reihungstest.studiensemester_kurzbz=prestudentstatus.studiensemester_kurzbz
|
||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||
ORDER BY anmeldedatum DESC, tbl_rt_person.insertamum DESC limit 1
|
||
) as anmeldungreihungstest,
|
||
tbl_prestudent.reihungstestangetreten,
|
||
tbl_prestudent.rt_gesamtpunkte,
|
||
tbl_prestudent.bismelden,
|
||
tbl_prestudent.anmerkung,
|
||
tbl_prestudent.dual,
|
||
tbl_prestudent.rt_punkte1,
|
||
tbl_prestudent.rt_punkte2,
|
||
tbl_prestudent.ausstellungsstaat,
|
||
tbl_prestudent.rt_punkte3,
|
||
tbl_prestudent.zgvdoktor_code,
|
||
tbl_prestudent.zgvdoktorort,
|
||
tbl_prestudent.zgvdoktordatum,
|
||
tbl_prestudent.mentor,
|
||
prestudentstatus.status_kurzbz,
|
||
prestudentstatus.studiensemester_kurzbz,
|
||
prestudentstatus.ausbildungssemester,
|
||
prestudentstatus.datum,
|
||
prestudentstatus.insertamum,
|
||
prestudentstatus.insertvon,
|
||
prestudentstatus.updateamum,
|
||
prestudentstatus.updatevon,
|
||
COALESCE(prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) AS orgform_kurzbz,
|
||
prestudentstatus.studienplan_id,
|
||
prestudentstatus.bestaetigtam,
|
||
prestudentstatus.bestaetigtvon,
|
||
prestudentstatus.fgm,
|
||
prestudentstatus.faktiv,
|
||
tbl_studiengang.kurzbz,
|
||
tbl_studiengang.kurzbzlang,
|
||
tbl_studiengang.typ,
|
||
tbl_studiensemester.start,
|
||
tbl_studiensemester.ende,
|
||
tbl_studiensemester.studienjahr_kurzbz,
|
||
substr(tbl_studiensemester.studiensemester_kurzbz::text, 3) || lower(substr(tbl_studiensemester.studiensemester_kurzbz::text, 1, 1)) AS studiensemester,
|
||
CASE
|
||
WHEN tbl_studiengang.typ = 'b'::bpchar AND tbl_prestudent.zgv_code IS NOT NULL OR tbl_studiengang.typ = 'm'::bpchar AND tbl_prestudent.zgvmas_code IS NOT NULL OR tbl_studiengang.typ = 'd'::bpchar AND tbl_prestudent.zgvdoktor_code IS NOT NULL THEN true
|
||
ELSE false
|
||
END AS zgv,
|
||
CASE
|
||
WHEN tbl_prestudentstatus.prestudent_id IS NULL THEN false
|
||
ELSE true
|
||
END AS student,
|
||
date_part('week'::text, prestudentstatus.datum) AS kw
|
||
FROM public.tbl_person
|
||
JOIN public.tbl_prestudent USING (person_id)
|
||
JOIN public.tbl_prestudentstatus prestudentstatus USING (prestudent_id)
|
||
JOIN public.tbl_studiengang USING (studiengang_kz)
|
||
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
|
||
LEFT JOIN public.tbl_prestudentstatus ON tbl_prestudentstatus.prestudent_id = prestudentstatus.prestudent_id AND tbl_prestudentstatus.studiensemester_kurzbz::text = prestudentstatus.studiensemester_kurzbz::text AND tbl_prestudentstatus.status_kurzbz::text = 'Student'::text;
|
||
|
||
GRANT SELECT ON public.vw_prestudentstatus TO vilesci;
|
||
GRANT SELECT ON public.vw_prestudentstatus TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_prestudentstatus:'.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.vw_prestudentstatus angepasst damit anmeldungzumreihungstest aus tbl_rt_person kommt';
|
||
}
|
||
}
|
||
}
|
||
|
||
// OE_KURZBZ in system.tbl_filters auf 32 Zeichen verlängert
|
||
if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='system' AND TABLE_NAME='tbl_filters' AND COLUMN_NAME = 'oe_kurzbz' AND character_maximum_length=16"))
|
||
{
|
||
if($db->db_num_rows($result)>0)
|
||
{
|
||
$qry = " ALTER TABLE system.tbl_filters ALTER COLUMN oe_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte oe_kurzbz in system.tbl_filters von varchar(16) auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// Berechtigungen fuer vilesci User erteilen auf system.tbl_log
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='system' AND grantee='vilesci' AND privilege_type='DELETE'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT DELETE ON system.tbl_log TO vilesci;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Permission Log: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'Loeschrechte auf system.tbl_log für Vilesci User hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// Delete-Berechtigungen fuer web User erteilen auf system.tbl_log
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='system' AND grantee='web' AND privilege_type='DELETE'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT DELETE ON system.tbl_log TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Permission Log: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'Delete-Rechte auf system.tbl_log für Web User hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// Add missing Foreign Key to public.tbl_rt_person.person_id
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'fk_tbl_rt_person_person_id'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "SELECT person_id FROM public.tbl_rt_person WHERE NOT EXISTS(SELECT 1 FROM public.tbl_person WHERE person_id=tbl_rt_person.person_id)";
|
||
if($result = $db->db_query($qry))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_rt_person ADD CONSTRAINT fk_tbl_rt_person_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person ON DELETE RESTRICT ON UPDATE CASCADE;";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_rt_person '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_rt_person: added foreign key on column person_id';
|
||
}
|
||
else
|
||
{
|
||
echo '<strong>public.tbl_rt_person:
|
||
Fehlender Foreign Key auf person_id kann nicht erstellt werden!
|
||
In der Tabelle public.tbl_rt_person wird auf Personen verlinkt die nicht mehr in der Tabelle
|
||
public.tbl_person vorhanden sind. Bitte bereinigen Sie die Datensätze manuell und starten Sie dieses Script erneut.
|
||
</strong>';
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// Webservicetyp dvb
|
||
if ($result = $db->db_query("SELECT * FROM system.tbl_webservicetyp WHERE webservicetyp_kurzbz='dvb'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_webservicetyp(webservicetyp_kurzbz, beschreibung) VALUES('dvb','Datenverbund');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>WebserviceLog: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'Webservicelog Typ für Datenverbund hinzugefügt';
|
||
}
|
||
}
|
||
|
||
//Spalte bpk in public.tbl_person
|
||
if(!$result = @$db->db_query("SELECT bpk FROM public.tbl_person LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_person ADD COLUMN bpk varchar(255);
|
||
COMMENT ON COLUMN public.tbl_person.bpk IS 'Bereichsspezifisches Personenkennzeichen';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_person: Spalte bpk hinzugefuegt';
|
||
}
|
||
|
||
// titel und bezeichnung in tbl_akte verlaengert
|
||
if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='public' AND TABLE_NAME='tbl_akte' AND COLUMN_NAME = 'titel' AND character_maximum_length=32"))
|
||
{
|
||
if($db->db_num_rows($result)>0)
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_akte ALTER COLUMN titel TYPE varchar(64);
|
||
ALTER TABLE public.tbl_akte ALTER COLUMN bezeichnung TYPE varchar(64);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_akte '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte titel und bezeichnung in public.tbl_akte von varchar(32) auf varchar(64) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// INSERT und Update Berechtigungen fuer web User erteilen fuer tbl_msg_message
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_message' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT SELECT, INSERT, UPDATE ON public.tbl_msg_message TO web;
|
||
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
{
|
||
echo '<strong>public.tbl_msg_message Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
}
|
||
else
|
||
{
|
||
echo '<br>INSERT und UPDATE Rechte fuer public.tbl_msg_message
|
||
und tbl_msg_message_message_id_seq fuer web user gesetzt ';
|
||
}
|
||
}
|
||
}
|
||
|
||
// INSERT und Update Berechtigungen fuer web User erteilen fuer tbl_msg_recipient
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_recipient' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT SELECT, INSERT, UPDATE ON public.tbl_msg_recipient TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_msg_message Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>INSERT und UPDATE Rechte fuer public.tbl_msg_message fuer web user gesetzt ';
|
||
}
|
||
}
|
||
|
||
// Add UNIQUE constraint on kurzbz from public.tbl_filter
|
||
if($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'uk_filter_kurzbz'"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_filter ADD CONSTRAINT uk_filter_kurzbz UNIQUE(kurzbz);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_filter '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added UNIQUE constraint on "kurzbz" from public.tbl_filter<br>';
|
||
}
|
||
}
|
||
|
||
// Reporting filter: bezeichnung
|
||
if(!$result = @$db->db_query("SELECT bezeichnung FROM public.tbl_filter LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_filter ADD COLUMN bezeichnung varchar(65);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_filter: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_filter: Spalte bezeichnung hinzugefuegt';
|
||
}
|
||
|
||
// vw_mitarbeiter updateaktivamum updateaktivvon
|
||
if(!$result = @$db->db_query("SELECT updateaktivam FROM campus.vw_mitarbeiter LIMIT 1"))
|
||
{
|
||
$qry = "CREATE OR REPLACE VIEW campus.vw_mitarbeiter as
|
||
SELECT tbl_benutzer.uid,
|
||
tbl_mitarbeiter.ausbildungcode,
|
||
tbl_mitarbeiter.personalnummer,
|
||
tbl_mitarbeiter.kurzbz,
|
||
tbl_mitarbeiter.lektor,
|
||
tbl_mitarbeiter.fixangestellt,
|
||
tbl_mitarbeiter.telefonklappe,
|
||
tbl_benutzer.person_id,
|
||
tbl_benutzer.alias,
|
||
tbl_person.geburtsnation,
|
||
tbl_person.sprache,
|
||
tbl_person.anrede,
|
||
tbl_person.titelpost,
|
||
tbl_person.titelpre,
|
||
tbl_person.nachname,
|
||
tbl_person.vorname,
|
||
tbl_person.vornamen,
|
||
tbl_person.gebdatum,
|
||
tbl_person.gebort,
|
||
tbl_person.gebzeit,
|
||
tbl_person.foto,
|
||
tbl_mitarbeiter.anmerkung,
|
||
tbl_person.homepage,
|
||
tbl_person.svnr,
|
||
tbl_person.ersatzkennzeichen,
|
||
tbl_person.geschlecht,
|
||
tbl_person.familienstand,
|
||
tbl_person.anzahlkinder,
|
||
tbl_mitarbeiter.ort_kurzbz,
|
||
tbl_benutzer.aktiv,
|
||
tbl_mitarbeiter.bismelden,
|
||
tbl_mitarbeiter.standort_id,
|
||
tbl_mitarbeiter.updateamum,
|
||
tbl_mitarbeiter.updatevon,
|
||
tbl_mitarbeiter.insertamum,
|
||
tbl_mitarbeiter.insertvon,
|
||
tbl_mitarbeiter.ext_id,
|
||
tbl_benutzer.aktivierungscode,
|
||
( SELECT tbl_kontakt.kontakt
|
||
FROM tbl_kontakt
|
||
WHERE tbl_kontakt.person_id = tbl_person.person_id AND tbl_kontakt.kontakttyp::text = 'email'::text
|
||
ORDER BY tbl_kontakt.zustellung DESC
|
||
LIMIT 1) AS email_privat,
|
||
tbl_benutzer.updateaktivam,
|
||
tbl_benutzer.updateaktivvon,
|
||
greatest(tbl_person.updateamum, tbl_benutzer.updateamum, tbl_mitarbeiter.updateamum) as lastupdate
|
||
FROM public.tbl_mitarbeiter
|
||
JOIN public.tbl_benutzer ON tbl_mitarbeiter.mitarbeiter_uid::text = tbl_benutzer.uid::text
|
||
JOIN public.tbl_person USING (person_id);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.vw_mitarbeiter: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>campus.vw_mitarbeiter: Spalte updateaktivam, updateaktivon, lastupdate hinzugefuegt';
|
||
}
|
||
|
||
// Spalte lkt_ueberschreibbar in lehre.tbl_note
|
||
if(!$result = @$db->db_query("SELECT lkt_ueberschreibbar FROM lehre.tbl_note LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_note ADD COLUMN lkt_ueberschreibbar boolean NOT NULL DEFAULT true;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_note: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_note: Spalte lkt_ueberschreibbar hinzugefuegt!<br>';
|
||
}
|
||
|
||
|
||
// ADD COLUMN zeitaufzeichnungspflichtig to bis.tbl_bisverwendung
|
||
// UPDATE zeitaufzeichnungspflichtig in bis.tbl_bisverwendung
|
||
if(!@$db->db_query("SELECT zeitaufzeichnungspflichtig FROM bis.tbl_bisverwendung LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE bis.tbl_bisverwendung ADD COLUMN zeitaufzeichnungspflichtig boolean;
|
||
|
||
UPDATE
|
||
bis.tbl_bisverwendung
|
||
SET
|
||
zeitaufzeichnungspflichtig=true
|
||
FROM
|
||
public.tbl_mitarbeiter
|
||
WHERE
|
||
tbl_bisverwendung.mitarbeiter_uid = tbl_mitarbeiter.mitarbeiter_uid
|
||
AND
|
||
fixangestellt=true;
|
||
UPDATE
|
||
bis.tbl_bisverwendung
|
||
SET
|
||
zeitaufzeichnungspflichtig=false
|
||
FROM
|
||
public.tbl_mitarbeiter
|
||
WHERE
|
||
tbl_bisverwendung.mitarbeiter_uid = tbl_mitarbeiter.mitarbeiter_uid
|
||
AND
|
||
fixangestellt=false;
|
||
|
||
COMMENT ON COLUMN bis.tbl_bisverwendung.zeitaufzeichnungspflichtig IS 'CaseTime Monatslisten mit Vertragsbeginn verpflichtend führen?';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisverwendung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo "<br>Spalte zeitaufzeichnungspflichtig in bis.tbl_bisverwendung hinzugefügt"
|
||
. "<br>Fix angestellte Mitarbeiter auf true gesetzt, alle anderen auf false";
|
||
}
|
||
|
||
// Spalte Priorisierung für tbl_prestudent
|
||
if(!$result = @$db->db_query("SELECT priorisierung FROM public.tbl_prestudent LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN priorisierung smallint;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudent: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_prestudent: Spalte priorisierung hinzugefuegt';
|
||
}
|
||
|
||
// Spalte zgv_erfuellt für tbl_prestudent
|
||
if(!$result = @$db->db_query("SELECT zgv_erfuellt FROM public.tbl_prestudent LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgv_erfuellt boolean default false;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudent: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_prestudent: Spalte zgv_erfuellt hinzugefuegt';
|
||
}
|
||
|
||
// Spalte zgvmas_erfuellt für tbl_prestudent
|
||
if(!$result = @$db->db_query("SELECT zgvmas_erfuellt FROM public.tbl_prestudent LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvmas_erfuellt boolean default false;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudent: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_prestudent: Spalte zgvmas_erfuellt hinzugefuegt';
|
||
}
|
||
|
||
// Spalte zgvdoktor_erfuellt für tbl_prestudent
|
||
if(!$result = @$db->db_query("SELECT zgvdoktor_erfuellt FROM public.tbl_prestudent LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvdoktor_erfuellt boolean default false;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudent: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_prestudent: Spalte zgvdoktor_erfuellt hinzugefuegt';
|
||
}
|
||
|
||
|
||
// Spalte lieferant in tbl_firma
|
||
if(!$result = @$db->db_query("SELECT lieferant FROM public.tbl_firma LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_firma ADD COLUMN lieferant boolean default false;
|
||
UPDATE public.tbl_firma SET lieferant = true WHERE firmentyp_kurzbz = 'Firma'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_firma: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_firma: Spalte lieferant hinzugefuegt';
|
||
}
|
||
|
||
// INSERT, UPDATE und DELETE Berechtigungen fuer web User erteilen fuer tbl_rt_person und SEQUENCE public.tbl_rt_person_rt_person_id_seq
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_rt_person' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_rt_person TO web;
|
||
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_rt_person_rt_person_id_seq TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_rt_person Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>INSERT, UPDATE und DELETE Rechte fuer Tabelle public.tbl_rt_person und SELECT, UPDATE Rechte für Sequenz public.tbl_rt_person_rt_person_id_seq fuer web user gesetzt ';
|
||
}
|
||
}
|
||
|
||
// App 'reihungstest' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='reihungstest'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('reihungstest');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App reihungstest in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// Spalte direktinskription fuer public.tbl_gruppe
|
||
if(!$result = @$db->db_query("SELECT direktinskription FROM public.tbl_gruppe LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN direktinskription boolean NOT NULL DEFAULT FALSE;
|
||
COMMENT ON COLUMN public.tbl_gruppe.direktinskription IS 'Verwendung fuer direkte Zuweisung zu Lehreinheit'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_gruppe: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_gruppe: Spalte direktinskription hinzugefuegt';
|
||
}
|
||
|
||
// Spalte aktiv für tbl_betreuerart
|
||
if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_betreuerart LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_betreuerart ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_betreuerart: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_betreuerart: Spalte aktiv hinzugefuegt';
|
||
}
|
||
|
||
// Spalte aktiv für tbl_projekttyp
|
||
if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_projekttyp LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_projekttyp ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_projekttyp: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_projekttyp: Spalte aktiv hinzugefuegt';
|
||
}
|
||
|
||
// Remove NOT NULL constraint on aufmerksamdurch_kurzbz on public.tbl_prestudent
|
||
if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_prestudent' AND COLUMN_NAME = 'aufmerksamdurch_kurzbz' AND is_nullable = 'NO'"))
|
||
{
|
||
if($db->db_num_rows($result) > 0)
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_prestudent ALTER COLUMN aufmerksamdurch_kurzbz DROP NOT NULL;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudent '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Removed NOT NULL constraint on "aufmerksamdurch_kurzbz" from public.tbl_prestudent<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte Zugangscode zu vw_msg_vars hinzufügen
|
||
if(!$result = @$db->db_query('SELECT "Zugangscode" 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",
|
||
orgform_kurzbz AS "Orgform",
|
||
p.zugangscode AS "Zugangscode"
|
||
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)
|
||
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 '<br>public.vw_msg_vars zugangscode added';
|
||
}
|
||
|
||
// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
|
||
if(!$result = @$db->db_query('SELECT "Zugangscode" FROM public.vw_msg_vars_person LIMIT 1'))
|
||
{
|
||
$qry = '
|
||
CREATE OR REPLACE VIEW public.vw_msg_vars_person AS (
|
||
SELECT DISTINCT ON(p.person_id) p.person_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",
|
||
( SELECT tbl_studiensemester.bezeichnung
|
||
FROM tbl_studiensemester
|
||
WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
|
||
ORDER BY tbl_studiensemester.start
|
||
LIMIT 1) AS "WS naechstes",
|
||
( SELECT tbl_studiensemester.bezeichnung
|
||
FROM tbl_studiensemester
|
||
WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
|
||
ORDER BY tbl_studiensemester.start
|
||
OFFSET 1
|
||
LIMIT 1) AS "WS uebernaechstes",
|
||
p.zugangscode as "Zugangscode"
|
||
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)
|
||
ORDER BY p.person_id ASC
|
||
);';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.vw_msg_vars_person zugangscode added';
|
||
}
|
||
|
||
// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
|
||
// Fachbereich entfernen
|
||
if(!$result = @$db->db_query('SELECT lehrfach_oe_kurzbz FROM campus.vw_lehreinheit LIMIT 1'))
|
||
{
|
||
$qry = "
|
||
DROP VIEW campus.vw_lehreinheit;
|
||
CREATE OR REPLACE VIEW campus.vw_lehreinheit as
|
||
SELECT
|
||
tbl_lehrveranstaltung.studiengang_kz AS lv_studiengang_kz, tbl_lehrveranstaltung.semester AS lv_semester, tbl_lehrveranstaltung.kurzbz AS lv_kurzbz, tbl_lehrveranstaltung.bezeichnung AS lv_bezeichnung, tbl_lehrveranstaltung.ects AS lv_ects, tbl_lehrveranstaltung.lehreverzeichnis AS lv_lehreverzeichnis,
|
||
tbl_lehrveranstaltung.planfaktor AS lv_planfaktor, tbl_lehrveranstaltung.planlektoren AS lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten AS lv_planpersonalkosten, tbl_lehrveranstaltung.plankostenprolektor AS lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz AS lv_orgform_kurzbz,
|
||
tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz, tbl_lehreinheit.lehrform_kurzbz, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.start_kw, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehreinheit.lehre,
|
||
tbl_lehreinheit.unr, tbl_lehreinheit.lvnr, tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz, tbl_lehreinheit.insertamum, tbl_lehreinheit.insertvon, tbl_lehreinheit.updateamum, tbl_lehreinheit.updatevon,
|
||
lehrfach.lehrveranstaltung_id AS lehrfach_id,
|
||
lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
|
||
lehrfach.kurzbz AS lehrfach, lehrfach.bezeichnung AS lehrfach_bez, lehrfach.farbe,
|
||
tbl_lehrveranstaltung.aktiv, lehrfach.sprache, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.semesterstunden, tbl_lehrveranstaltung.semesterstunden AS lv_semesterstunden, tbl_lehreinheitmitarbeiter.planstunden, tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.faktor,
|
||
tbl_lehreinheit.anmerkung, tbl_mitarbeiter.kurzbz AS lektor, tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, tbl_lehreinheitgruppe.gruppe_kurzbz,
|
||
tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bez, tbl_studiengang.typ AS stg_typ, tbl_lehreinheitmitarbeiter.anmerkung AS anmerkunglektor, tbl_lehrveranstaltung.lehrform_kurzbz AS lv_lehrform_kurzbz,
|
||
tbl_lehrveranstaltung.bezeichnung_english AS lv_bezeichnung_english, tbl_lehrveranstaltung.lehrtyp_kurzbz
|
||
FROM lehre.tbl_lehreinheit
|
||
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
|
||
JOIN lehre.tbl_lehrveranstaltung lehrfach ON (tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||
JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
|
||
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
|
||
JOIN lehre.tbl_lehreinheitgruppe USING (lehreinheit_id)
|
||
JOIN public.tbl_studiengang ON tbl_lehreinheitgruppe.studiengang_kz = tbl_studiengang.studiengang_kz;
|
||
GRANT SELECT ON campus.vw_lehreinheit TO admin;
|
||
GRANT SELECT ON campus.vw_lehreinheit TO vilesci;
|
||
GRANT SELECT ON campus.vw_lehreinheit TO web;
|
||
";
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.vw_lehreinheit: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>campus.vw_lehreinheit lehrfach_oe_kurzbz added, fachbereich_kurzbz removed';
|
||
}
|
||
|
||
// Berechtigungen fuer web User auf testtool.tbl_kategorie
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_kategorie' AND table_schema='testtool' AND grantee='web' AND privilege_type='SELECT'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "GRANT SELECT, INSERT, UPDATE, DELETE ON testtool.tbl_kategorie TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Testtool Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Web User fuer testtool.tbl_kategorie berechtigt';
|
||
}
|
||
}
|
||
|
||
// Kategorisierung von Services
|
||
if(!$result = @$db->db_query("SELECT * FROM public.tbl_servicekategorie LIMIT 1"))
|
||
{
|
||
$qry = "CREATE TABLE public.tbl_servicekategorie(
|
||
servicekategorie_kurzbz varchar(32) NOT NULL,
|
||
bezeichnung varchar(256),
|
||
sort smallint
|
||
);
|
||
ALTER TABLE public.tbl_servicekategorie ADD CONSTRAINT pk_servicekategorie PRIMARY KEY (servicekategorie_kurzbz);
|
||
GRANT SELECT ON public.tbl_servicekategorie TO vilesci;
|
||
GRANT SELECT ON public.tbl_servicekategorie TO web;
|
||
ALTER TABLE public.tbl_service ADD COLUMN servicekategorie_kurzbz varchar(32);
|
||
ALTER TABLE public.tbl_service ADD CONSTRAINT fk_service_servicekategorie FOREIGN KEY (servicekategorie_kurzbz) REFERENCES public.tbl_servicekategorie (servicekategorie_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
INSERT INTO public.tbl_servicekategorie(servicekategorie_kurzbz, bezeichnung, sort) VALUES('kritisch','Kritisch', 1);
|
||
INSERT INTO public.tbl_servicekategorie(servicekategorie_kurzbz, bezeichnung, sort) VALUES('normal','für täglichen Betrieb nicht kritisch', 2);
|
||
INSERT INTO public.tbl_servicekategorie(servicekategorie_kurzbz, bezeichnung, sort) VALUES('unkritisch','unkritisch für Lehrbetrieb', 3);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Servicekategorie: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Servicekategorie zu Services hinzugefügt';
|
||
}
|
||
|
||
$qry_column_desc = "
|
||
SELECT
|
||
pgd.description
|
||
FROM
|
||
pg_catalog.pg_statio_all_tables as st
|
||
JOIN pg_catalog.pg_description pgd ON (pgd.objoid=st.relid)
|
||
JOIN information_schema.columns c ON (pgd.objsubid=c.ordinal_position AND c.table_schema=st.schemaname AND c.table_name=st.relname)
|
||
WHERE
|
||
table_schema = 'lehre' AND table_name = 'tbl_projektarbeit' AND column_name='faktor'";
|
||
if($result = $db->db_query($qry_column_desc))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "
|
||
COMMENT ON COLUMN lehre.tbl_projektarbeit.faktor IS 'DEPRECATED';
|
||
COMMENT ON COLUMN lehre.tbl_projektarbeit.stundensatz IS 'DEPRECATED';
|
||
COMMENT ON COLUMN lehre.tbl_projektarbeit.gesamtstunden IS 'DEPRECATED';
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>tbl_projektarbeit Comment: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>tbl_projektarbeit: faktor, stundensatz und gesamtstunden als deprecated markiert';
|
||
}
|
||
}
|
||
|
||
// App 'budget' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='budget'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('budget');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App budget in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// Neue Tabelle Nationengruppe
|
||
if (!$result = @$db->db_query("SELECT 1 FROM bis.tbl_nationengruppe LIMIT 1"))
|
||
{
|
||
$qry = "CREATE TABLE bis.tbl_nationengruppe
|
||
(
|
||
nationengruppe_kurzbz character varying(16) NOT NULL,
|
||
nationengruppe_bezeichnung character varying(128),
|
||
aktiv boolean DEFAULT TRUE
|
||
);
|
||
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON bis.tbl_nationengruppe TO vilesci;
|
||
GRANT SELECT ON bis.tbl_nationengruppe TO web;
|
||
|
||
ALTER TABLE bis.tbl_nationengruppe ADD CONSTRAINT pk_nationengruppe_nationengruppe_kurzbz PRIMARY KEY (nationengruppe_kurzbz);";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_nationengruppe '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'Neue Tabelle: bis.tbl_nationengruppe<br>';
|
||
}
|
||
|
||
// Spalte nationengruppe_kurzbz für tbl_nation
|
||
if(!$result = @$db->db_query("SELECT nationengruppe_kurzbz FROM bis.tbl_nation LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE bis.tbl_nation ADD COLUMN nationengruppe_kurzbz character varying(16);
|
||
|
||
ALTER TABLE bis.tbl_nation ADD CONSTRAINT fk_tbl_nation_nationengruppe_kurzbz FOREIGN KEY (nationengruppe_kurzbz) REFERENCES bis.tbl_nationengruppe(nationengruppe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_nation: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_nation: Spalte nationengruppe_kurzbz hinzugefuegt';
|
||
}
|
||
|
||
// Spalte nationengruppe_kurzbz für tbl_bewerbungstermine
|
||
if(!$result = @$db->db_query("SELECT nationengruppe_kurzbz FROM public.tbl_bewerbungstermine LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_bewerbungstermine ADD COLUMN nationengruppe_kurzbz character varying(16);
|
||
|
||
ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT fk_tbl_bewerbungstermine_nationengruppe_kurzbz FOREIGN KEY (nationengruppe_kurzbz) REFERENCES bis.tbl_nationengruppe(nationengruppe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_bewerbungstermine: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_bewerbungstermine: Spalte nationengruppe_kurzbz hinzugefuegt';
|
||
}
|
||
|
||
// Spalte bezeichnung_mehrsprachig in bis.tbl_orgform
|
||
if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM bis.tbl_orgform LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE bis.tbl_orgform ADD COLUMN bezeichnung_mehrsprachig varchar(255)[];";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_orgform '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'bis.tbl_orgform: Spalte bezeichnung_mehrsprachig hinzugefuegt!<br>';
|
||
|
||
// Bezeichnung_mehrsprachig aus existierender Bezeichnung vorausfuellen. Ein Eintrag fuer jede Sprache mit Content aktiv.
|
||
$qry_help = "SELECT index FROM public.tbl_sprache WHERE content=TRUE;";
|
||
if(!$result = $db->db_query($qry_help))
|
||
echo '<strong>tbl_orgform bezeichnung_mehrsprachig: Fehler beim ermitteln der Sprachen: '.$db->db_last_error().'</strong>';
|
||
else
|
||
{
|
||
$qry='';
|
||
while($row = $db->db_fetch_object($result))
|
||
$qry.= "UPDATE bis.tbl_orgform set bezeichnung_mehrsprachig[".$row->index."] = bezeichnung;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Setzen der bezeichnung_mehrsprachig fehlgeschlagen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'bis.tbl_orgform: bezeichnung_mehrprachig automatisch aus existierender Bezeichnung uebernommen<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte vertragsstunden für tbl_vertrag
|
||
if(!$result = @$db->db_query("SELECT vertragsstunden FROM lehre.tbl_vertrag LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_vertrag ADD COLUMN vertragsstunden NUMERIC(5,2);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_vertrag: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_vertrag: Spalte vertragsstunden hinzugefuegt';
|
||
}
|
||
|
||
// Spalte vertragsstunden_studiensemester_kurzbz für tbl_vertrag
|
||
if(!$result = @$db->db_query("SELECT vertragsstunden_studiensemester_kurzbz FROM lehre.tbl_vertrag LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
ALTER TABLE lehre.tbl_vertrag
|
||
ADD COLUMN vertragsstunden_studiensemester_kurzbz VARCHAR(16);
|
||
|
||
ALTER TABLE lehre.tbl_vertrag
|
||
ADD CONSTRAINT fk_vertrag_vertragsstunden_studiensemester_kurzbz
|
||
FOREIGN KEY (vertragsstunden_studiensemester_kurzbz)
|
||
REFERENCES public.tbl_studiensemester (studiensemester_kurzbz)
|
||
ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_vertrag: ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_vertrag: Spalte vertragsstunden_studiensemester_kurzbz hinzugefuegt';
|
||
}
|
||
|
||
// Create SEQUENCE tbl_zeitaufzeichnung_gd_id
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_zeitaufzeichnung_gd_id_seq'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = '
|
||
CREATE SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung_gd_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created sequence: campus.tbl_zeitaufzeichnung_gd_id_seq';
|
||
|
||
// GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO web;
|
||
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung_gd_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on campus.tbl_zeitaufzeichnung_gd_id_seq';
|
||
|
||
// GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung_gd_id_seq '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on campus.tbl_zeitaufzeichnung_gd_id_seq';
|
||
}
|
||
}
|
||
|
||
// Create TABLE campus.tbl_zeitaufzeichnung_gd
|
||
if(!@$db->db_query("SELECT 0 FROM campus.tbl_zeitaufzeichnung_gd WHERE 0 = 1")) {
|
||
$qry = '
|
||
CREATE TABLE campus.tbl_zeitaufzeichnung_gd
|
||
(
|
||
zeitaufzeichnung_gd_id integer NOT NULL DEFAULT NEXTVAL(\'campus.tbl_zeitaufzeichnung_gd_id_seq\'::regclass),
|
||
uid varchar(32) NOT NULL,
|
||
studiensemester_kurzbz varchar(16) NOT NULL,
|
||
selbstverwaltete_pause boolean NOT NULL,
|
||
insertamum TIMESTAMP DEFAULT NOW(),
|
||
insertvon varchar(32),
|
||
updateamum TIMESTAMP,
|
||
updatevon varchar(32)
|
||
);
|
||
|
||
ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT pk_zeitaufzeichnung_gd_zeitaufzeichnung_gd_id PRIMARY KEY (zeitaufzeichnung_gd_id);
|
||
|
||
ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT uk_zeitaufzeichnung_gd_uid_stsem UNIQUE (uid, studiensemester_kurzbz);
|
||
|
||
COMMENT ON TABLE campus.tbl_zeitaufzeichnung_gd IS \'Table to manage the lectors parted working times; gd = Geteilte Dienste\';
|
||
COMMENT ON COLUMN campus.tbl_zeitaufzeichnung_gd.selbstverwaltete_pause IS \'Lectors (dis-)agreement to self-manage breaks\';
|
||
|
||
';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung_gd ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo '<br>Created table campus.tbl_zeitaufzeichnung_gd';
|
||
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO web;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung_gd ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on campus.tbl_zeitaufzeichnung_gd';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung_gd ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on campus.tbl_zeitaufzeichnung_gd';
|
||
}
|
||
|
||
|
||
// Insert 'bestellt' to tbl_vertragsstatus
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_vertragsstatus WHERE vertragsstatus_kurzbz = 'bestellt';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_vertragsstatus(vertragsstatus_kurzbz, bezeichnung) VALUES('bestellt', 'Bestellt');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_vertragsstatus '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'lehre.tbl_vertragsstatus: Added value \'bestellt\'<br>';
|
||
}
|
||
}
|
||
|
||
// Insert 'erteilt' to tbl_vertragsstatus
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_vertragsstatus WHERE vertragsstatus_kurzbz = 'erteilt';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_vertragsstatus(vertragsstatus_kurzbz, bezeichnung) VALUES('erteilt', 'Erteilt');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_vertragsstatus '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'lehre.tbl_vertragsstatus: Added value \'erteilt\'<br>';
|
||
}
|
||
}
|
||
|
||
// Insert 'akzeptiert' to tbl_vertragsstatus
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_vertragsstatus WHERE vertragsstatus_kurzbz = 'akzeptiert';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_vertragsstatus(vertragsstatus_kurzbz, bezeichnung) VALUES('akzeptiert', 'Akzeptiert');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_vertragsstatus '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'lehre.tbl_vertragsstatus: Added value \'akzeptiert\'<br>';
|
||
}
|
||
}
|
||
|
||
// Insert 'Betreuung' to tbl_vertragstyp
|
||
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_vertragstyp WHERE vertragstyp_kurzbz = 'Betreuung';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_vertragstyp(vertragstyp_kurzbz, bezeichnung) VALUES('Betreuung', 'Betreuung');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_vertragstyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'lehre.tbl_vertragstyp: Added value \'Betreuung\'<br>';
|
||
}
|
||
}
|
||
|
||
// Add permission to order lehrauftrag (lehrauftrag_bestellen)
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/lehrauftrag_bestellen';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/lehrauftrag_bestellen', 'Lehrauftrag bestellen');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for lehre/lehrauftrag_bestellen<br>';
|
||
}
|
||
}
|
||
|
||
// Add permission to approve lehrauftrag (lehrauftrag_erteilen)
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/lehrauftrag_erteilen';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/lehrauftrag_erteilen', 'Lehrauftrag erteilen');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for lehre/lehrauftrag_erteilen<br>';
|
||
}
|
||
}
|
||
|
||
// Add permission to accept lehrauftrag (lehrauftrag_akzeptieren)
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/lehrauftrag_akzeptieren';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/lehrauftrag_akzeptieren', 'Lehrauftrag akzeptieren');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for lehre/lehrauftrag_akzeptieren<br>';
|
||
}
|
||
}
|
||
|
||
// Add column Stufe to tbl_dokumentstudiengang
|
||
if(!$result = @$db->db_query("SELECT stufe FROM public.tbl_dokumentstudiengang LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_dokumentstudiengang ADD COLUMN stufe smallint;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokumentstudiengang: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_dokumentstudiengang: Spalte stufe hinzugefuegt';
|
||
}
|
||
|
||
// Create TABLE public.tbl_variablenname
|
||
if(!@$db->db_query("SELECT 0 FROM public.tbl_variablenname WHERE 0 = 1"))
|
||
{
|
||
$qry = '
|
||
CREATE TABLE public.tbl_variablenname
|
||
(
|
||
name varchar(64) NOT NULL constraint pk_tbl_variablenname primary key,
|
||
defaultwert varchar(64)
|
||
);
|
||
COMMENT ON TABLE public.tbl_variablenname IS \'Namen aller benutzerdefinierten Variablen\';
|
||
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'termin_export_db_stpl_table\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'sleep_time\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'semester_aktuell\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'reihungstestverwaltung_punkteberechnung\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'number_displayed_past_studiensemester\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'max_kollision\', \'0\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'locale\', \'de-AT\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'kontofilterstg\', \'false\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'kollision_student\', \'false\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'infocenter_studiensemester\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'ignore_zeitsperre\', \'false\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'ignore_reservierung\', \'false\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'ignore_kollision\', \'false\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'fas_id\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'fasfunktionfilter\', \'alle\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'emailadressentrennzeichen\', null);
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'db_stpl_table\', \'stundenplan\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'allow_lehrstunde_drop\', \'false\');
|
||
INSERT INTO public.tbl_variablenname (name, defaultwert) VALUES (\'alle_unr_mitladen\', \'false\');
|
||
|
||
ALTER TABLE public.tbl_variable ADD CONSTRAINT variablenname_variable FOREIGN KEY (name) REFERENCES public.tbl_variablenname(name) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
';
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_variablenname ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo '<br>Created public.tbl_variablenname';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.tbl_variablenname TO web;
|
||
$qry = 'GRANT SELECT ON TABLE public.tbl_variablenname TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_variablenname ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on public.tbl_variablenname';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.tbl_variablenname TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.tbl_variablenname TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_variablenname ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on public.tbl_variablenname';
|
||
}
|
||
|
||
// Add new name type in public.tbl_variablenname
|
||
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_variablenname WHERE name = 'infocenter_studiensgangtyp';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_variablenname(name, defaultwert) VALUES('infocenter_studiensgangtyp', 'b');";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_variablenname '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_variablenname: Added name "infocenter_studiensgangtyp"<br>';
|
||
}
|
||
}
|
||
|
||
// Add column projektphase_id to tbl_zeitaufzeichnung
|
||
if(!$result = @$db->db_query("SELECT projektphase_id FROM campus.tbl_zeitaufzeichnung LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE campus.tbl_zeitaufzeichnung ADD COLUMN projektphase_id bigint;
|
||
ALTER TABLE campus.tbl_zeitaufzeichnung ADD CONSTRAINT fk_zeitaufzeichnung_projektphase FOREIGN KEY (projektphase_id) REFERENCES fue.tbl_projektphase (projektphase_id) ON DELETE RESTRICT ON UPDATE CASCADE;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>campus.tbl_zeitaufzeichnung: Spalte projektphase_id hinzugefuegt';
|
||
}
|
||
|
||
// Add new webservice type in system.tbl_webservicetyp
|
||
if ($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicetyp WHERE webservicetyp_kurzbz = 'job';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_webservicetyp(webservicetyp_kurzbz, beschreibung) VALUES('job', 'Cronjob');";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_webservicetyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_webservicetyp: Added webservice type "job"<br>';
|
||
}
|
||
}
|
||
|
||
// insert und update fuer public.tbl_vorlage
|
||
if(!@$db->db_query("SELECT insertamum FROM public.tbl_vorlage LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN insertamum timestamp;
|
||
ALTER TABLE public.tbl_vorlage ADD COLUMN insertvon varchar(32);
|
||
ALTER TABLE public.tbl_vorlage ADD COLUMN updateamum timestamp;
|
||
ALTER TABLE public.tbl_vorlage ADD COLUMN updatevon varchar(32);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalten insertamum,insertvon,updateamum und updatevon in public.tbl_vorlage hinzugefügt';
|
||
}
|
||
|
||
// Spalte archivierbar und signierbar in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: Zertifikat
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'Zertifikat' AND archivierbar AND signierbar;"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "UPDATE public.tbl_vorlage SET archivierbar = TRUE, signierbar = TRUE WHERE vorlage_kurzbz = 'Zertifikat';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_vorlage: Spalten archivierbar und signierbar auf TRUE gesetzt bei Vorlage: Zertifikat<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte archivierbar und signierbar in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnis
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnis' AND archivierbar AND signierbar;"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "UPDATE public.tbl_vorlage SET archivierbar = TRUE, signierbar = TRUE WHERE vorlage_kurzbz = 'LVZeugnis';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_vorlage: Spalten archivierbar und signierbar auf TRUE gesetzt bei Vorlage: LVZeugnis<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte archivierbar und signierbar in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnisEng
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnisEng' AND archivierbar AND signierbar;"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "UPDATE public.tbl_vorlage SET archivierbar = TRUE, signierbar = TRUE WHERE vorlage_kurzbz = 'LVZeugnisEng';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_vorlage: Spalten archivierbar und signierbar auf TRUE gesetzt bei Vorlage: LVZeugnisEng<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte stud_selfservice in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: Zertifikat
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'Zertifikat' AND stud_selfservice;"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "UPDATE public.tbl_vorlage SET stud_selfservice = TRUE WHERE vorlage_kurzbz = 'Zertifikat';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_vorlage: Spalte stud_selfservice auf TRUE gesetzt bei Vorlage: Zertifikat<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte stud_selfservice in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnis
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnis' AND stud_selfservice;"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "UPDATE public.tbl_vorlage SET stud_selfservice = TRUE WHERE vorlage_kurzbz = 'LVZeugnis';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_vorlage: Spalte stud_selfservice auf TRUE gesetzt bei Vorlage: LVZeugnis<br>';
|
||
}
|
||
}
|
||
|
||
// Spalte stud_selfservice in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnisEng
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnisEng' AND stud_selfservice;"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "UPDATE public.tbl_vorlage SET stud_selfservice = TRUE WHERE vorlage_kurzbz = 'LVZeugnisEng';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_vorlage: Spalte stud_selfservice auf TRUE gesetzt bei Vorlage: LVZeugnisEng<br>';
|
||
}
|
||
}
|
||
|
||
// dokument_kurzbz in public.tbl_dokument auf 32 Zeichen verlängert
|
||
if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_dokument' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = " ALTER TABLE public.tbl_dokument ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokument '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte dokument_kurzbz in public.tbl_dokument auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// dokument_kurzbz in public.tbl_akte auf 32 Zeichen verlängert
|
||
if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_akte' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = " ALTER TABLE public.tbl_akte ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokument '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte dokument_kurzbz in public.tbl_akte auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
|
||
// dokument_kurzbz in campus.tbl_dms auf 32 Zeichen verlängert
|
||
if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='campus' AND TABLE_NAME='tbl_dms' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE campus.tbl_dms ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_dms '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte dokument_kurzbz in campus.tbl_dms auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// dokument_kurzbz in public.tbl_dokumentprestudent auf 32 Zeichen verlängert
|
||
if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_dokumentprestudent' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = " ALTER TABLE public.tbl_dokumentprestudent ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokumentprestudent '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte dokument_kurzbz in public.tbl_dokumentprestudent auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// dokument_kurzbz in public.tbl_dokumentstudiengang auf 32 Zeichen verlängert
|
||
if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_dokumentstudiengang' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = " ALTER TABLE public.tbl_dokumentstudiengang ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokumentstudiengang '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte dokument_kurzbz in public.tbl_dokumentstudiengang auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// dokument_kurzbz in public.tbl_vorlage auf 32 Zeichen verlängert
|
||
if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_vorlage' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = " ALTER TABLE public.tbl_vorlage ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte dokument_kurzbz in public.tbl_vorlage auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// dokument_kurzbz in public.tbl_vorlagedokument auf 32 Zeichen verlängert
|
||
if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_vorlagedokument' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = " ALTER TABLE public.tbl_vorlagedokument ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlage '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte dokument_kurzbz in public.tbl_vorlagedokument auf varchar(32) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// Neues Dokument hinzugefuegt LVZeugnisEng
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_dokument WHERE dokument_kurzbz = 'LVZeugnisEng'"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_dokument (dokument_kurzbz, bezeichnung, bezeichnung_mehrsprachig) VALUES ('LVZeugnisEng', 'Lehrveranstaltungszeugnis Englisch', '{\"Lehrveranstaltungszeugnis\",\"Course Certificate\"}')";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokument '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_dokument: LVZeugnisEng hinzugefügt<br>';
|
||
}
|
||
}
|
||
|
||
// Neues Dokument hinzugefuegt LVZeugnis
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_dokument WHERE dokument_kurzbz = 'LVZeugnis'"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_dokument (dokument_kurzbz, bezeichnung, bezeichnung_mehrsprachig) VALUES ('LVZeugnis', 'Lehrveranstaltungszeugnis', '{\"Lehrveranstaltungszeugnis\",\"Course Certificate\"}')";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokument '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_dokument: LVZeugnis hinzugefügt<br>';
|
||
}
|
||
}
|
||
|
||
// Neues Dokument hinzugefuegt Zertifikat
|
||
if($result = @$db->db_query("SELECT 1 FROM public.tbl_dokument WHERE dokument_kurzbz = 'Zertifikat'"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_dokument (dokument_kurzbz, bezeichnung, bezeichnung_mehrsprachig) VALUES ('Zertifikat', 'Zertifikat', '{\"Zertifikat\",\"Certificate\"}')";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_dokument '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_dokument: Zertifikat hinzugefügt<br>';
|
||
}
|
||
}
|
||
|
||
// insert und update fuer public.tbl_vorlagestudiengang
|
||
if(!@$db->db_query("SELECT insertamum FROM public.tbl_vorlagestudiengang LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN insertamum timestamp;
|
||
ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN insertvon varchar(32);
|
||
ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN updateamum timestamp;
|
||
ALTER TABLE public.tbl_vorlagestudiengang ADD COLUMN updatevon varchar(32);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_vorlagestudiengang: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalten insertamum,insertvon,updateamum und updatevon in public.tbl_vorlagestudiengang hinzugefügt';
|
||
}
|
||
|
||
// Add column ects_erworben to bis.tbl_bisio
|
||
if(!$result = @$db->db_query("SELECT ects_erworben FROM bis.tbl_bisio LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE bis.tbl_bisio ADD COLUMN ects_erworben numeric(5,2);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisio: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_bisio: Spalte ects_erworben hinzugefuegt';
|
||
}
|
||
|
||
// Add column ects_angerechnet to bis.tbl_bisio
|
||
if(!$result = @$db->db_query("SELECT ects_angerechnet FROM bis.tbl_bisio LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE bis.tbl_bisio ADD COLUMN ects_angerechnet numeric(5,2);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisio: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_bisio: Spalte ects_angerechnet hinzugefuegt';
|
||
}
|
||
|
||
// Add Table bis.tbl_aufenthaltfoerderung
|
||
if(!$result = @$db->db_query("SELECT 1 FROM bis.tbl_aufenthaltfoerderung LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE bis.tbl_aufenthaltfoerderung
|
||
(
|
||
aufenthaltfoerderung_code integer NOT NULL,
|
||
bezeichnung varchar(64)
|
||
);
|
||
ALTER TABLE bis.tbl_aufenthaltfoerderung ADD CONSTRAINT pk_aufenthaltfoerderung PRIMARY KEY (aufenthaltfoerderung_code);
|
||
|
||
COMMENT ON TABLE bis.tbl_aufenthaltfoerderung IS 'Key-Table of Outgoing Sponsorship';
|
||
INSERT INTO bis.tbl_aufenthaltfoerderung(aufenthaltfoerderung_code, bezeichnung) VALUES(1,'EU-Förderung');
|
||
INSERT INTO bis.tbl_aufenthaltfoerderung(aufenthaltfoerderung_code, bezeichnung) VALUES(2,'Beihilfe von Bund, Land, Gemeinde');
|
||
INSERT INTO bis.tbl_aufenthaltfoerderung(aufenthaltfoerderung_code, bezeichnung) VALUES(3,'Förderung durch Universität/Hochschule');
|
||
INSERT INTO bis.tbl_aufenthaltfoerderung(aufenthaltfoerderung_code, bezeichnung) VALUES(4,'andere Förderung');
|
||
INSERT INTO bis.tbl_aufenthaltfoerderung(aufenthaltfoerderung_code, bezeichnung) VALUES(5,'keine Förderung');
|
||
|
||
CREATE TABLE bis.tbl_bisio_aufenthaltfoerderung
|
||
(
|
||
bisio_id integer NOT NULL,
|
||
aufenthaltfoerderung_code integer NOT NULL
|
||
);
|
||
ALTER TABLE bis.tbl_bisio_aufenthaltfoerderung ADD CONSTRAINT pk_aufenthaltfoerderung_bisio PRIMARY KEY (bisio_id, aufenthaltfoerderung_code);
|
||
COMMENT ON TABLE bis.tbl_bisio_aufenthaltfoerderung IS 'Connects Outgoing Program with Sponsorship';
|
||
|
||
ALTER TABLE bis.tbl_bisio_aufenthaltfoerderung ADD CONSTRAINT fk_tbl_bisio_aufenthaltfoerderung_bisio FOREIGN KEY (bisio_id) REFERENCES bis.tbl_bisio (bisio_id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
ALTER TABLE bis.tbl_bisio_aufenthaltfoerderung ADD CONSTRAINT fk_tbl_bisio_aufenthaltfoerderung_aufenthaltfoerderung FOREIGN KEY (aufenthaltfoerderung_code) REFERENCES bis.tbl_aufenthaltfoerderung (aufenthaltfoerderung_code) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_aufenthaltfoerderung TO web;
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_aufenthaltfoerderung TO vilesci;
|
||
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_bisio_aufenthaltfoerderung TO web;
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_bisio_aufenthaltfoerderung TO vilesci;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_aufenthaltfoerderung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_aufenthaltfoerderung hinzugefügt, Tabelle bis.tbl_bisio_aufenthaltfoerderung hinzugefuegt';
|
||
}
|
||
|
||
// Add table bis.tbl_bisio_zweck
|
||
if(!$result = @$db->db_query("SELECT 1 FROM bis.tbl_bisio_zweck LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
ALTER TABLE bis.tbl_bisio ALTER COLUMN zweck_code DROP NOT NULL;
|
||
CREATE TABLE bis.tbl_bisio_zweck
|
||
(
|
||
bisio_id integer NOT NULL,
|
||
zweck_code varchar(20) NOT NULL
|
||
);
|
||
COMMENT ON TABLE bis.tbl_bisio_zweck IS 'Connects Internships with Reasons';
|
||
ALTER TABLE bis.tbl_bisio_zweck ADD CONSTRAINT pk_tbl_bisio_zweck PRIMARY KEY (bisio_id, zweck_code);
|
||
ALTER TABLE bis.tbl_bisio_zweck ADD CONSTRAINT fk_tbl_bisio_zweck_bisio FOREIGN KEY (bisio_id) REFERENCES bis.tbl_bisio (bisio_id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
ALTER TABLE bis.tbl_bisio_zweck ADD CONSTRAINT fk_tbl_bisio_zweck_zweck FOREIGN KEY (zweck_code) REFERENCES bis.tbl_zweck (zweck_code) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
||
INSERT INTO bis.tbl_bisio_zweck(bisio_id, zweck_code) SELECT bisio_id, zweck_code FROM bis.tbl_bisio WHERE zweck_code is not null;
|
||
COMMENT ON COLUMN bis.tbl_bisio.zweck_code IS 'DEPRECATED';
|
||
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_bisio_zweck TO web;
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_bisio_zweck TO vilesci;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisio_zweck: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_bisio_zweck hinzugefuegt, Spalte bis.tbl_bisio.zweck_code als DEPRECATED markiert.';
|
||
}
|
||
|
||
// Add Column incoming and outgoing to bis.tbl_zweck
|
||
// change Datatype of bis.tbl_zweck.bezeichnung from varchar(32) to varchar(64)
|
||
if(!$result = @$db->db_query("SELECT incoming FROM bis.tbl_zweck LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
ALTER TABLE bis.tbl_zweck ALTER COLUMN bezeichnung TYPE varchar(64);
|
||
ALTER TABLE bis.tbl_zweck ADD COLUMN incoming boolean NOT NULL DEFAULT true;
|
||
ALTER TABLE bis.tbl_zweck ADD COLUMN outgoing boolean NOT NULL DEFAULT true;
|
||
|
||
INSERT INTO bis.tbl_zweck(zweck_code, kurzbz, bezeichnung, incoming, outgoing) VALUES(4, 'DMD','Diplom-/Masterarbeit bzw. Dissertation', false, true);
|
||
INSERT INTO bis.tbl_zweck(zweck_code, kurzbz, bezeichnung, incoming, outgoing) VALUES(5, 'SK','Besuch von Sprachkursen', false, true);
|
||
INSERT INTO bis.tbl_zweck(zweck_code, kurzbz, bezeichnung, incoming, outgoing) VALUES(6, 'LT','Lehrtätigkeit', false, true);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_zweck: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_zweck Spalte incoming und outgoing hinzugefügt, neue Codexeinträge ergänzt.';
|
||
}
|
||
|
||
// Add column statistik_kurzbz to system.tbl_filters
|
||
if(!$result = @$db->db_query("SELECT statistik_kurzbz FROM system.tbl_filters LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE system.tbl_filters ADD COLUMN statistik_kurzbz varchar(64);
|
||
ALTER TABLE system.tbl_filters ADD CONSTRAINT fk_filters_statistik FOREIGN KEY (statistik_kurzbz) REFERENCES public.tbl_statistik (statistik_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_filters: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_filters: Spalte statistik_kurzbz hinzugefuegt';
|
||
}
|
||
|
||
// app reporting hinzufügen
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_app WHERE app= 'reporting';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES ('reporting');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_app: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_app: Zeile reporting hinzugefuegt!<br>';
|
||
}
|
||
}
|
||
|
||
// Add table fue.tbl_projekttyp
|
||
if(!$result = @$db->db_query("SELECT 1 FROM fue.tbl_projekttyp LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE fue.tbl_projekttyp
|
||
(
|
||
projekttyp_kurzbz varchar(32) NOT NULL,
|
||
bezeichnung varchar(255)
|
||
);
|
||
COMMENT ON TABLE fue.tbl_projekttyp IS 'Project Type';
|
||
ALTER TABLE fue.tbl_projekttyp ADD CONSTRAINT pk_tbl_projekttyp PRIMARY KEY (projekttyp_kurzbz);
|
||
ALTER TABLE fue.tbl_projekt ADD COLUMN projekttyp_kurzbz varchar(32);
|
||
ALTER TABLE fue.tbl_projekt ADD CONSTRAINT fk_tbl_projekt_projekttyp FOREIGN KEY (projekttyp_kurzbz) REFERENCES fue.tbl_projekttyp (projekttyp_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
||
INSERT INTO fue.tbl_projekttyp(projekttyp_kurzbz, bezeichnung) VALUES ('fue', 'Forschung und Entwicklung');
|
||
INSERT INTO fue.tbl_projekttyp(projekttyp_kurzbz, bezeichnung) VALUES ('intern', 'Intern');
|
||
INSERT INTO fue.tbl_projekttyp(projekttyp_kurzbz, bezeichnung) VALUES ('internoe', 'Intern Organisationseinheit');
|
||
|
||
GRANT SELECT ON TABLE fue.tbl_projekttyp TO web;
|
||
GRANT SELECT ON TABLE fue.tbl_projekttyp TO wawi;
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE fue.tbl_projekttyp TO vilesci;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>fue.tbl_projekttyp: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>fue.tbl_projekttyp hinzugefuegt.';
|
||
}
|
||
|
||
// Add column oe_kurzbz to public.tbl_msg_recipient
|
||
if(!$result = @$db->db_query("SELECT oe_kurzbz FROM public.tbl_msg_recipient LIMIT 1"))
|
||
{
|
||
$qry = 'ALTER TABLE public.tbl_msg_recipient ADD COLUMN oe_kurzbz character varying(32);';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_msg_recipient: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added column oe_kurzbz to table public.tbl_msg_recipient';
|
||
|
||
// FOREIGN KEY fk_tbl_msg_recipient_oe_kurzbz: public.tbl_msg_recipient.oe_kurzbz references public.tbl_organisationseinheit.oe_kurzbz
|
||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'fk_tbl_msg_recipient_oe_kurzbz'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_msg_recipient ADD CONSTRAINT fk_tbl_msg_recipient_oe_kurzbz FOREIGN KEY (oe_kurzbz)
|
||
REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_msg_recipient: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_msg_recipient: added foreign key on column oe_kurzbz referenced to public.tbl_organisationseinheit(oe_kurzbz)';
|
||
}
|
||
}
|
||
}
|
||
|
||
// Add new webservice type in system.tbl_webservicetyp
|
||
if ($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicetyp WHERE webservicetyp_kurzbz = 'API';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_webservicetyp(webservicetyp_kurzbz, beschreibung) VALUES('API', 'Cronjob');";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_webservicetyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_webservicetyp: Added webservice type "API"<br>';
|
||
}
|
||
}
|
||
|
||
// Add new Table for gender
|
||
// Add FK to public.tbl_person and Drop old Check Constraint
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_geschlecht LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE public.tbl_geschlecht
|
||
(
|
||
geschlecht character(1) NOT NULL,
|
||
bezeichnung_mehrsprachig varchar(255)[],
|
||
sort smallint
|
||
);
|
||
COMMENT ON TABLE public.tbl_geschlecht IS 'Key-Table of Gender';
|
||
ALTER TABLE public.tbl_geschlecht ADD CONSTRAINT pk_tbl_geschlecht PRIMARY KEY (geschlecht);
|
||
|
||
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('m', '{\"männlich\",\"male\"}', 1);
|
||
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('w', '{\"weiblich\",\"female\"}', 2);
|
||
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('x', '{\"divers\",\"divers\"}', 3);
|
||
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('u', '{\"unbekannt\",\"unknown\"}', 4);
|
||
|
||
ALTER TABLE public.tbl_person ADD CONSTRAINT fk_tbl_person_geschlecht FOREIGN KEY (geschlecht) REFERENCES public.tbl_geschlecht (geschlecht) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
||
ALTER TABLE public.tbl_person DROP CONSTRAINT tbl_person_geschlecht;
|
||
|
||
GRANT SELECT ON TABLE public.tbl_geschlecht TO web;
|
||
GRANT SELECT ON TABLE public.tbl_geschlecht TO wawi;
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE public.tbl_geschlecht TO vilesci;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_geschlecht: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_geschlecht hinzugefügt. Check Constraint für Geschlecht entfernt.';
|
||
}
|
||
|
||
if($result = $db->db_query("SELECT * FROM pg_proc WHERE proname = 'transform_geschlecht'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = '
|
||
CREATE OR REPLACE FUNCTION transform_geschlecht(character, date) RETURNS character
|
||
LANGUAGE plpgsql
|
||
AS $_$
|
||
DECLARE geschlecht ALIAS FOR $1;
|
||
DECLARE gebdatum ALIAS FOR $2;
|
||
|
||
BEGIN
|
||
IF geschlecht=\'x\' THEN
|
||
IF date_part(\'day\', gebdatum)::int%2=0 THEN
|
||
geschlecht:=\'m\';
|
||
ELSE
|
||
geschlecht:=\'w\';
|
||
END IF;
|
||
END IF;
|
||
RETURN geschlecht;
|
||
END;
|
||
$_$;';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>transform_geschlecht: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Function transform_geschlecht hinzugefügt.';
|
||
}
|
||
}
|
||
|
||
// Add column offset to testtool.tbl_gebiet
|
||
if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.tbl_gebiet LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE testtool.tbl_gebiet ADD COLUMN offsetpunkte numeric(8,4)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>testtool.tbl_gebiet: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>testtool.tbl_gebiet: Spalte offsetpunkte hinzugefuegt';
|
||
}
|
||
|
||
// ADD COLUMN offset to testtool.vw_auswertung_ablauf
|
||
if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.vw_auswertung_ablauf LIMIT 1"))
|
||
{
|
||
$qry = '
|
||
CREATE OR REPLACE VIEW testtool.vw_auswertung_ablauf AS (
|
||
SELECT
|
||
tbl_gebiet.gebiet_id,
|
||
tbl_gebiet.bezeichnung AS gebiet,
|
||
tbl_ablauf.reihung,
|
||
tbl_gebiet.maxpunkte,
|
||
tbl_pruefling.pruefling_id,
|
||
tbl_pruefling.prestudent_id,
|
||
tbl_person.vorname,
|
||
tbl_person.nachname,
|
||
tbl_person.gebdatum,
|
||
tbl_person.geschlecht,
|
||
tbl_pruefling.semester,
|
||
upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz,
|
||
tbl_studiengang.bezeichnung AS stg_bez,
|
||
tbl_pruefling.registriert,
|
||
tbl_pruefling.idnachweis,
|
||
( SELECT sum(tbl_vorschlag.punkte) AS sum
|
||
FROM testtool.tbl_vorschlag
|
||
JOIN testtool.tbl_antwort USING (vorschlag_id)
|
||
JOIN testtool.tbl_frage USING (frage_id)
|
||
WHERE tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id
|
||
) AS punkte,
|
||
tbl_rt_person.rt_id AS reihungstest_id,
|
||
tbl_ablauf.gewicht,
|
||
tbl_studiengang.studiengang_kz,
|
||
tbl_gebiet.offsetpunkte
|
||
FROM
|
||
testtool.tbl_pruefling
|
||
JOIN testtool.tbl_ablauf ON tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz
|
||
JOIN testtool.tbl_gebiet USING (gebiet_id)
|
||
JOIN public.tbl_prestudent USING (prestudent_id)
|
||
JOIN public.tbl_person USING (person_id)
|
||
JOIN public.tbl_rt_person USING (person_id)
|
||
JOIN lehre.tbl_studienplan ON tbl_studienplan.studienplan_id = tbl_rt_person.studienplan_id
|
||
JOIN lehre.tbl_studienordnung ON tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id
|
||
JOIN public.tbl_studiengang ON tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz
|
||
WHERE NOT (tbl_ablauf.gebiet_id IN
|
||
(
|
||
SELECT tbl_kategorie.gebiet_id
|
||
FROM testtool.tbl_kategorie
|
||
)
|
||
) AND tbl_studienordnung.studiengang_kz = tbl_pruefling.studiengang_kz
|
||
)';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>testtool.vw_auswertung_ablauf: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>testtool.vw_auswertung_ablauf view created';
|
||
}
|
||
|
||
// ADD COLUMN offset to testtool.vw_auswertung
|
||
if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.vw_auswertung LIMIT 1"))
|
||
{
|
||
$qry = '
|
||
CREATE OR REPLACE VIEW testtool.vw_auswertung AS
|
||
SELECT
|
||
tbl_gebiet.gebiet_id,
|
||
tbl_gebiet.bezeichnung AS gebiet,
|
||
tbl_gebiet.maxpunkte,
|
||
tbl_pruefling.pruefling_id,
|
||
tbl_pruefling.prestudent_id,
|
||
tbl_person.vorname,
|
||
tbl_person.nachname,
|
||
tbl_person.gebdatum,
|
||
tbl_person.geschlecht,
|
||
tbl_pruefling.semester,
|
||
upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz,
|
||
tbl_studiengang.bezeichnung AS stg_bez,
|
||
tbl_pruefling.registriert,
|
||
tbl_pruefling.idnachweis,
|
||
(
|
||
SELECT
|
||
sum(tbl_vorschlag.punkte) AS sum
|
||
FROM
|
||
testtool.tbl_vorschlag
|
||
JOIN testtool.tbl_antwort USING (vorschlag_id)
|
||
JOIN testtool.tbl_frage USING (frage_id)
|
||
WHERE
|
||
tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id
|
||
AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id
|
||
) AS punkte,
|
||
tbl_rt_person.rt_id as reihungstest_id,
|
||
tbl_ablauf.gewicht,
|
||
tbl_person.person_id,
|
||
tbl_gebiet.offsetpunkte
|
||
FROM
|
||
testtool.tbl_pruefling
|
||
JOIN testtool.tbl_ablauf ON (tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz AND tbl_ablauf.semester = tbl_pruefling.semester)
|
||
JOIN testtool.tbl_gebiet USING (gebiet_id)
|
||
JOIN public.tbl_prestudent USING (prestudent_id)
|
||
JOIN public.tbl_person USING (person_id)
|
||
JOIN public.tbl_studiengang ON tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz
|
||
JOIN public.tbl_rt_person USING (person_id)
|
||
JOIN lehre.tbl_studienplan ON (tbl_studienplan.studienplan_id = tbl_rt_person.studienplan_id)
|
||
JOIN lehre.tbl_studienordnung ON (tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id)
|
||
WHERE
|
||
tbl_studienordnung.studiengang_kz = tbl_prestudent.studiengang_kz
|
||
AND NOT (tbl_ablauf.gebiet_id IN ( SELECT tbl_kategorie.gebiet_id
|
||
FROM testtool.tbl_kategorie));';
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>testtool.vw_auswertung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>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 '<strong>public.tbl_bankverbindung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_bankverbindung: Spalte orgform_kurzbz hinzugefuegt';
|
||
}
|
||
|
||
// iban, bic und weitere Variablen 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", "Alias Studiengangsassistenz", "Relative Prio" 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"
|
||
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 '<strong>public.vw_msg_vars: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.vw_msg_vars IBAN Studiengang, BIC Studiengang, Studiengangskennzahl, Einstiegssemester, Einstiegsstudiensemester, Vorname Studiengangsassistenz, Nachname Studiengangsassistenz, Durchwahl Studiengangsassistenz, Alias Studiengangsassistenz, Relative Priorität added';
|
||
}
|
||
|
||
// UNIQUE INDEX unq_idx_ablauf_gebiet_studiengang_semester in testtool.tbl_ablauf löschen und durch neuen INDEX ersetzen, der auch den Studienplan einschließt
|
||
if ($result = $db->db_query("SELECT 1 FROM pg_class WHERE relname = 'unq_idx_ablauf_gebiet_studiengang_semester'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 1)
|
||
{
|
||
$qry = 'DROP INDEX testtool.unq_idx_ablauf_gebiet_studiengang_semester;';
|
||
$qry .= 'CREATE UNIQUE INDEX unq_idx_ablauf_gebiet_studiengang_semester_studienplan ON testtool.tbl_ablauf USING btree (gebiet_id, studiengang_kz, semester, studienplan_id);';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>unq_idx_ablauf_gebiet_studiengang_semester_studienplan '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Dropped index "unq_idx_ablauf_gebiet_studiengang_semester" and created unique index "unq_idx_ablauf_gebiet_studiengang_semester_studienplan"';
|
||
}
|
||
}
|
||
|
||
// Creates table system.tbl_jobstatuses if it doesn't exist and grants privileges
|
||
if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_jobstatuses LIMIT 1'))
|
||
{
|
||
$qry = 'CREATE TABLE system.tbl_jobstatuses (
|
||
status character varying(64) NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_jobstatuses IS \'All possible job statuses\';
|
||
COMMENT ON COLUMN system.tbl_jobstatuses.status IS \'Job status value and primary key\';
|
||
|
||
ALTER TABLE ONLY system.tbl_jobstatuses ADD CONSTRAINT pk_jobstatuses PRIMARY KEY (status);
|
||
|
||
INSERT INTO system.tbl_jobstatuses(status) VALUES(\'new\');
|
||
INSERT INTO system.tbl_jobstatuses(status) VALUES(\'running\');
|
||
INSERT INTO system.tbl_jobstatuses(status) VALUES(\'done\');
|
||
INSERT INTO system.tbl_jobstatuses(status) VALUES(\'failed\');
|
||
';
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobstatuses: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_jobstatuses table created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_jobstatuses TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobstatuses: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_jobstatuses';
|
||
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobstatuses TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobstatuses: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_jobstatuses';
|
||
}
|
||
|
||
// Creates table system.tbl_jobtypes if it doesn't exist and grants privileges
|
||
if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_jobtypes LIMIT 1'))
|
||
{
|
||
$qry = 'CREATE TABLE system.tbl_jobtypes (
|
||
type character varying(128) NOT NULL,
|
||
description text NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_jobtypes IS \'All possible job types\';
|
||
COMMENT ON COLUMN system.tbl_jobtypes.type IS \'Job type value and primary key\';
|
||
COMMENT ON COLUMN system.tbl_jobtypes.description IS \'Job type description\';
|
||
|
||
ALTER TABLE ONLY system.tbl_jobtypes ADD CONSTRAINT pk_jobtypes PRIMARY KEY (type);
|
||
';
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobtypes: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_jobtypes table created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_jobtypes TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobtypes: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_jobtypes';
|
||
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobtypes TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobtypes: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_jobtypes';
|
||
}
|
||
|
||
// Creates table system.tbl_jobsqueue if it doesn't exist and grants privileges
|
||
if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_jobsqueue LIMIT 1'))
|
||
{
|
||
$qry = 'CREATE TABLE system.tbl_jobsqueue (
|
||
jobid integer NOT NULL,
|
||
type character varying(128) NOT NULL,
|
||
creationtime timestamp without time zone DEFAULT now(),
|
||
status character varying(64) NOT NULL,
|
||
input jsonb,
|
||
output jsonb,
|
||
starttime timestamp without time zone,
|
||
endtime timestamp without time zone,
|
||
insertvon character varying(32),
|
||
insertamum timestamp without time zone DEFAULT now()
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_jobsqueue IS \'Table to schedule/manage the jobs queue\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.jobid IS \'Primary key\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.type IS \'Job type\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.creationtime IS \'Job creation timestamp\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.status IS \'Job current status\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.input IS \'Job input in JSON format\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.output IS \'Job output in JSON format\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.starttime IS \'Job start timestamp\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.endtime IS \'Job end timestamp\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.insertvon IS \'User/Service who/that inserted this record\';
|
||
COMMENT ON COLUMN system.tbl_jobsqueue.insertamum IS \'Record insert time stamp\';
|
||
|
||
CREATE SEQUENCE system.seq_jobsqueue_jobid
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
ALTER SEQUENCE system.seq_jobsqueue_jobid OWNED BY system.tbl_jobsqueue.jobid;
|
||
|
||
ALTER TABLE ONLY system.tbl_jobsqueue ALTER COLUMN jobid SET DEFAULT nextval(\'system.seq_jobsqueue_jobid\'::regclass);
|
||
|
||
GRANT SELECT, UPDATE ON SEQUENCE system.seq_jobsqueue_jobid TO vilesci;
|
||
GRANT SELECT, UPDATE ON SEQUENCE system.seq_jobsqueue_jobid TO fhcomplete;
|
||
|
||
ALTER TABLE ONLY system.tbl_jobsqueue ADD CONSTRAINT pk_jobsqueue PRIMARY KEY (jobid);
|
||
|
||
ALTER TABLE ONLY system.tbl_jobsqueue ADD CONSTRAINT fk_jobsqueue_status FOREIGN KEY (status) REFERENCES system.tbl_jobstatuses(status) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
|
||
ALTER TABLE ONLY system.tbl_jobsqueue ADD CONSTRAINT fk_jobsqueue_type FOREIGN KEY (type) REFERENCES system.tbl_jobtypes(type) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
';
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobsqueue: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_jobsqueue table created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_jobsqueue TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobsqueue: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_jobsqueue';
|
||
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobsqueue TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobsqueue: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_jobsqueue';
|
||
}
|
||
|
||
// Creates table system.tbl_jobtriggers if it doesn't exist and grants privileges
|
||
if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_jobtriggers LIMIT 1'))
|
||
{
|
||
$qry = 'CREATE TABLE system.tbl_jobtriggers (
|
||
type character varying(128) NOT NULL,
|
||
status character varying(64) NOT NULL,
|
||
following_type character varying(128) NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_jobtriggers IS \'Table to manage the job triggers\';
|
||
COMMENT ON COLUMN system.tbl_jobtriggers.type IS \'Job type\';
|
||
COMMENT ON COLUMN system.tbl_jobtriggers.status IS \'Job status\';
|
||
COMMENT ON COLUMN system.tbl_jobtriggers.following_type IS \'New job type\';
|
||
|
||
ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT pk_jobtriggers PRIMARY KEY (type, status, following_type);
|
||
|
||
ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT fk_jobtriggers_status FOREIGN KEY (status) REFERENCES system.tbl_jobstatuses(status) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
|
||
ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT fk_jobtriggers_type FOREIGN KEY (type) REFERENCES system.tbl_jobtypes(type) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
|
||
ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT fk_jobtriggers_following_type FOREIGN KEY (following_type) REFERENCES system.tbl_jobtypes(type) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
';
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobtriggers: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_jobtriggers table created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_jobtriggers TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobtriggers: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_jobtriggers';
|
||
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobtriggers TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_jobtriggers: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_jobtriggers';
|
||
}
|
||
|
||
// Add column iso3166_1_a2 to bis.tbl_nation
|
||
if (!$result = @$db->db_query("SELECT iso3166_1_a2 FROM bis.tbl_nation LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE bis.tbl_nation ADD COLUMN iso3166_1_a2 character varying(2);";
|
||
$qry .= "COMMENT ON COLUMN bis.tbl_nation.iso3166_1_a2 IS 'ISO 3166-1 alpha-2 country code';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_nation.iso3166_1_a2: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_nation.iso3166_1_a2: Spalte iso3166_1_a2 hinzugefuegt';
|
||
}
|
||
|
||
// Spalte bezeichnung_mehrsprachig in public.tbl_studiengangstyp
|
||
if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM public.tbl_studiengangstyp LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_studiengangstyp ADD COLUMN bezeichnung_mehrsprachig varchar(255)[];";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_studiengangstyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_studiengangstyp: Spalte bezeichnung_mehrsprachig hinzugefuegt!<br>';
|
||
|
||
// Bezeichnung_mehrsprachig aus existierender Bezeichnung vorausfuellen. Ein Eintrag fuer jede Sprache mit Content aktiv.
|
||
$qry_help = "SELECT index FROM public.tbl_sprache WHERE content=TRUE;";
|
||
if(!$result = $db->db_query($qry_help))
|
||
echo '<strong>tbl_studiengangstyp bezeichnung_mehrsprachig: Fehler beim ermitteln der Sprachen: '.$db->db_last_error().'</strong>';
|
||
else
|
||
{
|
||
$qry='';
|
||
while($row = $db->db_fetch_object($result))
|
||
$qry.= "UPDATE public.tbl_studiengangstyp set bezeichnung_mehrsprachig[".$row->index."] = bezeichnung;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Setzen der bezeichnung_mehrsprachig fehlgeschlagen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br> bis.tbl_studiengangstyp: bezeichnung_mehrprachig automatisch aus existierender Bezeichnung uebernommen<br>';
|
||
}
|
||
}
|
||
|
||
// Add type "p" to Studiengangstyp
|
||
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_studiengangstyp WHERE typ = 'p';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_studiengangstyp(typ,bezeichnung,beschreibung,bezeichnung_mehrsprachig) VALUES('p', 'PhD',NULL,'{PhD,PhD}');";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_webservicetyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br> public.tbl_studiengangstyp: Added type "p"<br>';
|
||
}
|
||
}
|
||
|
||
// Add type "l" to Studiengangstyp
|
||
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_studiengangstyp WHERE typ = 'l';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_studiengangstyp(typ,bezeichnung,beschreibung,bezeichnung_mehrsprachig) VALUES('l', 'Lehrgang',NULL,'{Lehrgang,Course}');";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_webservicetyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br> public.tbl_studiengangstyp: Added type "l"<br>';
|
||
}
|
||
}
|
||
|
||
// Add type "d" to Studiengangstyp
|
||
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_studiengangstyp WHERE typ = 'd';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_studiengangstyp(typ,bezeichnung,beschreibung,bezeichnung_mehrsprachig) VALUES('d', 'Diplom',NULL,'{Diplom,Diploma}');";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_webservicetyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br> public.tbl_studiengangstyp: Added type "d"<br>';
|
||
}
|
||
}
|
||
|
||
// Add type "w" to Studiengangstyp
|
||
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_studiengangstyp WHERE typ = 'w';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_studiengangstyp(typ,bezeichnung,beschreibung,bezeichnung_mehrsprachig) VALUES('w', 'Weiterbildung',NULL,'{Weiterbildung,Further education}');";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_webservicetyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br> public.tbl_studiengangstyp: Added type "w"<br>';
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Anpassungen fuer BIS Personalmeldung 6.8
|
||
*/
|
||
if (!$result = @$db->db_query("SELECT ba1code_bis FROM bis.tbl_beschaeftigungsart1 LIMIT 1"))
|
||
{
|
||
/*
|
||
Beschaeftigungsausmass Kodextabelle aktualisieren
|
||
|
||
BA1Code alt 1 => BA1Code neu 1
|
||
BA1Code alt 2 => BA1Code neu 2
|
||
BA1Code alt 3 => BA1Code neu 3 (Echter DV)
|
||
BA1Code alt 4 => BA1Code neu 5 (Freier DV -> Sonstiges)
|
||
BA1Code alt 5 => BA1Code neu 4
|
||
BA1Code alt 6 => BA1Code neu 5 (Werkvertrag -> Sonstiges)
|
||
|
||
BA1Code ist nicht mehr der Code der gemeldet wird.
|
||
BA1code wird um 100 erhöht damit klar ist, dass es sich um einen anderen Code handelt.
|
||
*/
|
||
$qry = "
|
||
ALTER TABLE bis.tbl_beschaeftigungsart1 ADD COLUMN ba1code_bis smallint;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=1, ba1code=101 WHERE ba1code=1;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=2, ba1code=102 WHERE ba1code=2;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=3, ba1code=103 WHERE ba1code=3;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=5, ba1code=105 WHERE ba1code=4;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=4, ba1code=104 WHERE ba1code=5;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=6, ba1code=106 WHERE ba1code=6;
|
||
";
|
||
|
||
/*
|
||
Für Werkvertraege wird eine eigene Beschaeftigungsart erstellt.
|
||
Die alten Eintraege für "Sonstiges (Werkvertrag)" werden auf diese neue Beschaeftigungsart umgehaengt
|
||
da diese bei uns alles Werkvertraege sind.
|
||
Fuer Studentische Hilfskraefte wird ebenfalls eine eigene Beschaeftigungsart erstellt.
|
||
Diese werden als Echter DV gemeldet aber getrennt verwaltet.
|
||
Alle Personen mit einer Funktion als Hilfskraft werden auf diese Beschaeftigungsart geaendert.
|
||
*/
|
||
$qry .= "
|
||
INSERT INTO bis.tbl_beschaeftigungsart1(ba1code, ba1bez, ba1kurzbz, ba1code_bis) VALUES(107,'Werkvertrag (Sonstiges)','Werkvertrag (Sonstiges)', 5);
|
||
INSERT INTO bis.tbl_beschaeftigungsart1(ba1code, ba1bez, ba1kurzbz, ba1code_bis) VALUES(108,'Studentische Hilfskraft (Echter DV)','Stud. Hilfskraft (Echter DV)', 3);
|
||
UPDATE bis.tbl_bisverwendung SET ba1code=107 WHERE ba1code=106;
|
||
UPDATE bis.tbl_bisverwendung SET ba1code=108 WHERE ba1code=103 AND EXISTS(
|
||
SELECT 1 FROM public.tbl_benutzerfunktion
|
||
WHERE uid=tbl_bisverwendung.mitarbeiter_uid AND funktion_kurzbz='hilfskraft' AND
|
||
(
|
||
datum_von BETWEEN tbl_bisverwendung.beginn AND tbl_bisverwendung.ende
|
||
OR
|
||
datum_bis BETWEEN tbl_bisverwendung.beginn AND tbl_bisverwendung.ende
|
||
)
|
||
);
|
||
";
|
||
|
||
$qry .= "
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1bez='Dienstverhältnis zur postsekundären Bildungseinrichtung oder deren Träger' WHERE ba1code=103;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1kurzbz='Lehr- oder Ausbildungsverhältnis', ba1bez='Lehr- oder Ausbildungsverhältnis' WHERE ba1code=104;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1kurzbz='Freier Dienstvertrag (Sonstiges)', ba1bez='Sonstiges Beschäftigungsverhältnis' WHERE ba1code=105;
|
||
UPDATE bis.tbl_beschaeftigungsart1 SET ba1kurzbz='Andere Bildungseinrichtung', ba1bez='Dienstverhältnis zu einer anderen Bildungseinrichtung oder einem anderen Träger' WHERE ba1code=106;
|
||
";
|
||
|
||
/*
|
||
Verwendungs Kodextabelle aktualisieren
|
||
|
||
VerwendungCode alt 1 => VerwendungsCode neu 1
|
||
VerwendungCode alt 2 => VerwendungsCode neu 2
|
||
VerwendungCode alt 3 => VerwendungsCode neu 3
|
||
VerwendungCode alt 4 => VerwendungsCode neu 4
|
||
VerwendungCode alt 5 => VerwendungsCode neu 5
|
||
VerwendungCode alt 6 => VerwendungsCode neu 5
|
||
VerwendungCode alt 7 => VerwendungsCode neu 5
|
||
VerwendungCode alt 8 => VerwendungsCode neu 6
|
||
VerwendungCode alt 9 => VerwendungsCode neu 7
|
||
*/
|
||
|
||
$qry .= "
|
||
UPDATE bis.tbl_bisverwendung SET verwendung_code=5 WHERE verwendung_code=6;
|
||
UPDATE bis.tbl_bisverwendung SET verwendung_code=5 WHERE verwendung_code=7;
|
||
UPDATE bis.tbl_bisverwendung SET verwendung_code=6 WHERE verwendung_code=8;
|
||
UPDATE bis.tbl_bisverwendung SET verwendung_code=7 WHERE verwendung_code=9;
|
||
|
||
UPDATE bis.tbl_verwendung SET verwendungbez='wissenschaftliche Lehre und Forschung' WHERE verwendung_code=1;
|
||
UPDATE bis.tbl_verwendung SET verwendungbez='wissenschaftliche Mitarbeit in Lehre und Forschung' WHERE verwendung_code=2;
|
||
UPDATE bis.tbl_verwendung SET verwendungbez='professionelle Unterstützung der Studierenden in akademischen Belangen' WHERE verwendung_code=3;
|
||
UPDATE bis.tbl_verwendung SET verwendungbez='professionelle Unterstützung der Studierenden in Gesundheits- und Sozialbelangen' WHERE verwendung_code=4;
|
||
UPDATE bis.tbl_verwendung SET verwendungbez='Management' WHERE verwendung_code=5;
|
||
UPDATE bis.tbl_verwendung SET verwendungbez='Verwaltung' WHERE verwendung_code=6;
|
||
UPDATE bis.tbl_verwendung SET verwendungbez='Wartung und Betrieb' WHERE verwendung_code=7;
|
||
|
||
DELETE FROM bis.tbl_verwendung WHERE verwendung_code=8;
|
||
DELETE FROM bis.tbl_verwendung WHERE verwendung_code=9;
|
||
";
|
||
|
||
$qry.="
|
||
INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('vertrBefugter','Vertretungsbefugte/r des Erhalters',true,false,false);
|
||
INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('kollegium_Ltg','Leiter/in des Kollegiums',true,false,false);
|
||
INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('kollegium_stvLtg','Stellv. Leiter/in des Kollegiums',true,false,false);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_verwendung und bis.tbl_beschaeftigungsart: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Verwendung und Beschaeftigungsart für BIS Version 6.8 aktualisiert.';
|
||
}
|
||
|
||
// Orgform DE und Orform EN zu vw_msg_vars hinzufügen
|
||
if(!$result = @$db->db_query('SELECT "Orgform DE", "Orgform 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"
|
||
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)
|
||
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 '<br>public.vw_msg_vars added';
|
||
}
|
||
|
||
// Spalte akzeptiertamum in public.tbl_akte
|
||
if(!$result = @$db->db_query("SELECT akzeptiertamum FROM public.tbl_akte LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_akte ADD COLUMN akzeptiertamum timestamp without time zone;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_akte '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo 'public.tbl_akte: Spalte akzeptiertamum hinzugefuegt!<br>';
|
||
}
|
||
|
||
// TABLE lehre.tbl_abschlusspruefung_antritt
|
||
if (!@$db->db_query("SELECT 0 FROM lehre.tbl_abschlusspruefung_antritt WHERE 0 = 1"))
|
||
{
|
||
$qry = '
|
||
CREATE TABLE lehre.tbl_abschlusspruefung_antritt (
|
||
pruefungsantritt_kurzbz character varying(20) NOT NULL,
|
||
bezeichnung character varying(64),
|
||
bezeichnung_english character varying(64),
|
||
sort smallint
|
||
);
|
||
ALTER TABLE lehre.tbl_abschlusspruefung_antritt ADD CONSTRAINT pk_abschlusspruefung_antritt PRIMARY KEY (pruefungsantritt_kurzbz);
|
||
INSERT INTO lehre.tbl_abschlusspruefung_antritt(pruefungsantritt_kurzbz, bezeichnung, bezeichnung_english, sort) VALUES (\'erstantritt\', \'Erstantritt\', \'1st Attempt\', 1);
|
||
INSERT INTO lehre.tbl_abschlusspruefung_antritt(pruefungsantritt_kurzbz, bezeichnung, bezeichnung_english, sort) VALUES (\'erstewiederholung\', \'1. Wiederholung\', \'1st Retake\', 2);
|
||
INSERT INTO lehre.tbl_abschlusspruefung_antritt(pruefungsantritt_kurzbz, bezeichnung, bezeichnung_english, sort) VALUES (\'zweitewiederholung\', \'2. Wiederholung\', \'2nd Retake\', 3);';
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_abschlusspruefung_antritt '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created table lehre.tbl_abschlusspruefung_antritt';
|
||
|
||
// GRANT SELECT ON TABLE lehre.tbl_abschlusspruefung_antritt TO web;
|
||
$qry = 'GRANT SELECT ON TABLE lehre.tbl_abschlusspruefung_antritt TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_abschlusspruefung_antritt '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on lehre.tbl_abschlusspruefung_antritt';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE lehre.tbl_abschlusspruefung_antritt TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE lehre.tbl_abschlusspruefung_antritt TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_abschlusspruefung_antritt '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on lehre.tbl_abschlusspruefung_antritt';
|
||
|
||
// GRANT SELECT, UPDATE ON TABLE lehre.tbl_abschlusspruefung TO web;
|
||
$qry = 'GRANT SELECT, UPDATE ON lehre.tbl_abschlusspruefung TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_abschlusspruefung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on lehre.tbl_abschlusspruefung';
|
||
|
||
// COMMENT ON TABLE lehre.tbl_abschlusspruefung_antritt
|
||
$qry = 'COMMENT ON TABLE lehre.tbl_abschlusspruefung_antritt IS \'Type of Abschlusspruefung depending on number of attempts\';';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>Adding comment to lehre.tbl_abschlusspruefung_antritt: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added comment to lehre.tbl_abschlusspruefung_antritt';
|
||
}
|
||
// add protokoll,endezeit,pruefungsantritt_kurzbz,freigabedatum to lehre.tbl_abschlusspruefung
|
||
if(!$result = @$db->db_query("SELECT protokoll,endezeit,pruefungsantritt_kurzbz,freigabedatum FROM lehre.tbl_abschlusspruefung LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_abschlusspruefung ADD COLUMN protokoll text;
|
||
ALTER TABLE lehre.tbl_abschlusspruefung ADD COLUMN endezeit time;
|
||
ALTER TABLE lehre.tbl_abschlusspruefung ADD COLUMN pruefungsantritt_kurzbz character varying(20);
|
||
ALTER TABLE lehre.tbl_abschlusspruefung ADD CONSTRAINT fk_abschlusspruefung_antritt FOREIGN KEY (pruefungsantritt_kurzbz) REFERENCES lehre.tbl_abschlusspruefung_antritt (pruefungsantritt_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE lehre.tbl_abschlusspruefung ADD COLUMN freigabedatum date;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_abschlusspruefung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_abschlusspruefung: Spalten protokoll,endezeit,pruefungsantritt_kurzbz,freigabedatum hinzugefuegt';
|
||
}
|
||
|
||
// Spalte sort in lehre.tbl_abschlussbeurteilung (gibt Reihenfolge der Beurteilungen an)
|
||
if(!$result = @$db->db_query("SELECT sort FROM lehre.tbl_abschlussbeurteilung LIMIT 1;"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_abschlussbeurteilung ADD COLUMN sort smallint;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_abschlussbeurteilung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_abschlussbeurteilung: Spalte sort hinzugefuegt!<br>';
|
||
}
|
||
|
||
//Spalte co_adresse in tbl_adresse
|
||
if(!$result = @$db->db_query("SELECT co_name FROM public.tbl_adresse LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
ALTER TABLE public.tbl_adresse ADD COLUMN co_name varchar(256);
|
||
COMMENT ON COLUMN public.tbl_adresse.co_name IS 'Name des abweichenden Empfaengers';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_adresse: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_adresse: Spalte co_name und anmerkung hinzugefuegt';
|
||
}
|
||
|
||
// Add column iso3166_1_a3 to tbl_nation
|
||
if(!$result = @$db->db_query("SELECT iso3166_1_a3 FROM bis.tbl_nation LIMIT 1"))
|
||
{
|
||
$qry = "ALTER table bis.tbl_nation ADD COLUMN iso3166_1_a3 VARCHAR(3);
|
||
COMMENT ON COLUMN bis.tbl_nation.iso3166_1_a3 IS 'ISO 3166-1 alpha-3 country code';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_nation: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_nation: Spalte iso3166_1_a3 hinzugefuegt';
|
||
}
|
||
|
||
// OE_KURZBZ in system.tbl_filters auf 32 Zeichen verlängert
|
||
if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='wawi' AND TABLE_NAME='tbl_betriebsmitteltyp' AND COLUMN_NAME = 'typ_code' AND character_maximum_length=2"))
|
||
{
|
||
if($db->db_num_rows($result)>0)
|
||
{
|
||
$qry = " ALTER TABLE wawi.tbl_betriebsmitteltyp ALTER COLUMN typ_code TYPE varchar(6)";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>wawi.tbl_betriebsmitteltyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte typ_code in wawi.tbl_betriebsmitteltyp von character(2) auf varchar(6) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// ADD COLUMN azgrelevant in bis.tbl_bisverwendung
|
||
if(!$result = @$db->db_query("SELECT azgrelevant FROM bis.tbl_bisverwendung LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
ALTER TABLE bis.tbl_bisverwendung ADD COLUMN azgrelevant boolean;
|
||
UPDATE bis.tbl_bisverwendung SET azgrelevant = zeitaufzeichnungspflichtig;
|
||
UPDATE bis.tbl_bisverwendung SET zeitaufzeichnungspflichtig = true WHERE ba1code=103 AND beschausmasscode!=5;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisverwendung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_bisverwendung Spalte azgrelevant hinzugefügt.';
|
||
}
|
||
|
||
// Add new funktion type kstzuordnung for cost center assignment in public.tbl_funktion
|
||
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_funktion WHERE funktion_kurzbz = 'kstzuordnung';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('kstzuordnung','Standardkostenstelle Zuordnung',true,false,false);";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_funktion '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_funktion: Added funktion kstzuordnung<br>';
|
||
}
|
||
}
|
||
|
||
// Add column zugangstoken to tbl_projektbetreuer
|
||
if(!$result = @$db->db_query("SELECT zugangstoken FROM lehre.tbl_projektbetreuer LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_projektbetreuer ADD COLUMN zugangstoken VARCHAR(32);
|
||
COMMENT ON COLUMN lehre.tbl_projektbetreuer.zugangstoken IS 'Zugangstoken zur Projektarbeitsbewertung fuer externe Betreuer';
|
||
ALTER TABLE lehre.tbl_projektbetreuer ADD CONSTRAINT uk_tbl_projektbetreuer_zugangstoken UNIQUE (zugangstoken);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_projektbetreuer: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_projektbetreuer: Spalte zugangstoken hinzugefuegt';
|
||
}
|
||
|
||
// Add column zugangstoken_gueltigbis to tbl_projektbetreuer
|
||
if(!$result = @$db->db_query("SELECT zugangstoken_gueltigbis FROM lehre.tbl_projektbetreuer LIMIT 1"))
|
||
{
|
||
$qry = "ALTER table lehre.tbl_projektbetreuer ADD COLUMN zugangstoken_gueltigbis date;
|
||
COMMENT ON COLUMN lehre.tbl_projektbetreuer.zugangstoken_gueltigbis IS 'Gueligkeitsdatum fuer Zugangstoken zur Projektarbeitsbewertung fuer externe Betreuer';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_projektbetreuer: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_projektbetreuer: Spalte zugangstoken_gueltigbis hinzugefuegt';
|
||
}
|
||
|
||
// App 'projektarbeitsbeurteilung' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='projektarbeitsbeurteilung'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('projektarbeitsbeurteilung');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App projektarbeitsbeurteilung in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// UPDATE Berechtigung für lehre.tbl_projektbetreuer für web user hinzufügen
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_projektbetreuer' AND table_schema='lehre' AND grantee='web' AND privilege_type='UPDATE'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT UPDATE ON lehre.tbl_projektbetreuer TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>Projektbetreuer Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Web User: update fuer lehre.tbl_projektbetreuer berechtigt';
|
||
}
|
||
}
|
||
|
||
// Add column dms_id, studiensemester_kurzbz, anmerkung_student und empfehlung_anrechnung
|
||
// Change genehmigt_von and begruendung_id to be NULLABLE
|
||
if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung LIMIT 1"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "
|
||
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN dms_id bigint;
|
||
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6);
|
||
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text;
|
||
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean;
|
||
|
||
ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
||
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL;
|
||
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL;
|
||
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW();
|
||
";
|
||
}
|
||
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_anrechnung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>lehre.tbl_anrechnung: Neue Spalten dms_id, studiensemester_kurzbz, anmerkung_student und empfehlung_anrechnung hinzugefuegt. Not null constraint entfernt für genehmigt_von und begruendung_id';
|
||
}
|
||
|
||
// Add DMS category "anrechnung"
|
||
if ($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz = 'anrechnung';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO campus.tbl_dms_kategorie (
|
||
kategorie_kurzbz,
|
||
bezeichnung,
|
||
beschreibung,
|
||
parent_kategorie_kurzbz,
|
||
oe_kurzbz,
|
||
berechtigung_kurzbz
|
||
) VALUES(
|
||
'anrechnung',
|
||
'Anrechnung',
|
||
'Dokumente zur Anrechnung von Lehrveranstaltungen',
|
||
'studium',
|
||
'etw',
|
||
NULL
|
||
);";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_dms_kategorie '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' campus.tbl_dms_kategorie: Added category "anrechnung"!<br>';
|
||
}
|
||
}
|
||
|
||
|
||
// Add DMS category permissiongroup for DMS category "anrechnung"
|
||
if ($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie_gruppe WHERE kategorie_kurzbz = 'anrechnung';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO campus.tbl_dms_kategorie_gruppe (
|
||
kategorie_kurzbz,
|
||
gruppe_kurzbz,
|
||
insertamum,
|
||
insertvon
|
||
) VALUES(
|
||
'anrechnung',
|
||
'CMS_LOCK',
|
||
NOW(),
|
||
'dbcheck'
|
||
);";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_dms_kategorie_gruppe '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' campus.tbl_dms_kategorie_gruppe: Added category group "CMS_LOCK" to category "anrechnung"!<br>';
|
||
}
|
||
}
|
||
|
||
// Add table anrechnungstatus
|
||
if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnungstatus LIMIT 1;"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE lehre.tbl_anrechnungstatus
|
||
(
|
||
status_kurzbz varchar(32) NOT NULL,
|
||
bezeichnung_mehrsprachig varchar(64)[]
|
||
);
|
||
|
||
ALTER TABLE lehre.tbl_anrechnungstatus ADD CONSTRAINT pk_anrechnungstatus PRIMARY KEY (status_kurzbz);
|
||
|
||
INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('inProgressDP', '{\"bearbeitet von STG-Leitung\",\"processed by STG-Director\"}');
|
||
INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('inProgressKF', '{\"bearbeitet von KF-Leitung\",\"processed by KF-Manager\"}');
|
||
INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('inProgressLektor', '{\"Empfehlung angefordert\",\"recommendation requested\"}');
|
||
INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('approved', '{\"genehmigt\",\"approved\"}');
|
||
INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('rejected', '{\"abgelehnt\",\"rejected\"}');
|
||
|
||
GRANT SELECT ON lehre.tbl_anrechnungstatus TO web;
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungstatus TO vilesci;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_anrechnungstatus: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' lehre.tbl_anrechnungstatus: Tabelle hinzugefuegt<br>';
|
||
}
|
||
|
||
// Add table anrechnung_anrechnungstatus
|
||
// Für bestehende genehmigte Anrechnungsanträge wird ein Eintrag mit dem Status 'approved' angelegt
|
||
if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_anrechnungstatus LIMIT 1;"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE lehre.tbl_anrechnung_anrechnungstatus
|
||
(
|
||
anrechnungstatus_id integer NOT NULL,
|
||
anrechnung_id integer,
|
||
status_kurzbz varchar(32),
|
||
datum date default now(),
|
||
insertamum timestamp default now(),
|
||
insertvon varchar(32)
|
||
);
|
||
|
||
ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ADD CONSTRAINT pk_anrechnung_anrechnungstatus PRIMARY KEY (anrechnungstatus_id);
|
||
ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ADD CONSTRAINT fk_anrechnung_anrechnungstatus_anrechnung FOREIGN KEY (anrechnung_id) REFERENCES lehre.tbl_anrechnung(anrechnung_id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ADD CONSTRAINT fk_anrechnung_anrechnungstatus_anrechnungstatus FOREIGN KEY (status_kurzbz) REFERENCES lehre.tbl_anrechnungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
||
CREATE SEQUENCE lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ALTER COLUMN anrechnungstatus_id SET DEFAULT nextval('lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id');
|
||
|
||
INSERT INTO lehre.tbl_anrechnung_anrechnungstatus(anrechnung_id, status_kurzbz) SELECT anrechnung_id, 'approved' as status_kurzbz FROM lehre.tbl_anrechnung WHERE genehmigt_von is not null;
|
||
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnung_anrechnungstatus TO web;
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnung_anrechnungstatus TO vilesci;
|
||
GRANT SELECT, UPDATE ON lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id TO vilesci;
|
||
GRANT SELECT, UPDATE ON lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_anrechnung_anrechnungstatus: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' lehre.tbl_anrechnung_anrechnungstatus: Tabelle hinzugefuegt<br>';
|
||
}
|
||
|
||
// Added Bezeichnung 'berufliche Praxis' to Anrechnungbegruendung
|
||
if ($result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_begruendung WHERE bezeichnung = 'berufliche Praxis';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO lehre.tbl_anrechnung_begruendung (bezeichnung) VALUES('berufliche Praxis');";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_anrechnung_begruendung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' lehre.tbl_anrechnung_begruendung: Added bezeichnung "berufliche Praxis" <br>';
|
||
}
|
||
}
|
||
|
||
// Add permission to apply for Anrechnung
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/anrechnung_beantragen';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/anrechnung_beantragen', 'Anrechnung beantragen');";
|
||
|
||
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/anrechnung_beantragen<br>';
|
||
}
|
||
}
|
||
|
||
// Add permission to approve Anrechnung
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/anrechnung_genehmigen';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnung_genehmigen', 'Anrechnung genehmigen');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for lehre/anrechnung_genehmigen<br>';
|
||
}
|
||
}
|
||
|
||
// Add permission to recommend Anrechnung
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/anrechnung_empfehlen';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnung_empfehlen', 'Anrechnung empfehlen');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for lehre/anrechnung_empfehlen<br>';
|
||
}
|
||
}
|
||
|
||
// Add permission to create Anrechnung
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/anrechnung_anlegen';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnung_anlegen', 'Anrechnung anlegen');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for lehre/anrechnung_anlegen<br>';
|
||
}
|
||
}
|
||
|
||
// INSERT,DELETE,UPDATE Berechtigung für tbl_dokumentprestudent hinzufügen
|
||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_dokumentprestudent' AND table_schema='public' AND grantee='web' AND privilege_type in ('INSERT','DELETE','UPDATE')"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "GRANT INSERT, DELETE, UPDATE ON public.tbl_dokumentprestudent TO web;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>dokumentprestudent Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to public.tbl_dokumentprestudent';
|
||
}
|
||
}
|
||
|
||
// Add table zgvpruefungstatus
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus LIMIT 1;"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE public.tbl_zgvpruefungstatus
|
||
(
|
||
status_kurzbz character varying(32),
|
||
bezeichnung character varying(256)
|
||
);
|
||
ALTER TABLE public.tbl_zgvpruefungstatus ADD CONSTRAINT status_kurzbz PRIMARY KEY (status_kurzbz);
|
||
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('pruefung_stg', 'Wird vom Studiengang geprüft');
|
||
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('rejected', 'Vom Studiengang abgelehnt');
|
||
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted', 'Vom Studiengang akzeptiert');
|
||
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted_pruefung', 'Vom Studiengang akzeptiert mit Prüfung');
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus TO vilesci;
|
||
GRANT SELECT ON public.tbl_zgvpruefungstatus TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_zgvpruefungstatus: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' public.tbl_zgvpruefungstatus: Tabelle hinzugefuegt<br>';
|
||
}
|
||
|
||
// Add table zgvpruefung
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefung LIMIT 1;"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE public.tbl_zgvpruefung
|
||
(
|
||
zgvpruefung_id integer NOT NULL,
|
||
prestudent_id integer NOT NULL,
|
||
insertamum timestamp without time zone,
|
||
insertvon character varying(32),
|
||
updateamum timestamp without time zone,
|
||
updatevon character varying(32)
|
||
);
|
||
CREATE SEQUENCE public.tbl_zgvpruefung_id_seq
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT pk_tbl_zgvpruefung PRIMARY KEY (zgvpruefung_id);
|
||
ALTER TABLE public.tbl_zgvpruefung ALTER COLUMN zgvpruefung_id SET DEFAULT nextval('public.tbl_zgvpruefung_id_seq');
|
||
ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT fk_tbl_zgvpruefung_student FOREIGN KEY (prestudent_id) REFERENCES public.tbl_prestudent (prestudent_id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
GRANT SELECT, UPDATE ON public.tbl_zgvpruefung_id_seq TO vilesci;
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefung TO vilesci;
|
||
GRANT SELECT ON public.tbl_zgvpruefung TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_zgvpruefung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' public.tbl_zgvpruefung: Tabelle hinzugefuegt<br>';
|
||
}
|
||
|
||
// Add table zgvpruefungstatus_status
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus_status LIMIT 1;"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE public.tbl_zgvpruefungstatus_status
|
||
(
|
||
zgv_pruefung_status_id integer NOT NULL,
|
||
zgvpruefung_id integer NOT NULL,
|
||
status character varying(32),
|
||
datum timestamp without time zone DEFAULT now()
|
||
);
|
||
CREATE SEQUENCE public.tbl_zgvpruefungstatus_status_id_seq
|
||
INCREMENT BY 1
|
||
NO MAXVALUE
|
||
NO MINVALUE
|
||
CACHE 1;
|
||
ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT pk_tbl_zgvpruefungstatus_status PRIMARY KEY (zgv_pruefung_status_id);
|
||
ALTER TABLE public.tbl_zgvpruefungstatus_status ALTER COLUMN zgv_pruefung_status_id SET DEFAULT nextval('tbl_zgvpruefungstatus_status_id_seq');
|
||
ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_zgvpruefung FOREIGN KEY (zgvpruefung_id) REFERENCES public.tbl_zgvpruefung (zgvpruefung_id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_status FOREIGN KEY (status) REFERENCES public.tbl_zgvpruefungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
GRANT SELECT, UPDATE ON public.tbl_zgvpruefungstatus_status_id_seq TO vilesci;
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus_status TO vilesci;
|
||
GRANT SELECT ON public.tbl_zgvpruefungstatus_status TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_zgvpruefungstatus_status: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' public.tbl_zgvpruefungstatus_status: Tabelle hinzugefuegt<br>';
|
||
}
|
||
|
||
// Add table adressentyp
|
||
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_adressentyp LIMIT 1;"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE public.tbl_adressentyp
|
||
(
|
||
adressentyp_kurzbz varchar(32),
|
||
bezeichnung varchar(256),
|
||
bezeichnung_mehrsprachig varchar(256)[],
|
||
sort smallint
|
||
);
|
||
|
||
COMMENT ON TABLE public.tbl_adressentyp IS 'Types of Addresses';
|
||
ALTER TABLE public.tbl_adressentyp ADD CONSTRAINT pk_tbl_adressentyp PRIMARY KEY (adressentyp_kurzbz);
|
||
|
||
INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('h', 'Hauptwohnsitz', '{\"Hauptwohnsitz\", \"Principal residence\"}', 1);
|
||
INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('n', 'Nebenwohnsitz', '{\"Nebenwohnsitz\", \"Secondary residence\"}', 2);
|
||
INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('ho', 'Homeoffice', '{\"Homeoffice\", \"Homeoffice\"}', 3);
|
||
INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('r', 'Rechnungsadresse', '{\"Rechnungsadresse\", \"Billing address\"}', 4);
|
||
INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('f', 'Firma', '{\"Firma\", \"Company\"}', 5);
|
||
|
||
UPDATE public.tbl_adresse SET typ = 'f' WHERE person_id IS NULL AND (typ IS NULL OR typ = '');
|
||
UPDATE public.tbl_adresse SET typ = 'h' WHERE person_id IS NOT NULL AND typ IS NULL;
|
||
|
||
ALTER TABLE public.tbl_adresse ADD CONSTRAINT fk_tbl_adresse_adressentyp FOREIGN KEY (typ) REFERENCES public.tbl_adressentyp (adressentyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE public.tbl_adresse ALTER COLUMN typ TYPE varchar(32);
|
||
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_adressentyp TO vilesci;
|
||
GRANT SELECT ON public.tbl_adressentyp TO web;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_adressentyp: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' public.tbl_adressentyp: Tabelle hinzugefuegt<br>';
|
||
}
|
||
|
||
// Add index to lehre.tbl_pruefung
|
||
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_pruefung_student_uid'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "CREATE INDEX idx_tbl_pruefung_student_uid ON lehre.tbl_pruefung USING btree (student_uid)";
|
||
|
||
if (! $db->db_query($qry))
|
||
echo '<strong>Indizes: ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo 'Index fuer lehre.pruefung.student_uid hinzugefuegt<br>';
|
||
}
|
||
}
|
||
|
||
// Added Buchungstyp "ZuschussIO"
|
||
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchungstyp_kurzbz = 'ZuschussIO';"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext) VALUES ('ZuschussIO', 'Zuschuss IO', 'Zuschuss Incoming Outgoing');";
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>public.tbl_buchungstyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' public.tbl_buchungstyp: Added buchungstyp "ZuschussIO" <br>';
|
||
}
|
||
}
|
||
//Add Column statusgrund_kurzbz to public.tbl_status_grund
|
||
if(!@$db->db_query("SELECT statusgrund_kurzbz FROM public.tbl_status_grund LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_status_grund ADD COLUMN statusgrund_kurzbz varchar(32);
|
||
ALTER TABLE public.tbl_status_grund ADD CONSTRAINT uk_tbl_statusgrund_kurzbz UNIQUE (statusgrund_kurzbz);
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_status_grund '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue Spalte statusgrund_kurzbz zu Tabelle public.tbl_status_grund hinzugefügt';
|
||
}
|
||
|
||
// Add permission to set gemeinde
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'basis/gemeinde';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('basis/gemeinde', 'Gemeindedaten pflegen');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisverwendung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' system.tbl_berechtigung: Added permission for basis/gemeinde<br>';
|
||
}
|
||
}
|
||
|
||
// Add column homeoffice to bis.tbl_bisverwendung
|
||
if (!$result = @$db->db_query("SELECT homeoffice FROM bis.tbl_bisverwendung LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE bis.tbl_bisverwendung ADD COLUMN homeoffice boolean NOT NULL DEFAULT FALSE";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisverwendung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_bisverwendung: Spalte homeoffice hinzugefuegt';
|
||
}
|
||
|
||
// ADD COLUMN homeoffice to campus.tbl_zeitaufzeichnung
|
||
if(!$result = @$db->db_query("SELECT homeoffice FROM campus.tbl_zeitaufzeichnung LIMIT 1"))
|
||
{
|
||
$qry = "
|
||
ALTER TABLE campus.tbl_zeitaufzeichnung ADD COLUMN homeoffice boolean NOT NULL DEFAULT false ;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>campus.tbl_zeitaufzeichnung: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>campus.tbl_zeitaufzeichnung Spalte homeoffice hinzugefügt.';
|
||
}
|
||
|
||
// INDEX idx_anrechnung_anrechnung_status_anrechnung_id
|
||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'idx_anrechnung_anrechnung_status_anrechnung_id'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = 'CREATE INDEX idx_anrechnung_anrechnung_status_anrechnung_id ON lehre.tbl_anrechnung_anrechnungstatus USING btree (anrechnung_id)';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>idx_anrechnung_anrechnung_status_anrechnung_id '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created Index idx_anrechnung_anrechnung_status_anrechnung_id';
|
||
}
|
||
}
|
||
|
||
// Add Table lehre.tbl_lehrmodus
|
||
if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_lehrmodus LIMIT 1;"))
|
||
{
|
||
$qry = "
|
||
CREATE TABLE lehre.tbl_lehrmodus
|
||
(
|
||
lehrmodus_kurzbz varchar(32) NOT NULL,
|
||
bezeichnung_mehrsprachig varchar(255)[],
|
||
aktiv boolean DEFAULT true
|
||
);
|
||
ALTER TABLE lehre.tbl_lehrmodus ADD CONSTRAINT pk_lehrmodus PRIMARY KEY (lehrmodus_kurzbz);
|
||
INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('regulaer', '{\"regulaer\",\"regular\"}');
|
||
INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('standardisiert', '{\"standardisiert\",\"standardized\"}');
|
||
GRANT SELECT ON lehre.tbl_lehrmodus TO web;
|
||
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_lehrmodus TO vilesci;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_lehrmodus: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo ' lehre.tbl_lehrmodus: Tabelle hinzugefuegt<br>';
|
||
}
|
||
|
||
//Add Column lehrmodus_kurzbz to lehre.tbl_lehrveranstaltung
|
||
if(!@$db->db_query("SELECT lehrmodus_kurzbz FROM lehre.tbl_lehrveranstaltung LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lehrmodus_kurzbz varchar(32);
|
||
ALTER TABLE lehre.tbl_lehrveranstaltung ADD CONSTRAINT fk_lehrveranstaltung_lehrmodus FOREIGN KEY (lehrmodus_kurzbz) REFERENCES lehre.tbl_lehrmodus(lehrmodus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>lehre.tbl_lehrveranstaltung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte lehrmodus_kurzbz in lehre.tbl_lehrveranstaltung hinzugefügt';
|
||
}
|
||
|
||
// Spalte matr_aktiv in tbl_person zum Markieren von noch nicht scharfgeschaltenen Matrikelnummern vom Datenverbund
|
||
if(!$result = @$db->db_query("SELECT matr_aktiv FROM public.tbl_person LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_person ADD COLUMN matr_aktiv boolean NOT NULL DEFAULT false;
|
||
COMMENT ON COLUMN public.tbl_person.matr_aktiv IS 'Zeigt an, ob Matrikelnummer aktiv oder nur vorläufig ist.';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_person: Spalte matr_aktiv hinzugefuegt';
|
||
|
||
$qry = "UPDATE public.tbl_person SET matr_aktiv = TRUE WHERE matr_nr IS NOT NULL;";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_person: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_person: Spalte matr_aktiv auf true gesetzt';
|
||
}
|
||
|
||
// Creates table bis.tbl_oehbeitrag if it doesn't exist and grants privileges
|
||
if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_oehbeitrag LIMIT 1'))
|
||
{
|
||
$qry = 'CREATE TABLE bis.tbl_oehbeitrag (
|
||
oehbeitrag_id integer NOT NULL,
|
||
studierendenbeitrag numeric(5,2) NOT NULL,
|
||
versicherung numeric(5,2) NOT NULL,
|
||
von_studiensemester_kurzbz varchar(16) NOT NULL,
|
||
bis_studiensemester_kurzbz varchar(16),
|
||
insertamum timestamp DEFAULT NOW(),
|
||
insertvon varchar(32),
|
||
updateamum timestamp,
|
||
updatevon varchar(32)
|
||
);
|
||
|
||
COMMENT ON TABLE bis.tbl_oehbeitrag IS \'Table to save amount of Oehbeitrag and Versicherung.\';
|
||
COMMENT ON COLUMN bis.tbl_oehbeitrag.studierendenbeitrag IS \'Amount of Studierendenbeitrag, Oehbeitrag without Versicherung.\';
|
||
COMMENT ON COLUMN bis.tbl_oehbeitrag.versicherung IS \'Amount of Versicherung as part of the Oehbeitrag\';
|
||
COMMENT ON COLUMN bis.tbl_oehbeitrag.von_studiensemester_kurzbz IS \'Semester from which amounts are valid\';
|
||
COMMENT ON COLUMN bis.tbl_oehbeitrag.bis_studiensemester_kurzbz IS \'Semester until which amounts are valid\';
|
||
|
||
CREATE SEQUENCE bis.seq_oehbeitrag_oehbeitrag_id
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
ALTER TABLE bis.tbl_oehbeitrag ALTER COLUMN oehbeitrag_id SET DEFAULT nextval(\'bis.seq_oehbeitrag_oehbeitrag_id\'::regclass);
|
||
|
||
GRANT SELECT, UPDATE ON SEQUENCE bis.seq_oehbeitrag_oehbeitrag_id TO vilesci;
|
||
GRANT SELECT, UPDATE ON SEQUENCE bis.seq_oehbeitrag_oehbeitrag_id TO fhcomplete;
|
||
|
||
ALTER TABLE bis.tbl_oehbeitrag ADD CONSTRAINT pk_oehbeitrag PRIMARY KEY (oehbeitrag_id);
|
||
|
||
ALTER TABLE bis.tbl_oehbeitrag ADD CONSTRAINT fk_oehbeitrag_von_studiensemester_kurzbz FOREIGN KEY (von_studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE bis.tbl_oehbeitrag ADD CONSTRAINT fk_oehbeitrag_bis_studiensemester_kurzbz FOREIGN KEY (bis_studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
|
||
ALTER TABLE bis.tbl_oehbeitrag ADD CONSTRAINT uk_oehbeitrag_von_studiensemester_kurzbz UNIQUE (von_studiensemester_kurzbz);';
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_oehbeitrag: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>bis.tbl_oehbeitrag table created';
|
||
|
||
$qry = 'GRANT SELECT ON TABLE bis.tbl_oehbeitrag TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_oehbeitrag: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on bis.tbl_oehbeitrag';
|
||
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_oehbeitrag TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_oehbeitrag: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on bis.tbl_oehbeitrag';
|
||
}
|
||
|
||
// Add column melderelevant to public.tbl_studiengang and prefill values
|
||
if (!$result = @$db->db_query("SELECT melderelevant FROM public.tbl_studiengang LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_studiengang ADD COLUMN melderelevant boolean NOT NULL DEFAULT FALSE;
|
||
UPDATE public.tbl_studiengang SET melderelevant = TRUE WHERE tbl_studiengang.studiengang_kz < 10000 AND tbl_studiengang.studiengang_kz <> 0;
|
||
COMMENT ON COLUMN public.tbl_studiengang.melderelevant IS 'Zeigt an, ob Studierende aus Studiengang an Ministerien gemeldet werden müssen'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_studiengang: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_studiengang: Neue Spalte melderelevant hinzugefuegt.';
|
||
}
|
||
|
||
// TABLE bis.tbl_bisstandort
|
||
if (!@$db->db_query("SELECT 1 FROM bis.tbl_bisstandort LIMIT 1"))
|
||
{
|
||
$qry = "CREATE TABLE bis.tbl_bisstandort (
|
||
standort_code integer,
|
||
bezeichnung character varying(256),
|
||
aktiv boolean NOT NULL DEFAULT TRUE,
|
||
insertamum timestamp DEFAULT NOW(),
|
||
insertvon varchar(32),
|
||
updateamum timestamp,
|
||
updatevon varchar(32)
|
||
);
|
||
ALTER TABLE bis.tbl_bisstandort ADD CONSTRAINT pk_bisstandort PRIMARY KEY (standort_code);
|
||
COMMENT ON TABLE bis.tbl_bisstandort IS 'Key-Table of Locations';";
|
||
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisstandort '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Created table bis.tbl_bisstandort';
|
||
|
||
// GRANT SELECT ON TABLE bis.tbl_bisstandort TO web;
|
||
$qry = 'GRANT SELECT ON TABLE bis.tbl_bisstandort TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisstandort '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on bis.tbl_bisstandort';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_bisstandort TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_bisstandort TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>bis.tbl_bisstandort '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on bis.tbl_bisstandort';
|
||
}
|
||
|
||
// Add columns foerderrelevant and standort to public.tbl_studiengang
|
||
if (!$result = @$db->db_query("SELECT foerderrelevant, standort_code FROM public.tbl_studiengang LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_studiengang ADD COLUMN foerderrelevant boolean NOT NULL DEFAULT TRUE;
|
||
ALTER TABLE public.tbl_studiengang ADD COLUMN standort_code integer;
|
||
ALTER TABLE public.tbl_studiengang ADD CONSTRAINT fk_studiengang_standort_code FOREIGN KEY (standort_code) REFERENCES bis.tbl_bisstandort(standort_code) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
COMMENT ON COLUMN public.tbl_studiengang.foerderrelevant IS 'Zeigt an, ob Studierende aus Studiengang bei Meldung für Förderungen relevant sind';
|
||
COMMENT ON COLUMN public.tbl_studiengang.standort_code IS 'Zu meldender Standortcode der Studierenden des Studiengangs'";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_studiengang: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_studiengang: Neue Spalten foerderrelevant, standort_code hinzugefuegt.';
|
||
}
|
||
|
||
// Add columns foerderrelevant and standort to public.tbl_prestudent
|
||
if (!$result = @$db->db_query("SELECT foerderrelevant, standort_code FROM public.tbl_prestudent LIMIT 1"))
|
||
{
|
||
$qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN foerderrelevant boolean;
|
||
ALTER TABLE public.tbl_prestudent ADD COLUMN standort_code integer;
|
||
ALTER TABLE public.tbl_prestudent ADD CONSTRAINT fk_prestudent_standort_code FOREIGN KEY (standort_code) REFERENCES bis.tbl_bisstandort(standort_code) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
UPDATE public.tbl_prestudent ps -- set foerderrelevant false for incoming, ausserordentlich, gsextern
|
||
SET foerderrelevant = FALSE
|
||
WHERE EXISTS (SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id = ps.prestudent_id AND status_kurzbz = 'Incoming') -- incoming
|
||
OR EXISTS (SELECT 1 FROM public.tbl_prestudent
|
||
JOIN public.tbl_person USING (person_id)
|
||
LEFT JOIN public.tbl_student USING (prestudent_id)
|
||
LEFT JOIN bis.tbl_gsstudientyp USING (gsstudientyp_kurzbz)
|
||
WHERE prestudent_id = ps.prestudent_id
|
||
AND (SUBSTRING(matrikelnr, 4, 1) = '9' -- ausserordentlich
|
||
OR studientyp_code = 'E')); -- extern
|
||
COMMENT ON COLUMN public.tbl_prestudent.foerderrelevant IS 'Zeigt an, ob Studierende bei Meldung für Förderungen relevant sind. Überschreibt förderrelevant auf Studienganglevel.';
|
||
COMMENT ON COLUMN public.tbl_prestudent.standort_code IS 'Zu meldender Standortcode des Studierenden. Überschreibt standort auf Studienganglevel.';";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>public.tbl_prestudent: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>public.tbl_prestudent: Neue Spalten foerderrelevant, standort_code hinzugefuegt.';
|
||
}
|
||
|
||
// App 'dvuh' hinzufügen
|
||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='dvuh'"))
|
||
{
|
||
if($db->db_num_rows($result)==0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_app(app) VALUES('dvuh');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>App: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Neue App dvuh in system.tbl_app hinzugefügt';
|
||
}
|
||
}
|
||
|
||
// Add table issue_status
|
||
if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_issue_status LIMIT 1;"))
|
||
{
|
||
$qry = "CREATE TABLE system.tbl_issue_status (
|
||
status_kurzbz character varying(32),
|
||
bezeichnung_mehrsprachig varchar(32)[]
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_issue_status IS 'Tabelle zur Pflege von Bearbeitungsstatus von issues.';
|
||
|
||
ALTER TABLE system.tbl_issue_status ADD CONSTRAINT pk_tbl_issue_status PRIMARY KEY (status_kurzbz);
|
||
|
||
INSERT INTO system.tbl_issue_status (status_kurzbz, bezeichnung_mehrsprachig) VALUES('new', '{\"neu\",\"new\"}');
|
||
INSERT INTO system.tbl_issue_status (status_kurzbz, bezeichnung_mehrsprachig) VALUES('inProgress', '{\"in Bearbeitung\",\"in progress\"}');
|
||
INSERT INTO system.tbl_issue_status (status_kurzbz, bezeichnung_mehrsprachig) VALUES('resolved', '{\"behoben\",\"resolved\"}');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_issue_status: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_issue_status: Tabelle hinzugefuegt';
|
||
|
||
// GRANT SELECT ON TABLE system.tbl_issue_status TO web;
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_issue_status TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_issue_status '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_issue_status';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_issue_status TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_issue_status TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_issue_status '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_issue_status';
|
||
}
|
||
|
||
// Add table fehlertyp
|
||
if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_fehlertyp LIMIT 1;"))
|
||
{
|
||
$qry = "CREATE TABLE system.tbl_fehlertyp (
|
||
fehlertyp_kurzbz character varying(32),
|
||
bezeichnung_mehrsprachig varchar(32)[]
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_fehlertyp IS 'Tabelle mit fehlertyp für tbl_fehler';
|
||
|
||
ALTER TABLE system.tbl_fehlertyp ADD CONSTRAINT pk_tbl_fehlertyp PRIMARY KEY (fehlertyp_kurzbz);
|
||
|
||
INSERT INTO system.tbl_fehlertyp (fehlertyp_kurzbz, bezeichnung_mehrsprachig) VALUES('warning', '{\"warnung\",\"warning\"}');
|
||
INSERT INTO system.tbl_fehlertyp (fehlertyp_kurzbz, bezeichnung_mehrsprachig) VALUES('error', '{\"fehler\",\"error\"}');
|
||
INSERT INTO system.tbl_fehlertyp (fehlertyp_kurzbz, bezeichnung_mehrsprachig) VALUES('info', '{\"info\",\"info\"}');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehlertyp: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_fehlertyp: Tabelle hinzugefuegt';
|
||
|
||
// GRANT SELECT ON TABLE system.tbl_fehlertyp TO web;
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_fehlertyp TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehlertyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_fehlertyp';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_fehlertyp TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_fehlertyp TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehlertyp '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_fehlertyp';
|
||
}
|
||
|
||
// Add table fehler
|
||
if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_fehler LIMIT 1;"))
|
||
{
|
||
$qry = "CREATE TABLE system.tbl_fehler (
|
||
fehlercode character varying(64),
|
||
fehler_kurzbz character varying(64) UNIQUE,
|
||
fehlercode_extern character varying(64),
|
||
fehlertext text,
|
||
fehlertyp_kurzbz character varying(32) NOT NULL,
|
||
app character varying(32) NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_fehler IS 'Tabelle zur Pflege von Fehlerfällen';
|
||
COMMENT ON COLUMN system.tbl_fehler.fehlercode IS 'Eindeutiger interner Fehlercode';
|
||
COMMENT ON COLUMN system.tbl_fehler.fehler_kurzbz IS 'Eindeutige Kurzbezeichnung für den Fehler';
|
||
COMMENT ON COLUMN system.tbl_fehler.fehlercode_extern IS 'Code für von vordefinierte, von externen Systemen produzierte Fehler';
|
||
COMMENT ON COLUMN system.tbl_fehler.fehlertext IS 'Interner, eigens definierter Fehlertext mit Platzhaltern für Parameter';
|
||
COMMENT ON COLUMN system.tbl_fehler.fehlertyp_kurzbz IS 'Typ bzw Schweregrad (z.B. warnung, fehler)';
|
||
COMMENT ON COLUMN system.tbl_fehler.app IS 'Ursprungsapp des Fehlers';
|
||
|
||
ALTER TABLE system.tbl_fehler ADD CONSTRAINT pk_tbl_fehler PRIMARY KEY (fehlercode);
|
||
ALTER TABLE system.tbl_fehler ADD CONSTRAINT fk_tbl_fehler_fehlertyp_kurzbz FOREIGN KEY (fehlertyp_kurzbz) REFERENCES system.tbl_fehlertyp(fehlertyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_fehler ADD CONSTRAINT fk_tbl_fehler_app FOREIGN KEY (app) REFERENCES system.tbl_app(app) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_fehler ADD CONSTRAINT uk_tbl_fehler_fehlercode_fehler_kurzbz UNIQUE (fehlercode, fehler_kurzbz); -- for upsert ON CONFLICT
|
||
ALTER TABLE system.tbl_fehler ADD CONSTRAINT uk_tbl_fehler_fehlercode_extern_app UNIQUE (fehlercode_extern, app); -- for recognizing external errors
|
||
|
||
INSERT INTO system.tbl_fehler (fehlercode, fehlertext, fehlertyp_kurzbz, app) VALUES ('UNKNOWN_ERROR', 'Fehler ist aufgetreten', 'error', 'core');
|
||
";
|
||
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehler: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_fehler: Tabelle hinzugefuegt';
|
||
|
||
// GRANT SELECT ON TABLE system.tbl_fehler TO web;
|
||
$qry = 'GRANT SELECT, UPDATE ON TABLE system.tbl_fehler TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehler '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_fehler';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_fehler TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_fehler TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehler '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_fehler';
|
||
}
|
||
|
||
// Add table fehler_zustaendigkeiten
|
||
if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_fehler_zustaendigkeiten LIMIT 1;"))
|
||
{
|
||
$qry = "CREATE TABLE system.tbl_fehler_zustaendigkeiten (
|
||
fehlerzustaendigkeiten_id character varying(64) NOT NULL,
|
||
fehlercode character varying(64) NOT NULL,
|
||
person_id integer,
|
||
oe_kurzbz character varying(32),
|
||
funktion_kurzbz character varying(16)
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_fehler_zustaendigkeiten IS 'Tabelle zum Hinzufügen für Zuständigkeiten für einzelne Fehler';
|
||
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.fehlercode IS 'Eindeutiger interner Fehlercode';
|
||
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.person_id IS 'person_id der zuständigen Person';
|
||
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.oe_kurzbz IS 'Zuständigkeit für einen fehlercode für eine ganze OE';
|
||
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.funktion_kurzbz IS 'Zusätzliche Einschränkung der OE Zuständigkeit nach funktion';
|
||
|
||
CREATE SEQUENCE system.seq_fehlerzustaendigkeiten_id
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
ALTER TABLE ONLY system.tbl_fehler_zustaendigkeiten ALTER COLUMN fehlerzustaendigkeiten_id SET DEFAULT nextval('system.seq_fehlerzustaendigkeiten_id'::regclass);
|
||
|
||
GRANT SELECT, UPDATE ON SEQUENCE system.seq_fehlerzustaendigkeiten_id TO vilesci;
|
||
GRANT SELECT, UPDATE ON SEQUENCE system.seq_fehlerzustaendigkeiten_id TO fhcomplete;
|
||
|
||
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT pk_tbl_fehler_zustaendigkeiten PRIMARY KEY (fehlerzustaendigkeiten_id);
|
||
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_fehlercode FOREIGN KEY (fehlercode) REFERENCES system.tbl_fehler(fehlercode) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_funktion_kurzbz FOREIGN KEY (funktion_kurzbz) REFERENCES public.tbl_funktion(funktion_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
|
||
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT uk_tbl_fehler_zustaendigkeiten_fehlercode_person_id UNIQUE (fehlercode, person_id);
|
||
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT uk_tbl_fehler_zustaendigkeiten_fehlercode_oe_kurzbz_funktion_kurzbz UNIQUE (fehlercode, oe_kurzbz, funktion_kurzbz);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehler_zustaendigkeiten: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_fehler_zustaendigkeiten: Tabelle hinzugefuegt';
|
||
|
||
// GRANT SELECT ON TABLE system.tbl_fehler_zustaendigkeiten TO web;
|
||
$qry = 'GRANT SELECT ON TABLE system.tbl_fehler_zustaendigkeiten TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehler_zustaendigkeiten '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_fehler_zustaendigkeiten';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_fehler_zustaendigkeiten TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_fehler_zustaendigkeiten TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_fehler_zustaendigkeiten '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_fehler_zustaendigkeiten';
|
||
}
|
||
|
||
// Add table issue
|
||
if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_issue LIMIT 1;"))
|
||
{
|
||
$qry = "CREATE TABLE system.tbl_issue (
|
||
issue_id integer,
|
||
fehlercode character varying(64) NOT NULL,
|
||
inhalt text,
|
||
fehlercode_extern character varying(64),
|
||
inhalt_extern text,
|
||
person_id integer,
|
||
oe_kurzbz character varying(32),
|
||
datum timestamp without time zone NOT NULL,
|
||
verarbeitetvon character varying(32),
|
||
verarbeitetamum timestamp without time zone,
|
||
status_kurzbz character varying(32) NOT NULL,
|
||
insertvon character varying(32),
|
||
insertamum timestamp without time zone DEFAULT now(),
|
||
updatevon character varying(32),
|
||
updateamum timestamp without time zone
|
||
);
|
||
|
||
COMMENT ON TABLE system.tbl_issue IS 'Tabelle zur Verfolgung von Problemen/Fehlern von verschiedenen Systemen';
|
||
COMMENT ON COLUMN system.tbl_issue.issue_id IS 'Primärschlüssel';
|
||
COMMENT ON COLUMN system.tbl_issue.fehlercode IS 'Identifikationscode des Problems/Fehlers, kann von anderem System kommen oder eigens definiert sein';
|
||
COMMENT ON COLUMN system.tbl_issue.inhalt IS 'Fehlertext';
|
||
COMMENT ON COLUMN system.tbl_issue.fehlercode_extern IS 'Externer, von App geschriebener Fehlercode. Zum Auseinanderhalten der externen Fehler, die nicht in tbl_fehler definiert sind.';
|
||
COMMENT ON COLUMN system.tbl_issue.inhalt_extern IS 'von externem System kommender Fehlermeldungstext';
|
||
COMMENT ON COLUMN system.tbl_issue.datum IS 'Tag und Zeit des Auftritts des Problems';
|
||
COMMENT ON COLUMN system.tbl_issue.verarbeitetvon IS 'uid des Nutzers, der das Problem verarbeitet hat';
|
||
COMMENT ON COLUMN system.tbl_issue.verarbeitetamum IS 'Tag und Zeit der Problemverarbeitung';
|
||
COMMENT ON COLUMN system.tbl_issue.person_id IS 'Id der Person, für welche das issue besteht';
|
||
COMMENT ON COLUMN system.tbl_issue.oe_kurzbz IS 'Betroffene Organisationseinheit';
|
||
COMMENT ON COLUMN system.tbl_issue.status_kurzbz IS 'Verarbeitsungsstatus';
|
||
|
||
CREATE SEQUENCE system.seq_issue_id
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
ALTER TABLE ONLY system.tbl_issue ALTER COLUMN issue_id SET DEFAULT nextval('system.seq_issue_id'::regclass);
|
||
|
||
GRANT SELECT, UPDATE ON SEQUENCE system.seq_issue_id TO vilesci;
|
||
GRANT SELECT, UPDATE ON SEQUENCE system.seq_issue_id TO fhcomplete;
|
||
|
||
ALTER TABLE system.tbl_issue ADD CONSTRAINT pk_tbl_issue PRIMARY KEY (issue_id);
|
||
|
||
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_fehlercode FOREIGN KEY (fehlercode) REFERENCES system.tbl_fehler(fehlercode) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_verarbeitetvon FOREIGN KEY (verarbeitetvon) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||
|
||
ALTER TABLE system.tbl_issue ADD CONSTRAINT chk_tbl_issue_person_id_oe_kurzbz CHECK (person_id IS NOT NULL OR oe_kurzbz IS NOT NULL);
|
||
|
||
CREATE INDEX idx_tbl_issue_person_id ON system.tbl_issue USING btree (person_id);
|
||
CREATE INDEX idx_tbl_issue_oe_kurzbz ON system.tbl_issue USING btree (oe_kurzbz);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_issue: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_issue: Tabelle hinzugefuegt';
|
||
|
||
// GRANT SELECT ON TABLE system.tbl_issue TO web;
|
||
$qry = 'GRANT SELECT, UPDATE ON TABLE system.tbl_issue TO web;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_issue '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>web</strong> on system.tbl_issue';
|
||
|
||
// GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_issue TO vilesci;
|
||
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_issue TO vilesci;';
|
||
if (!$db->db_query($qry))
|
||
echo '<strong>system.tbl_issue '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Granted privileges to <strong>vilesci</strong> on system.tbl_issue';
|
||
}
|
||
|
||
// Add permission to manage issues
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'system/issues_verwalten';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('system/issues_verwalten', 'Issues verwalten');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_berechtigung: Added permission for system/issues_verwalten';
|
||
}
|
||
}
|
||
|
||
// Add permission to manage bpk in FAS
|
||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/bpk';"))
|
||
{
|
||
if($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/bpk', 'BPK verwalten');";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>system.tbl_berechtigung: Added permission for student/bpk';
|
||
}
|
||
}
|
||
|
||
// Add index to campus.tbl_zeitaufzeichnung.uid
|
||
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_zeitaufzeichnung_uid'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "CREATE INDEX idx_tbl_zeitaufzeichnung_uid ON campus.tbl_zeitaufzeichnung USING btree (uid)";
|
||
|
||
if (! $db->db_query($qry))
|
||
echo '<strong>Indizes: ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo 'Index fuer campus.tbl_zeitaufzeichnung.uid hinzugefuegt<br>';
|
||
}
|
||
}
|
||
|
||
// Change size of wawi.tbl_kostenstelle.kostenstelle_nr from character varying(4) to character varying(6)
|
||
if ($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='wawi' AND TABLE_NAME='tbl_kostenstelle' AND COLUMN_NAME = 'kostenstelle_nr' AND character_maximum_length < 6"))
|
||
{
|
||
if ($db->db_num_rows($result) > 0)
|
||
{
|
||
$qry = "ALTER TABLE wawi.tbl_kostenstelle ALTER COLUMN kostenstelle_nr TYPE varchar(6);";
|
||
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>wawi.tbl_kostenstelle '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Spalte kostenstelle_nr in wawi.tbl_kostenstelle von varchar(4) auf varchar(6) geändert<br>';
|
||
}
|
||
}
|
||
|
||
// Add column parameterFuerBehebung to system.tbl_issue
|
||
if(!$result = @$db->db_query("SELECT behebung_parameter FROM system.tbl_issue LIMIT 1"))
|
||
{
|
||
$qry = 'ALTER TABLE system.tbl_issue ADD COLUMN behebung_parameter JSONB;';
|
||
if(!$db->db_query($qry))
|
||
echo '<strong>system.tbl_issue: '.$db->db_last_error().'</strong><br>';
|
||
else
|
||
echo '<br>Added column behebung_parameter to table system.tbl_issue';
|
||
}
|
||
|
||
// Add index beschreibung to system.tbl_webservicelog
|
||
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_webservicelog_beschreibung'"))
|
||
{
|
||
if ($db->db_num_rows($result) == 0)
|
||
{
|
||
$qry = "CREATE INDEX idx_webservicelog_beschreibung ON system.tbl_webservicelog USING btree (beschreibung)";
|
||
|
||
if (! $db->db_query($qry))
|
||
echo '<strong>Indizes: ' . $db->db_last_error() . '</strong><br>';
|
||
else
|
||
echo 'Index fuer system.tbl_webservicelog hinzugefuegt';
|
||
}
|
||
}
|
||
|
||
|
||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||
|
||
$tabellen=array(
|
||
"bis.tbl_bisorgform" => array("bisorgform_kurzbz","code","bezeichnung"),
|
||
"bis.tbl_archiv" => array("archiv_id","studiensemester_kurzbz","meldung","html","studiengang_kz","insertamum","insertvon","typ"),
|
||
"bis.tbl_aufenthaltfoerderung" => array("aufenthaltfoerderung_code", "bezeichnung"),
|
||
"bis.tbl_bisio_aufenthaltfoerderung" => array("bisio_id","aufenthaltfoerderung_code"),
|
||
"bis.tbl_ausbildung" => array("ausbildungcode","ausbildungbez","ausbildungbeschreibung"),
|
||
"bis.tbl_berufstaetigkeit" => array("berufstaetigkeit_code","berufstaetigkeit_bez","berufstaetigkeit_kurzbz"),
|
||
"bis.tbl_beschaeftigungsart1" => array("ba1code","ba1bez","ba1kurzbz","ba1code_bis"),
|
||
"bis.tbl_beschaeftigungsart2" => array("ba2code","ba2bez"),
|
||
"bis.tbl_beschaeftigungsausmass" => array("beschausmasscode","beschausmassbez","min","max"),
|
||
"bis.tbl_besqual" => array("besqualcode","besqualbez"),
|
||
"bis.tbl_bisfunktion" => array("bisverwendung_id","studiengang_kz","sws","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"bis.tbl_bisio" => array("bisio_id","mobilitaetsprogramm_code","nation_code","von","bis","zweck_code","student_uid","updateamum","updatevon","insertamum","insertvon","ext_id","ort","universitaet","lehreinheit_id","ects_erworben","ects_angerechnet"),
|
||
"bis.tbl_bisio_zweck" => array("bisio_id","zweck_code"),
|
||
"bis.tbl_bisstandort" => array("standort_code","bezeichnung","aktiv","insertamum","insertvon","updateamum","updatevon"),
|
||
"bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art","inkludierte_lehre","zeitaufzeichnungspflichtig","azgrelevant", "homeoffice"),
|
||
"bis.tbl_bundesland" => array("bundesland_code","kurzbz","bezeichnung"),
|
||
"bis.tbl_entwicklungsteam" => array("mitarbeiter_uid","studiengang_kz","besqualcode","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"bis.tbl_gemeinde" => array("gemeinde_id","plz","name","ortschaftskennziffer","ortschaftsname","bulacode","bulabez","kennziffer"),
|
||
"bis.tbl_gsstudientyp" => array("gsstudientyp_kurzbz","bezeichnung","studientyp_code"),
|
||
"bis.tbl_gsprogrammtyp" => array("gsprogrammtyp_kurzbz","bezeichnung","programmtyp_code"),
|
||
"bis.tbl_gsprogramm" => array("gsprogramm_id","programm_code","bezeichnung","gsprogrammtyp_kurzbz"),
|
||
"bis.tbl_hauptberuf" => array("hauptberufcode","bezeichnung"),
|
||
"bis.tbl_lgartcode" => array("lgartcode","kurzbz","bezeichnung","beantragung","lgart_biscode"),
|
||
"bis.tbl_mobilitaet" => array("mobilitaet_id","prestudent_id","mobilitaetstyp_kurzbz","studiensemester_kurzbz","mobilitaetsprogramm_code","gsprogramm_id","firma_id","status_kurzbz","ausbildungssemester","insertvon","insertamum","updatevon","updateamum"),
|
||
"bis.tbl_mobilitaetstyp" => array("mobilitaetstyp_kurzbz","bezeichnung","aktiv"),
|
||
"bis.tbl_mobilitaetsprogramm" => array("mobilitaetsprogramm_code","kurzbz","beschreibung","sichtbar","sichtbar_outgoing"),
|
||
"bis.tbl_nation" => array("nation_code","entwicklungsstand","eu","ewr","kontinent","kurztext","langtext","engltext","sperre","nationengruppe_kurzbz", "iso3166_1_a2","iso3166_1_a3"),
|
||
"bis.tbl_nationengruppe" => array("nationengruppe_kurzbz","nationengruppe_bezeichnung","aktiv"),
|
||
"bis.tbl_oehbeitrag" => array("oehbeitrag_id","studierendenbeitrag","versicherung","von_studiensemester_kurzbz","bis_studiensemester_kurzbz","insertamum","insertvon","updateamum","updatevon"),
|
||
"bis.tbl_orgform" => array("orgform_kurzbz","code","bezeichnung","rolle","bisorgform_kurzbz","bezeichnung_mehrsprachig"),
|
||
"bis.tbl_verwendung" => array("verwendung_code","verwendungbez"),
|
||
"bis.tbl_zgv" => array("zgv_code","zgv_bez","zgv_kurzbz","bezeichnung"),
|
||
"bis.tbl_zgvmaster" => array("zgvmas_code","zgvmas_bez","zgvmas_kurzbz","bezeichnung"),
|
||
"bis.tbl_zgvdoktor" => array("zgvdoktor_code", "zgvdoktor_bez", "zgvdoktor_kurzbz","bezeichnung"),
|
||
"bis.tbl_zweck" => array("zweck_code","kurzbz","bezeichnung","incoming","outgoing"),
|
||
"bis.tbl_zgvgruppe" => array("gruppe_kurzbz","bezeichnung"),
|
||
"bis.tbl_zgvgruppe_zuordnung" => array("zgvgruppe_id" ,"studiengang_kz","zgv_code","zgvmas_code","gruppe_kurzbz"),
|
||
"campus.tbl_abgabe" => array("abgabe_id","abgabedatei","abgabezeit","anmerkung"),
|
||
"campus.tbl_anwesenheit" => array("anwesenheit_id","uid","einheiten","datum","anwesend","lehreinheit_id","anmerkung","ext_id"),
|
||
"campus.tbl_beispiel" => array("beispiel_id","uebung_id","nummer","bezeichnung","punkte","updateamum","updatevon","insertamum","insertvon"),
|
||
"campus.tbl_benutzerlvstudiensemester" => array("uid","studiensemester_kurzbz","lehrveranstaltung_id"),
|
||
"campus.tbl_content" => array("content_id","template_kurzbz","updatevon","updateamum","insertamum","insertvon","oe_kurzbz","menu_open","aktiv","beschreibung"),
|
||
"campus.tbl_contentchild" => array("contentchild_id","content_id","child_content_id","updatevon","updateamum","insertamum","insertvon","sort"),
|
||
"campus.tbl_contentgruppe" => array("content_id","gruppe_kurzbz","insertamum","insertvon"),
|
||
"campus.tbl_contentlog" => array("contentlog_id","contentsprache_id","uid","start","ende"),
|
||
"campus.tbl_contentsprache" => array("contentsprache_id","content_id","sprache","version","sichtbar","content","reviewvon","reviewamum","updateamum","updatevon","insertamum","insertvon","titel","gesperrt_uid"),
|
||
"campus.tbl_coodle" => array("coodle_id","titel","beschreibung","coodle_status_kurzbz","dauer","endedatum","insertamum","insertvon","updateamum","updatevon","ersteller_uid","mailversand","teilnehmer_anonym","termine_anonym"),
|
||
"campus.tbl_coodle_ressource" => array("coodle_ressource_id","coodle_id","uid","ort_kurzbz","email","name","zugangscode","insertamum","insertvon","updateamum","updatevon"),
|
||
"campus.tbl_coodle_termin" => array("coodle_termin_id","coodle_id","datum","uhrzeit","auswahl"),
|
||
"campus.tbl_coodle_ressource_termin" => array("coodle_ressource_id","coodle_termin_id","insertamum","insertvon"),
|
||
"campus.tbl_coodle_status" => array("coodle_status_kurzbz","bezeichnung"),
|
||
"campus.tbl_dms" => array("dms_id","oe_kurzbz","dokument_kurzbz","kategorie_kurzbz"),
|
||
"campus.tbl_dms_kategorie" => array("kategorie_kurzbz","bezeichnung","beschreibung","parent_kategorie_kurzbz","oe_kurzbz","berechtigung_kurzbz"),
|
||
"campus.tbl_dms_kategorie_gruppe" => array("kategorie_kurzbz","gruppe_kurzbz","insertamum","insertvon"),
|
||
"campus.tbl_dms_version" => array("dms_id","version","filename","mimetype","name","beschreibung","letzterzugriff","updateamum","updatevon","insertamum","insertvon","cis_suche","schlagworte"),
|
||
"campus.tbl_erreichbarkeit" => array("erreichbarkeit_kurzbz","beschreibung","farbe"),
|
||
"campus.tbl_feedback" => array("feedback_id","betreff","text","datum","uid","lehrveranstaltung_id","updateamum","updatevon","insertamum","insertvon"),
|
||
"campus.tbl_freebusy" => array("freebusy_id","uid","freebusytyp_kurzbz","url","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
|
||
"campus.tbl_freebusytyp" => array("freebusytyp_kurzbz","bezeichnung","beschreibung","url_vorlage"),
|
||
"campus.tbl_infoscreen" => array("infoscreen_id","bezeichnung","beschreibung","ipadresse"),
|
||
"campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit","exklusiv"),
|
||
"campus.tbl_legesamtnote" => array("student_uid","lehreinheit_id","note","benotungsdatum","updateamum","updatevon","insertamum","insertvon"),
|
||
"campus.tbl_lehre_tools" => array("lehre_tools_id","bezeichnung","kurzbz","basis_url","logo_dms_id"),
|
||
"campus.tbl_lehre_tools_organisationseinheit" => array("lehre_tools_id","oe_kurzbz","aktiv"),
|
||
"campus.tbl_lehrveranstaltung_pruefung" => array("lehrveranstaltung_pruefung_id","lehrveranstaltung_id","pruefung_id"),
|
||
"campus.tbl_lvgesamtnote" => array("lehrveranstaltung_id","studiensemester_kurzbz","student_uid","note","mitarbeiter_uid","benotungsdatum","freigabedatum","freigabevon_uid","bemerkung","updateamum","updatevon","insertamum","insertvon","punkte","ext_id"),
|
||
"campus.tbl_lvinfo" => array("lehrveranstaltung_id","sprache","titel","lehrziele","lehrinhalte","methodik","voraussetzungen","unterlagen","pruefungsordnung","anmerkung","kurzbeschreibung","genehmigt","aktiv","updateamum","updatevon","insertamum","insertvon","anwesenheit"),
|
||
"campus.tbl_news" => array("news_id","uid","studiengang_kz","fachbereich_kurzbz","semester","betreff","text","datum","verfasser","updateamum","updatevon","insertamum","insertvon","datum_bis","content_id"),
|
||
"campus.tbl_notenschluessel" => array("lehreinheit_id","note","punkte"),
|
||
"campus.tbl_notenschluesseluebung" => array("uebung_id","note","punkte"),
|
||
"campus.tbl_paabgabetyp" => array("paabgabetyp_kurzbz","bezeichnung"),
|
||
"campus.tbl_paabgabe" => array("paabgabe_id","projektarbeit_id","paabgabetyp_kurzbz","fixtermin","datum","kurzbz","abgabedatum", "insertvon","insertamum","updatevon","updateamum"),
|
||
"campus.tbl_pruefungsfenster" => array("pruefungsfenster_id","studiensemester_kurzbz","oe_kurzbz","start","ende"),
|
||
"campus.tbl_pruefung" => array("pruefung_id","mitarbeiter_uid","studiensemester_kurzbz","pruefungsfenster_id","pruefungstyp_kurzbz","titel","beschreibung","methode","einzeln","storniert","insertvon","insertamum","updatevon","updateamum","pruefungsintervall"),
|
||
"campus.tbl_pruefungstermin" => array("pruefungstermin_id","pruefung_id","von","bis","teilnehmer_max","teilnehmer_min","anmeldung_von","anmeldung_bis","ort_kurzbz","sammelklausur"),
|
||
"campus.tbl_pruefungsanmeldung" => array("pruefungsanmeldung_id","uid","pruefungstermin_id","lehrveranstaltung_id","status_kurzbz","wuensche","reihung","kommentar","statusupdatevon","statusupdateamum","anrechnung_id","pruefungstyp_kurzbz","insertamum"),
|
||
"campus.tbl_pruefungsstatus" => array("status_kurzbz","bezeichnung"),
|
||
"campus.tbl_reservierung" => array("reservierung_id","ort_kurzbz","studiengang_kz","uid","stunde","datum","titel","beschreibung","semester","verband","gruppe","gruppe_kurzbz","veranstaltung_id","insertamum","insertvon"),
|
||
"campus.tbl_studentbeispiel" => array("student_uid","beispiel_id","vorbereitet","probleme","updateamum","updatevon","insertamum","insertvon"),
|
||
"campus.tbl_studentuebung" => array("student_uid","mitarbeiter_uid","abgabe_id","uebung_id","note","mitarbeitspunkte","punkte","anmerkung","benotungsdatum","updateamum","updatevon","insertamum","insertvon"),
|
||
"campus.tbl_template" => array("template_kurzbz","bezeichnung","xsd","xslt_xhtml","xslfo_pdf"),
|
||
"campus.tbl_uebung" => array("uebung_id","gewicht","punkte","angabedatei","freigabevon","freigabebis","abgabe","beispiele","statistik","bezeichnung","positiv","defaultbemerkung","lehreinheit_id","maxstd","maxbsp","liste_id","prozent","nummer","updateamum","updatevon","insertamum","insertvon"),
|
||
"campus.tbl_veranstaltung" => array("veranstaltung_id","titel","beschreibung","veranstaltungskategorie_kurzbz","inhalt","start","ende","freigabevon","freigabeamum","updateamum","updatevon","insertamum","insertvon"),
|
||
"campus.tbl_veranstaltungskategorie" => array("veranstaltungskategorie_kurzbz","bezeichnung","bild","farbe"),
|
||
"campus.tbl_zeitaufzeichnung" => array("zeitaufzeichnung_id","uid","aktivitaet_kurzbz","projekt_kurzbz","start","ende","beschreibung","oe_kurzbz_1","oe_kurzbz_2","insertamum","insertvon","updateamum","updatevon","ext_id","service_id","kunde_uid","projektphase_id","homeoffice"),
|
||
"campus.tbl_zeitaufzeichnung_gd" => array("zeitaufzeichnung_gd_id","uid","studiensemester_kurzbz","selbstverwaltete_pause","insertamum","insertvon","updateamum","updatevon"),
|
||
"campus.tbl_zeitsperre" => array("zeitsperre_id","zeitsperretyp_kurzbz","mitarbeiter_uid","bezeichnung","vondatum","vonstunde","bisdatum","bisstunde","vertretung_uid","updateamum","updatevon","insertamum","insertvon","erreichbarkeit_kurzbz","freigabeamum","freigabevon"),
|
||
"campus.tbl_zeitsperretyp" => array("zeitsperretyp_kurzbz","beschreibung","farbe"),
|
||
"campus.tbl_zeitwunsch" => array("stunde","mitarbeiter_uid","tag","gewicht","updateamum","updatevon","insertamum","insertvon"),
|
||
"fue.tbl_aktivitaet" => array("aktivitaet_kurzbz","beschreibung","sort"),
|
||
"fue.tbl_aufwandstyp" => array("aufwandstyp_kurzbz","bezeichnung"),
|
||
"fue.tbl_projekt" => array("projekt_kurzbz","nummer","titel","beschreibung","beginn","ende","oe_kurzbz","budget","farbe","aufwandstyp_kurzbz","ressource_id","anzahl_ma","aufwand_pt","projekt_id","projekttyp_kurzbz","zeitaufzeichnung"),
|
||
"fue.tbl_projektphase" => array("projektphase_id","projekt_kurzbz","projektphase_fk","bezeichnung","typ","beschreibung","start","ende","budget","insertamum","insertvon","updateamum","updatevon","personentage","farbe","ressource_id","zeitaufzeichnung"),
|
||
"fue.tbl_projekttask" => array("projekttask_id","projektphase_id","bezeichnung","beschreibung","aufwand","mantis_id","insertamum","insertvon","updateamum","updatevon","projekttask_fk","erledigt","ende","ressource_id","scrumsprint_id"),
|
||
"fue.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"),
|
||
"fue.tbl_projekt_dokument" => array("projekt_dokument_id","projektphase_id","projekt_kurzbz","dms_id"),
|
||
"fue.tbl_projekt_ressource" => array("projekt_ressource_id","projekt_kurzbz","projektphase_id","ressource_id","funktion_kurzbz","beschreibung","aufwand"),
|
||
"fue.tbl_ressource" => array("ressource_id","student_uid","mitarbeiter_uid","betriebsmittel_id","firma_id","bezeichnung","beschreibung","insertamum","insertvon","updateamum","updatevon"),
|
||
"fue.tbl_scrumteam" => array("scrumteam_kurzbz","bezeichnung","punkteprosprint","tasksprosprint","gruppe_kurzbz"),
|
||
"fue.tbl_scrumsprint" => array("scrumsprint_id","scrumteam_kurzbz","sprint_kurzbz","sprintstart","sprintende","insertamum","insertvon","updateamum","updatevon"),
|
||
"lehre.tbl_abschlussbeurteilung" => array("abschlussbeurteilung_kurzbz","bezeichnung","bezeichnung_english","sort"),
|
||
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
|
||
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
|
||
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
|
||
"lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"),
|
||
"lehre.tbl_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"),
|
||
"lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"),
|
||
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
|
||
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"),
|
||
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
|
||
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"),
|
||
"lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id","vertrag_id"),
|
||
"lehre.tbl_lehrfach" => array("lehrfach_id","studiengang_kz","fachbereich_kurzbz","kurzbz","bezeichnung","farbe","aktiv","semester","sprache","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen","bezeichnung_kurz","bezeichnung_lang"),
|
||
"lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"),
|
||
"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_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"),
|
||
"lehre.tbl_lvregeltyp" => array("lvregeltyp_kurzbz","bezeichnung"),
|
||
"lehre.tbl_notenschluessel" => array("notenschluessel_kurzbz","bezeichnung"),
|
||
"lehre.tbl_notenschluesselaufteilung" => array("notenschluesselaufteilung_id","notenschluessel_kurzbz","note","punkte"),
|
||
"lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"),
|
||
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"),
|
||
"lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"),
|
||
"lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id", "zugangstoken", "zugangstoken_gueltigbis"),
|
||
"lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"),
|
||
"lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"),
|
||
"lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss","sort"),
|
||
"lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","ext_id", "status_kurzbz", "standort_id"),
|
||
"lehre.tbl_studienordnungstatus" => array("status_kurzbz","bezeichnung","reihenfolge"),
|
||
"lehre.tbl_studienordnung_semester" => array("studienordnung_semester_id","studienordnung_id","studiensemester_kurzbz","semester"),
|
||
"lehre.tbl_studienplan" => array("studienplan_id","studienordnung_id","orgform_kurzbz","version","regelstudiendauer","sprache","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon","semesterwochen","testtool_sprachwahl","ext_id", "ects_stpl", "pflicht_sws", "pflicht_lvs","onlinebewerbung_studienplan"),
|
||
"lehre.tbl_studienplan_lehrveranstaltung" => array("studienplan_lehrveranstaltung_id","studienplan_id","lehrveranstaltung_id","semester","studienplan_lehrveranstaltung_id_parent","pflicht","koordinator","insertamum","insertvon","updateamum","updatevon","sort","ext_id", "curriculum","export","genehmigung"),
|
||
"lehre.tbl_studienplan_semester" => array("studienplan_semester_id", "studienplan_id", "studiensemester_kurzbz", "semester"),
|
||
"lehre.tbl_studienplatz" => array("studienplatz_id","studiengang_kz","studiensemester_kurzbz","orgform_kurzbz","ausbildungssemester","gpz","npz","insertamum","insertvon","updateamum","updatevon","ext_id", "apz", "studienplan_id"),
|
||
"lehre.tbl_stunde" => array("stunde","beginn","ende"),
|
||
"lehre.tbl_stundenplan" => array("stundenplan_id","unr","mitarbeiter_uid","datum","stunde","ort_kurzbz","gruppe_kurzbz","titel","anmerkung","lehreinheit_id","studiengang_kz","semester","verband","gruppe","fix","updateamum","updatevon","insertamum","insertvon"),
|
||
"lehre.tbl_stundenplandev" => array("stundenplandev_id","lehreinheit_id","unr","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","mitarbeiter_uid","ort_kurzbz","datum","stunde","titel","anmerkung","fix","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"lehre.tbl_stundenplan_betriebsmittel" => array("stundenplan_betriebsmittel_id","betriebsmittel_id","stundenplandev_id","anmerkung","insertamum","insertvon"),
|
||
"lehre.tbl_vertrag" => array("vertrag_id","person_id","vertragstyp_kurzbz","bezeichnung","betrag","insertamum","insertvon","updateamum","updatevon","ext_id","anmerkung","vertragsdatum","lehrveranstaltung_id", "vertragsstunden", "vertragsstunden_studiensemester_kurzbz"),
|
||
"lehre.tbl_vertrag_vertragsstatus" => array("vertragsstatus_kurzbz","vertrag_id","uid","datum","ext_id","insertamum","insertvon","updateamum","updatevon"),
|
||
"lehre.tbl_vertragstyp" => array("vertragstyp_kurzbz","bezeichnung"),
|
||
"lehre.tbl_vertragsstatus" => array("vertragsstatus_kurzbz","bezeichnung"),
|
||
"lehre.tbl_zeitfenster" => array("wochentag","stunde","ort_kurzbz","studiengang_kz","gewicht"),
|
||
"lehre.tbl_zeugnis" => array("zeugnis_id","student_uid","zeugnis","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"),
|
||
"public.ci_apikey" => array("apikey_id","key","level","ignore_limits","date_created"),
|
||
"public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung", "co_name"),
|
||
"public.tbl_adressentyp" => array("adressentyp_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig", "sort"),
|
||
"public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern","nachgereicht_am","ausstellungsnation","formal_geprueft_amum","archiv","signiert","stud_selfservice","akzeptiertamum"),
|
||
"public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email","verpflichtend","buttontext"),
|
||
"public.tbl_ampel_benutzer_bestaetigt" => array("ampel_benutzer_bestaetigt_id","ampel_id","uid","insertamum","insertvon"),
|
||
"public.tbl_aufmerksamdurch" => array("aufmerksamdurch_kurzbz","beschreibung","ext_id","bezeichnung", "aktiv"),
|
||
"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", "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"),
|
||
"public.tbl_bewerbungstermine" => array("bewerbungstermin_id","studiengang_kz","studiensemester_kurzbz","beginn","ende","nachfrist","nachfrist_ende","anmerkung", "insertamum", "insertvon", "updateamum", "updatevon","studienplan_id","nationengruppe_kurzbz"),
|
||
"public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"),
|
||
"public.tbl_dokument" => array("dokument_kurzbz","bezeichnung","ext_id","bezeichnung_mehrsprachig","dokumentbeschreibung_mehrsprachig","ausstellungsdetails"),
|
||
"public.tbl_dokumentprestudent" => array("dokument_kurzbz","prestudent_id","mitarbeiter_uid","datum","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht","beschreibung_mehrsprachig","nachreichbar","stufe"),
|
||
"public.tbl_erhalter" => array("erhalter_kz","kurzbz","bezeichnung","dvr","logo","zvr"),
|
||
"public.tbl_fachbereich" => array("fachbereich_kurzbz","bezeichnung","farbe","studiengang_kz","aktiv","ext_id","oe_kurzbz"),
|
||
"public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr", "bezeichnung"),
|
||
"public.tbl_firma" => array("firma_id","name","anmerkung","firmentyp_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id","schule","finanzamt","steuernummer","gesperrt","aktiv","lieferbedingungen","partner_code","lieferant"),
|
||
"public.tbl_firma_mobilitaetsprogramm" => array("firma_id","mobilitaetsprogramm_code","ext_id"),
|
||
"public.tbl_firma_organisationseinheit" => array("firma_organisationseinheit_id","firma_id","oe_kurzbz","bezeichnung","kundennummer","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||
"public.tbl_firmentyp" => array("firmentyp_kurzbz","beschreibung"),
|
||
"public.tbl_firmatag" => array("firma_id","tag","insertamum","insertvon"),
|
||
"public.tbl_fotostatus" => array("fotostatus_kurzbz","beschreibung"),
|
||
"public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"),
|
||
"public.tbl_geschlecht" => array("geschlecht","bezeichnung_mehrsprachig","sort"),
|
||
"public.tbl_geschaeftsjahr" => array("geschaeftsjahr_kurzbz","start","ende","bezeichnung"),
|
||
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe","direktinskription"),
|
||
"public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
|
||
"public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"),
|
||
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung","bezeichnung_mehrsprachig"),
|
||
"public.tbl_konto" => array("buchungsnr","person_id","studiengang_kz","studiensemester_kurzbz","buchungstyp_kurzbz","buchungsnr_verweis","betrag","buchungsdatum","buchungstext","mahnspanne","updateamum","updatevon","insertamum","insertvon","ext_id","credit_points", "zahlungsreferenz", "anmerkung"),
|
||
"public.tbl_lehrverband" => array("studiengang_kz","semester","verband","gruppe","aktiv","bezeichnung","ext_id","orgform_kurzbz","gid"),
|
||
"public.tbl_log" => array("log_id","executetime","mitarbeiter_uid","beschreibung","sql","sqlundo"),
|
||
"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","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"),
|
||
"public.tbl_notiz_dokument" => array("notiz_id","dms_id"),
|
||
"public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id","m2","gebteil","oe_kurzbz","arbeitsplaetze"),
|
||
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
|
||
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix","standort_id"),
|
||
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
|
||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values","bpk","matr_aktiv"),
|
||
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
|
||
"public.tbl_personfunktionstandort" => array("personfunktionstandort_id","funktion_kurzbz","person_id","standort_id","position","anrede"),
|
||
"public.tbl_preincoming" => array("preincoming_id","person_id","mobilitaetsprogramm_code","zweck_code","firma_id","universitaet","aktiv","bachelorthesis","masterthesis","von","bis","uebernommen","insertamum","insertvon","updateamum","updatevon","anmerkung","zgv","zgv_ort","zgv_datum","zgv_name","zgvmaster","zgvmaster_datum","zgvmaster_ort","zgvmaster_name","program_name","bachelor","master","jahre","person_id_emergency","person_id_coordinator_dep","person_id_coordinator_int","code","deutschkurs1","deutschkurs2","research_area","deutschkurs3","ext_id"),
|
||
"public.tbl_preincoming_lehrveranstaltung" => array("preincoming_id","lehrveranstaltung_id","insertamum","insertvon"),
|
||
"public.tbl_preinteressent" => array("preinteressent_id","person_id","studiensemester_kurzbz","firma_id","erfassungsdatum","einverstaendnis","absagedatum","anmerkung","maturajahr","infozusendung","aufmerksamdurch_kurzbz","kontaktmedium_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id"),
|
||
"public.tbl_preinteressentstudiengang" => array("studiengang_kz","preinteressent_id","freigabedatum","uebernahmedatum","prioritaet","insertamum","insertvon","updateamum","updatevon"),
|
||
"public.tbl_preoutgoing" => array("preoutgoing_id","uid","dauer_von","dauer_bis","ansprechperson","bachelorarbeit","masterarbeit","betreuer","sprachkurs","intensivsprachkurs","sprachkurs_von","sprachkurs_bis","praktikum","praktikum_von","praktikum_bis","behinderungszuschuss","studienbeihilfe","anmerkung_student", "anmerkung_admin", "studienrichtung_gastuniversitaet", "insertamum","insertvon","updateamum","updatevon","projektarbeittitel","ext_id"),
|
||
"public.tbl_preoutgoing_firma" => array("preoutgoing_firma_id","preoutgoing_id","mobilitaetsprogramm_code","firma_id","name","auswahl","ext_id"),
|
||
"public.tbl_preoutgoing_lehrveranstaltung" => array("preoutgoing_lehrveranstaltung_id","preoutgoing_id","bezeichnung","ects","endversion","insertamum","insertvon","updateamum","updatevon","wochenstunden","unitcode"),
|
||
"public.tbl_preoutgoing_preoutgoing_status" => array("status_id","preoutgoing_status_kurzbz","preoutgoing_id","datum","insertamum","insertvon","updateamum","updatevon"),
|
||
"public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"),
|
||
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung","foerderrelevant","standort_code","zgv_erfuellt","zgvmas_erfuellt","zgvdoktor_erfuellt"),
|
||
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"),
|
||
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"),
|
||
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist"),
|
||
"public.tbl_rt_ort" => array("rt_id","ort_kurzbz","uid"),
|
||
"public.tbl_rt_person" => array("rt_person_id","person_id","rt_id","studienplan_id","anmeldedatum","teilgenommen","ort_kurzbz","punkte","insertamum","insertvon","updateamum","updatevon"),
|
||
"public.tbl_rt_studienplan" => array("reihungstest_id","studienplan_id"),
|
||
"public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id","bezeichnung_mehrsprachig"),
|
||
"public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung","statusgrund_kurzbz"),
|
||
"public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"),
|
||
"public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id","design_uid","betrieb_uid","operativ_uid","servicekategorie_kurzbz"),
|
||
"public.tbl_servicekategorie" => array("servicekategorie_kurzbz", "bezeichnung","sort"),
|
||
"public.tbl_sprache" => array("sprache","locale","flagge","index","content","bezeichnung"),
|
||
"public.tbl_standort" => array("standort_id","adresse_id","kurzbz","bezeichnung","insertvon","insertamum","updatevon","updateamum","ext_id", "firma_id","code"),
|
||
"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_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"),
|
||
"public.tbl_tag" => array("tag"),
|
||
"public.tbl_variable" => array("name","uid","wert"),
|
||
"public.tbl_variablenname" => array("name","defaultwert"),
|
||
"public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype","attribute","archivierbar","signierbar","stud_selfservice","dokument_kurzbz","insertamum","insertvon","updateamum","updatevon"),
|
||
"public.tbl_vorlagedokument" => array("vorlagedokument_id","sort","vorlagestudiengang_id","dokument_kurzbz"),
|
||
"public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz","style","berechtigung","anmerkung_vorlagestudiengang","aktiv","sprache","subject","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon"),
|
||
"public.tbl_zgvpruefungstatus" => array("status_kurzbz","bezeichnung"),
|
||
"public.tbl_zgvpruefung" => array("zgvpruefung_id","prestudent_id","insertamum","insertvon","updateamum","updatevon"),
|
||
"public.tbl_zgvpruefungstatus_status" => array("zgv_pruefung_status_id","zgvpruefung_id","status","datum"),
|
||
"testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "insertamum","insertvon","updateamum", "updatevon","ablauf_vorgaben_id","studienplan_id"),
|
||
"testtool.tbl_ablauf_vorgaben" => array("ablauf_vorgaben_id","studiengang_kz","sprache","sprachwahl","content_id","insertamum","insertvon","updateamum", "updatevon"),
|
||
"testtool.tbl_antwort" => array("antwort_id","pruefling_id","vorschlag_id"),
|
||
"testtool.tbl_frage" => array("frage_id","kategorie_kurzbz","gebiet_id","level","nummer","demo","insertamum","insertvon","updateamum","updatevon","aktiv"),
|
||
"testtool.tbl_gebiet" => array("gebiet_id","kurzbz","bezeichnung","beschreibung","zeit","multipleresponse","kategorien","maxfragen","zufallfrage","zufallvorschlag","levelgleichverteilung","maxpunkte","insertamum", "insertvon", "updateamum", "updatevon", "level_start","level_sprung_auf","level_sprung_ab","antwortenprozeile","bezeichnung_mehrsprachig", "offsetpunkte"),
|
||
"testtool.tbl_kategorie" => array("kategorie_kurzbz","gebiet_id"),
|
||
"testtool.tbl_kriterien" => array("gebiet_id","kategorie_kurzbz","punkte","typ"),
|
||
"testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert","semester"),
|
||
"testtool.tbl_vorschlag" => array("vorschlag_id","frage_id","nummer","punkte","insertamum","insertvon","updateamum","updatevon","aktiv"),
|
||
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"),
|
||
"testtool.tbl_frage_sprache" => array("frage_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
|
||
"testtool.tbl_vorschlag_sprache" => array("vorschlag_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
|
||
"system.tbl_app" => array("app"),
|
||
"system.tbl_appdaten" => array("appdaten_id","uid","app","appversion","version","bezeichnung","daten","freigabe","insertamum","insertvon","updateamum","updatevon"),
|
||
"system.tbl_cronjob" => array("cronjob_id","server_kurzbz","titel","beschreibung","file","last_execute","aktiv","running","jahr","monat","tag","wochentag","stunde","minute","standalone","reihenfolge","updateamum", "updatevon","insertamum","insertvon","variablen"),
|
||
"system.tbl_benutzerrolle" => array("benutzerberechtigung_id","rolle_kurzbz","berechtigung_kurzbz","uid","funktion_kurzbz","oe_kurzbz","art","studiensemester_kurzbz","start","ende","negativ","updateamum", "updatevon","insertamum","insertvon","kostenstelle_id","anmerkung"),
|
||
"system.tbl_berechtigung" => array("berechtigung_kurzbz","beschreibung"),
|
||
"system.tbl_extensions" => array("extension_id","name","version","description","license","url","core_version","dependencies","enabled"),
|
||
"system.tbl_fehler" => array("fehlercode","fehler_kurzbz","fehlercode_extern","fehlertext","fehlertyp_kurzbz","app"),
|
||
"system.tbl_fehlertyp" => array("fehlertyp_kurzbz","bezeichnung_mehrsprachig"),
|
||
"system.tbl_fehler_zustaendigkeiten" => array("fehlerzustaendigkeiten_id","fehlercode","person_id","oe_kurzbz","funktion_kurzbz"),
|
||
"system.tbl_issue" => array("issue_id","fehlercode","fehlercode_extern","inhalt","inhalt_extern","person_id","oe_kurzbz","datum","verarbeitetvon","verarbeitetamum","status_kurzbz","behebung_parameter","insertvon","insertamum","updatevon","updateamum"),
|
||
"system.tbl_issue_status" => array("status_kurzbz","bezeichnung_mehrsprachig"),
|
||
"system.tbl_log" => array("log_id","person_id","zeitpunkt","app","oe_kurzbz","logtype_kurzbz","logdata","insertvon","taetigkeit_kurzbz"),
|
||
"system.tbl_logtype" => array("logtype_kurzbz", "data_schema"),
|
||
"system.tbl_filters" => array("filter_id","app","dataset_name","filter_kurzbz","person_id","description","sort","default_filter","filter","oe_kurzbz","statistik_kurzbz"),
|
||
"system.tbl_jobsqueue" => array("jobid", "type", "creationtime", "status", "input", "output", "starttime", "endtime", "insertvon", "insertamum"),
|
||
"system.tbl_jobstatuses" => array("status"),
|
||
"system.tbl_jobtriggers" => array("type", "status", "following_type"),
|
||
"system.tbl_jobtypes" => array("type", "description"),
|
||
"system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon","category"),
|
||
"system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"),
|
||
"system.tbl_rolle" => array("rolle_kurzbz","beschreibung"),
|
||
"system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"),
|
||
"system.tbl_verarbeitungstaetigkeit" => array("taetigkeit_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig","aktiv"),
|
||
"system.tbl_webservicelog" => array("webservicelog_id","webservicetyp_kurzbz","request_id","beschreibung","request_data","execute_time","execute_user"),
|
||
"system.tbl_webservicerecht" => array("webservicerecht_id","berechtigung_kurzbz","methode","attribut","insertamum","insertvon","updateamum","updatevon","klasse"),
|
||
"system.tbl_webservicetyp" => array("webservicetyp_kurzbz","beschreibung"),
|
||
"system.tbl_server" => array("server_kurzbz","beschreibung"),
|
||
"system.tbl_udf" => array("schema", "table", "jsons"),
|
||
"system.tbl_person_lock" => array("lock_id", "person_id", "uid", "zeitpunkt", "app"),
|
||
"wawi.tbl_betriebsmittelperson" => array("betriebsmittelperson_id","betriebsmittel_id","person_id", "anmerkung", "kaution", "ausgegebenam", "retouram","insertamum", "insertvon","updateamum", "updatevon","ext_id","uid"),
|
||
"wawi.tbl_betriebsmittel" => array("betriebsmittel_id","betriebsmitteltyp","oe_kurzbz", "ort_kurzbz", "beschreibung", "nummer", "hersteller","seriennummer", "bestellung_id","bestelldetail_id", "afa","verwendung","anmerkung","reservieren","updateamum","updatevon","insertamum","insertvon","ext_id","inventarnummer","leasing_bis","inventuramum","inventurvon","anschaffungsdatum","anschaffungswert","hoehe","breite","tiefe","nummer2","verplanen"),
|
||
"wawi.tbl_betriebsmittel_betriebsmittelstatus" => array("betriebsmittelbetriebsmittelstatus_id","betriebsmittel_id","betriebsmittelstatus_kurzbz", "datum", "updateamum", "updatevon", "insertamum", "insertvon","anmerkung"),
|
||
"wawi.tbl_betriebsmittelstatus" => array("betriebsmittelstatus_kurzbz","beschreibung"),
|
||
"wawi.tbl_betriebsmitteltyp" => array("betriebsmitteltyp","beschreibung","anzahl","kaution","typ_code","mastershapename"),
|
||
"wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"),
|
||
"wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id","person_id"),
|
||
"wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"),
|
||
"wawi.tbl_kostenstelle" => array("kostenstelle_id","oe_kurzbz","bezeichnung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","kostenstelle_nr","deaktiviertvon","deaktiviertamum", "geschaeftsjahrvon", "geschaeftsjahrbis"),
|
||
"wawi.tbl_bestellungtag" => array("tag","bestellung_id","insertamum","insertvon"),
|
||
"wawi.tbl_bestelldetailtag" => array("tag","bestelldetail_id","insertamum","insertvon"),
|
||
"wawi.tbl_projekt_bestellung" => array("projekt_kurzbz","bestellung_id","anteil"),
|
||
"wawi.tbl_bestellung" => array("bestellung_id","besteller_uid","kostenstelle_id","konto_id","firma_id","lieferadresse","rechnungsadresse","freigegeben","bestell_nr","titel","bemerkung","liefertermin","updateamum","updatevon","insertamum","insertvon","ext_id","zahlungstyp_kurzbz"),
|
||
"wawi.tbl_bestelldetail" => array("bestelldetail_id","bestellung_id","position","menge","verpackungseinheit","beschreibung","artikelnummer","preisprove","mwst","erhalten","sort","text","updateamum","updatevon","insertamum","insertvon"),
|
||
"wawi.tbl_bestellung_bestellstatus" => array("bestellung_bestellstatus_id","bestellung_id","bestellstatus_kurzbz","uid","oe_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
|
||
"wawi.tbl_bestellstatus" => array("bestellstatus_kurzbz","beschreibung"),
|
||
"wawi.tbl_buchung" => array("buchung_id","konto_id","kostenstelle_id","buchungstyp_kurzbz","buchungsdatum","buchungstext","betrag","insertamum","insertvon","updateamum","updatevon","ext_id"),
|
||
"wawi.tbl_buchungstyp" => array("buchungstyp_kurzbz","bezeichnung"),
|
||
"wawi.tbl_rechnungstyp" => array("rechnungstyp_kurzbz","beschreibung","berechtigung_kurzbz"),
|
||
"wawi.tbl_rechnung" => array("rechnung_id","bestellung_id","buchungsdatum","rechnungsnr","rechnungsdatum","transfer_datum","buchungstext","insertamum","insertvon","updateamum","updatevon","rechnungstyp_kurzbz","freigegeben","freigegebenvon","freigegebenamum"),
|
||
"wawi.tbl_rechnungsbetrag" => array("rechnungsbetrag_id","rechnung_id","mwst","betrag","bezeichnung","ext_id"),
|
||
"wawi.tbl_aufteilung" => array("aufteilung_id","bestellung_id","oe_kurzbz","anteil","insertamum","insertvon","updateamum","updatevon"),
|
||
"wawi.tbl_aufteilung_default" => array("aufteilung_id","kostenstelle_id","oe_kurzbz","anteil","insertamum","insertvon","updateamum","updatevon"),
|
||
);
|
||
|
||
$tabs=array_keys($tabellen);
|
||
//print_r($tabs);
|
||
$i=0;
|
||
$errors = 0;
|
||
foreach ($tabellen AS $attribute)
|
||
{
|
||
$sql_attr = '';
|
||
foreach($attribute AS $attr)
|
||
$sql_attr.='"'.$attr.'",';
|
||
$sql_attr=substr($sql_attr, 0, -1);
|
||
|
||
if (!@$db->db_query('SELECT '.$sql_attr.' FROM '.$tabs[$i].' LIMIT 1;'))
|
||
{
|
||
echo '<BR><strong>'.$tabs[$i].': '.$db->db_last_error().' </strong><BR>';
|
||
$errors++;
|
||
}
|
||
/*else
|
||
echo $tabs[$i].': OK - ';*/
|
||
flush();
|
||
$i++;
|
||
}
|
||
if ($errors == 0)
|
||
{
|
||
echo '<strong>Keine Fehler aufgetreten</strong>';
|
||
}
|
||
|
||
echo '<H2>Gegenpruefung!</H2>';
|
||
$error=false;
|
||
$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports' AND schemaname != 'extension';";
|
||
if (!$result=@$db->db_query($sql_query))
|
||
echo '<BR><strong>'.$db->db_last_error().' </strong><BR>';
|
||
else
|
||
while ($row=$db->db_fetch_object($result))
|
||
{
|
||
$fulltablename=$row->schemaname.'.'.$row->tablename;
|
||
if (!isset($tabellen[$fulltablename]))
|
||
{
|
||
echo 'Tabelle '.$fulltablename.' existiert in der DB, aber nicht in diesem Skript!<BR>';
|
||
$error=true;
|
||
}
|
||
else
|
||
if (!$result_fields=@$db->db_query("SELECT * FROM $fulltablename LIMIT 1;"))
|
||
echo '<BR><strong>'.$db->db_last_error().' </strong><BR>';
|
||
else
|
||
for ($i=0; $i<$db->db_num_fields($result_fields); $i++)
|
||
{
|
||
$found=false;
|
||
$fieldnameDB=$db->db_field_name($result_fields,$i);
|
||
foreach ($tabellen[$fulltablename] AS $fieldnameARRAY)
|
||
if ($fieldnameDB==$fieldnameARRAY)
|
||
{
|
||
$found=true;
|
||
break;
|
||
}
|
||
if (!$found)
|
||
{
|
||
echo 'Attribut '.$fulltablename.'.<strong>'.$fieldnameDB.'</strong> existiert in der DB, aber nicht in diesem Skript!<BR>';
|
||
$error=true;
|
||
}
|
||
}
|
||
}
|
||
if($error==false)
|
||
echo '<br>Gegenpruefung fehlerfrei';
|
||
?>
|