merge master into feature-18571/Entwicklungsteam

This commit is contained in:
ma0068
2023-05-11 09:18:32 +02:00
232 changed files with 13846 additions and 3765 deletions
@@ -0,0 +1,54 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Remove UNIQUE constraint on fehlercode and fehler_kurzbz on system.tbl_fehler
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'uk_tbl_fehler_fehlercode_fehler_kurzbz'"))
{
if ($db->db_num_rows($result) > 0)
{
$qry = "ALTER TABLE system.tbl_fehler DROP CONSTRAINT uk_tbl_fehler_fehlercode_fehler_kurzbz;";
if (!$db->db_query($qry))
echo '<strong>system.tbl_fehler '.$db->db_last_error().'</strong><br>';
else
echo '<br>Removed UNIQUE constraint on "fehlercode" and "fehler_kurzbz" from system.tbl_fehler<br>';
}
}
// Add NOT NULL constraint on fehler_kurzbz and fehlercode_extern on system.tbl_fehler
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'chk_tbl_fehler_fehler_kurzbz_fehlercode_extern'"))
{
if ($db->db_num_rows($result) == 0)
{
$hasError = false;
$qry = "SELECT 1 FROM system.tbl_fehler WHERE fehler_kurzbz IS NULL AND fehlercode_extern IS NULL AND fehlercode = 'UNKNOWN_ERROR'";
$result = $db->db_query($qry);
if ($db->db_num_rows($result)>0)
{
// Add fehler_kurzbz TO UNKNOWN_ERROR to satisfy constraint
$qry = "UPDATE system.tbl_fehler SET fehler_kurzbz='unbekannterCoreFehler' WHERE fehlercode = 'UNKNOWN_ERROR';";
if(!$db->db_query($qry))
{
echo '<strong>system.tbl_fehler '.$db->db_last_error().'</strong><br>';
$hasError = true;
}
else
{
echo '<br>Add fehler_kurzbz to UNKNOWN_ERROR in system.tbl_fehler';
}
}
if (!$hasError)
{
$qry = "ALTER TABLE system.tbl_fehler ADD CONSTRAINT chk_tbl_fehler_fehler_kurzbz_fehlercode_extern CHECK (fehler_kurzbz IS NOT NULL OR fehlercode_extern IS NOT NULL);";
if (!$db->db_query($qry))
echo '<strong>system.tbl_fehler '.$db->db_last_error().'</strong><br>';
else
echo '<br>Added NOT NULL constraint on "fehlercode" and "fehler_kurzbz" from system.tbl_fehler<br>';
}
}
}
@@ -0,0 +1,30 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// lehre.tbl_betreuerart: add type Senatsvorsitz
if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatsvorsitz'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatsvorsitz', 'Vorsitz Prüfungssenat');";
if(!$db->db_query($qry))
echo '<strong>Betreuerart: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Neue Betreuerart Senatsvorsitz in lehre.tbl_betreuerart hinzugefügt';
}
}
// lehre.tbl_betreuerart: add type Senatsmitglied
if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatsmitglied'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatsmitglied', 'Mitglied Prüfungssenat');";
if(!$db->db_query($qry))
echo '<strong>Betreuerart: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Neue Betreuerart Senatsmitglied in lehre.tbl_betreuerart hinzugefügt';
}
}
@@ -0,0 +1,15 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if(!$result = @$db->db_query("SELECT zugangs_ueberpruefung FROM public.tbl_reihungstest LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangs_ueberpruefung boolean NOT NULL DEFAULT false;
ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangscode smallint DEFAULT NULL;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_reihungstest: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_reihungstest: Spalte zugangs_ueberpruefung und zugangscode hinzugefuegt';
}
@@ -0,0 +1,16 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add index to system.tbl_log
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_webserivcelog_executetime'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "CREATE INDEX idx_webserivcelog_executetime ON system.tbl_webservicelog USING btree (execute_time)";
if (! $db->db_query($qry))
echo '<strong>Indizes: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Index fuer system.tbl_webservicelog.execute_time hinzugefuegt';
}
}
@@ -0,0 +1,57 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if (!$result = @$db->db_query('SELECT 1 FROM lehre.tbl_anrechnungszeitraum LIMIT 1'))
{
$qry = 'CREATE TABLE lehre.tbl_anrechnungszeitraum
(
anrechnungszeitraum_id integer,
studiensemester_kurzbz varchar(16) NOT NULL,
anrechnungstart date,
anrechnungende date,
insertamum timestamp default NOW(),
insertvon varchar(32)
);
COMMENT ON TABLE lehre.tbl_anrechnungszeitraum IS \'Zeitfenster fuer Anrechnungen pro Studiensemester\';
COMMENT ON COLUMN lehre.tbl_anrechnungszeitraum.anrechnungstart IS \'Zeitfenster Startdatum\';
COMMENT ON COLUMN lehre.tbl_anrechnungszeitraum.anrechnungende IS \'Zeitfenster Enddatum\';
ALTER TABLE lehre.tbl_anrechnungszeitraum ADD CONSTRAINT pk_anrechnungszeitraum PRIMARY KEY (anrechnungszeitraum_id);
ALTER TABLE lehre.tbl_anrechnungszeitraum ADD CONSTRAINT fk_anrechnungszeitraum_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
CREATE SEQUENCE lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE lehre.tbl_anrechnungszeitraum ALTER COLUMN anrechnungszeitraum_id SET DEFAULT nextval(\'lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id\');
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungszeitraum TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungszeitraum TO vilesci;
GRANT SELECT, UPDATE ON lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id TO vilesci;
GRANT SELECT, UPDATE ON lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id TO web;
';
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_anrechnungszeitraum: '.$db->db_last_error().'</strong><br>';
else
echo ' lehre.tbl_anrechnungszeitraum: Tabelle hinzugefuegt<br>';
}
// Add permission to admin Anrechnungen
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/anrechnungszeitfenster';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnungszeitfenster', 'Anrechnungszeitfenster 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/anrechnungszeitfenster<br>';
}
}
@@ -0,0 +1,85 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add table tbl_rueckstellung_status
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_rueckstellung_status LIMIT 1;"))
{
$qry = "
CREATE TABLE public.tbl_rueckstellung_status
(
status_kurzbz character varying(32),
bezeichnung_mehrsprachig character varying(256)[],
sort integer,
aktiv boolean default true
);
ALTER TABLE public.tbl_rueckstellung_status ADD CONSTRAINT pk_tbl_postpone_status_status_kurzbz PRIMARY KEY (status_kurzbz);
INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('parked', '{Parken, Park}', 1);
INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_bmi', '{Bundesministerium, Federal Ministry}', 2);
INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_zgv', '{ZGV Prüfung, ZGV examination}', 3);
INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_drittstaat', '{Drittstaat, Third country}', 4);
INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_remone', '{Reminder 1, Reminder 1}', 5);
INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_remtwo', '{Reminder 2, Reminder 2}', 6);
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_rueckstellung_status TO vilesci;
GRANT SELECT ON public.tbl_rueckstellung_status TO web;
";
if(!$db->db_query($qry))
echo '<strong>public.tbl_rueckstellung_status: '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_rueckstellung_status: Tabelle hinzugefuegt<br>';
}
// Add table tbl_rueckstellung
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_rueckstellung LIMIT 1;"))
{
$qry = "
CREATE TABLE public.tbl_rueckstellung
(
rueckstellung_id integer NOT NULL,
person_id integer NOT NULL,
status_kurzbz character varying(32) NOT NULL,
datum_bis timestamp NOT NULL,
insertamum timestamp without time zone default now(),
insertvon character varying(32)
);
CREATE SEQUENCE public.tbl_rueckstellung_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE public.tbl_rueckstellung ADD CONSTRAINT pk_tbl_rueckstellung PRIMARY KEY (rueckstellung_id);
ALTER TABLE public.tbl_rueckstellung ALTER COLUMN rueckstellung_id SET DEFAULT nextval('tbl_rueckstellung_id_seq');
ALTER TABLE public.tbl_rueckstellung ADD CONSTRAINT fk_rueckstellung_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE public.tbl_rueckstellung ADD CONSTRAINT fk_rueckstellung_status_kurzbz FOREIGN KEY (status_kurzbz) REFERENCES public.tbl_rueckstellung_status(status_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
GRANT SELECT, UPDATE ON public.tbl_rueckstellung_id_seq TO vilesci;
GRANT SELECT, UPDATE ON public.tbl_rueckstellung_id_seq TO web;
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_rueckstellung TO vilesci;
GRANT SELECT, UPDATE, DELETE ON public.tbl_rueckstellung TO web;
";
if(!$db->db_query($qry))
echo '<strong>public.tbl_rueckstellung: '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_rueckstellung: Tabelle hinzugefuegt<br>';
//Übernahme von "zurückgestellten" und "geparkten" Personen
$qry = "
INSERT INTO public.tbl_rueckstellung (person_id, status_kurzbz, datum_bis, insertvon)
SELECT person_id,
CASE WHEN
(lower(l.logdata->>'name') = 'onhold')
THEN 'onhold_remone'
ELSE lower(l.logdata->>'name')
END,
zeitpunkt, insertvon
FROM system.tbl_log l
WHERE (l.logdata->>'name' = 'Onhold' OR l.logdata->>'name' = 'Parked') AND zeitpunkt >= NOW();";
if(!$db->db_query($qry))
echo '<strong>public.tbl_rueckstellung: '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_rueckstellung: Bestehene Eintraege uebernommen<br>';
}