Merge branch 'master' into feature-18571/EntwicklungsteamBisMeldung

This commit is contained in:
Andreas Österreicher
2024-01-31 13:27:58 +01:00
296 changed files with 33535 additions and 1826 deletions
@@ -0,0 +1,411 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statustyp LIMIT 1"))
{
$qry = "CREATE TABLE campus.tbl_studierendenantrag_statustyp (
studierendenantrag_statustyp_kurzbz VARCHAR(32) NOT NULL,
bezeichnung VARCHAR(128)[] NOT NULL,
CONSTRAINT tbl_studierendenantrag_statustyp_pk PRIMARY KEY(studierendenantrag_statustyp_kurzbz)
);
GRANT SELECT, INSERT ON campus.tbl_studierendenantrag_statustyp TO vilesci;
GRANT SELECT ON campus.tbl_studierendenantrag_statustyp TO web;";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_studierendenantrag_statustyp: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_studierendenantrag_statustyp: table created';
}
if($result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statustyp WHERE studierendenantrag_statustyp_kurzbz = 'Erstellt' "))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO campus.tbl_studierendenantrag_statustyp
(studierendenantrag_statustyp_kurzbz, bezeichnung)
VALUES
('Erstellt', '{\"Erstellt\",\"Created\"}'),
('Genehmigt', '{\"Bestätigt\",\"Approved\"}'),
('Abgelehnt', '{\"Abgelehnt\",\"Rejected\"}'),
('Verzichtet', '{\"Verzichtet\",\"Pass\"}'),
('Offen', '{\"Offen\",\"Reopened\"}'),
('Zurueckgezogen', '{\"Zurückgezogen\",\"Cancelled\"}'),
('Lvszugewiesen', '{\"Lvszugewiesen\",\"Lvsassigned\"}'),
('EmailVersandt', '{\"Email Versandt\",\"Reminder Sent\"}'),
('ErsteAufforderungVersandt', '{\"1.Aufforderung Versandt\",\"1st Request Sent\"}'),
('ZweiteAufforderungVersandt', '{\"2.Aufforderung Versandt\",\"2nd Request Sent\"}'),
('Beeinsprucht', '{\"Beeinsprucht\",\"Objected\"}'),
('EinspruchAbgelehnt', '{\"Einspruch abgelehnt\",\"Objection denied\"}'),
('Abgemeldet', '{\"Abgemeldet\",\"Deregistered\"}');
";
if (!$db->db_query($qry))
echo '<strong>campus.tbl_studierendenantrag_statustyp (insert): '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_studierendenantrag_statustyp: table prefilled';
}
}
if($result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statustyp WHERE studierendenantrag_statustyp_kurzbz = 'Abgemeldet' "))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO campus.tbl_studierendenantrag_statustyp
(studierendenantrag_statustyp_kurzbz, bezeichnung)
VALUES
('Abgemeldet', '{\"Abgemeldet\",\"Deregistered\"}');
";
if (!$db->db_query($qry))
echo '<strong>campus.tbl_studierendenantrag_statustyp (insert): '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_studierendenantrag_statustyp: "Abgemeldet" added';
}
}
if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag LIMIT 1"))
{
$qry = "CREATE TABLE campus.tbl_studierendenantrag (
studierendenantrag_id INTEGER NOT NULL,
prestudent_id INTEGER NOT NULL,
studiensemester_kurzbz VARCHAR(32) NOT NULL,
datum TIMESTAMP NULL,
typ VARCHAR(32) NOT NULL,
insertamum TIMESTAMP DEFAULT NOW(),
insertvon VARCHAR(32) NOT NULL,
datum_wiedereinstieg TIMESTAMP NULL,
grund TEXT NULL,
dms_id INTEGER NULL,
CONSTRAINT tbl_studierendenantrag_pk PRIMARY KEY(studierendenantrag_id)
);
CREATE SEQUENCE campus.tbl_studierendenantrag_studierendenantrag_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE campus.tbl_studierendenantrag ALTER COLUMN studierendenantrag_id SET DEFAULT nextval('campus.tbl_studierendenantrag_studierendenantrag_id_seq');
GRANT SELECT, INSERT ON campus.tbl_studierendenantrag TO vilesci;
GRANT SELECT, INSERT ON campus.tbl_studierendenantrag TO web;
GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_studierendenantrag_id_seq TO vilesci;
GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_studierendenantrag_id_seq TO web;";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_studierendenantrag: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_studierendenantrag: table created';
}
if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_status LIMIT 1"))
{
$qry = "CREATE TABLE campus.tbl_studierendenantrag_status (
studierendenantrag_status_id INTEGER NOT NULL,
studierendenantrag_id INTEGER NOT NULL,
studierendenantrag_statustyp_kurzbz VARCHAR(32) NOT NULL,
insertamum TIMESTAMP DEFAULT NOW(),
insertvon VARCHAR(32) NOT NULL,
grund TEXT NULL,
CONSTRAINT tbl_studierendenantrag_status_pk PRIMARY KEY(studierendenantrag_status_id),
CONSTRAINT tbl_studierendenantrag_fk FOREIGN KEY (studierendenantrag_id) REFERENCES campus.tbl_studierendenantrag(studierendenantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT tbl_studierendenantrag_statustyp_fk FOREIGN KEY (studierendenantrag_statustyp_kurzbz) REFERENCES campus.tbl_studierendenantrag_statustyp(studierendenantrag_statustyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT
);
CREATE SEQUENCE campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE campus.tbl_studierendenantrag_status ALTER COLUMN studierendenantrag_status_id SET DEFAULT nextval('campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq');
GRANT SELECT, INSERT, DELETE ON campus.tbl_studierendenantrag_status TO vilesci;
GRANT SELECT, INSERT, DELETE ON campus.tbl_studierendenantrag_status TO web;
GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq TO vilesci;
GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq TO web;";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_studierendenantrag_status: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_studierendenantrag_status: table created';
}
if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_lehrveranstaltung LIMIT 1"))
{
$qry = "CREATE TABLE campus.tbl_studierendenantrag_lehrveranstaltung (
studierendenantrag_lehrveranstaltung_id INTEGER NOT NULL,
studierendenantrag_id INTEGER NOT NULL,
lehrveranstaltung_id INTEGER NOT NULL,
studiensemester_kurzbz VARCHAR(16) NOT NULL,
note SMALLINT NOT NULL,
anmerkung TEXT NULL,
insertamum TIMESTAMP DEFAULT NOW(),
insertvon VARCHAR(32) NOT NULL,
CONSTRAINT tbl_studierendenantrag_lehrveranstaltung_pk PRIMARY KEY(studierendenantrag_lehrveranstaltung_id),
CONSTRAINT tbl_studiensemester_fk FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT tbl_note_fk FOREIGN KEY (note) REFERENCES lehre.tbl_note(note) ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT tbl_studierendenantrag_fk FOREIGN KEY (studierendenantrag_id) REFERENCES campus.tbl_studierendenantrag(studierendenantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT
);
CREATE SEQUENCE campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE campus.tbl_studierendenantrag_lehrveranstaltung ALTER COLUMN studierendenantrag_lehrveranstaltung_id SET DEFAULT nextval('campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq');
GRANT SELECT, INSERT, DELETE ON campus.tbl_studierendenantrag_lehrveranstaltung TO vilesci;
GRANT SELECT, INSERT ON campus.tbl_studierendenantrag_lehrveranstaltung TO web;
GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq TO vilesci;
GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq TO web;";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_studierendenantrag_lehrveranstaltung: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_studierendenantrag_lehrveranstaltung: table created';
}
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/studierendenantrag';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/studierendenantrag', 'Berechtigung für Bearbeiten Studierendenanträge');";
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/studierendenantrag<br>';
}
}
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/antragfreigabe';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/antragfreigabe', 'Berechtigung für Freigabe der Studierendenanträge');";
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/antragfreigabe<br>';
}
}
if (!$result = @$db->db_query("SELECT campus.get_status_studierendenantrag(0)"))
{
$qry = 'CREATE FUNCTION campus.get_status_studierendenantrag(integer) RETURNS character varying
LANGUAGE plpgsql
STABLE
RETURNS NULL ON NULL INPUT
AS $_$
DECLARE i_studierendenantrag_id ALIAS FOR $1;
DECLARE rec RECORD;
BEGIN
SELECT INTO rec studierendenantrag_statustyp_kurzbz
FROM campus.tbl_studierendenantrag_status
WHERE studierendenantrag_id=i_studierendenantrag_id
ORDER BY insertamum desc
LIMIT 1;
RETURN rec.studierendenantrag_statustyp_kurzbz;
END;
$_$;
ALTER FUNCTION campus.get_status_studierendenantrag(integer) OWNER TO fhcomplete;';
if(!$db->db_query($qry))
echo '<strong>campus.get_status_studierendenantrag(integer): '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.get_status_studierendenantrag(integer): function created';
}
elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_status_studierendenantrag' AND provolatile='s'"))
{
if ($db->db_num_rows($result) == 0) {
$qry = 'ALTER FUNCTION campus.get_status_studierendenantrag(integer) STABLE;';
$qry .= 'ALTER FUNCTION campus.get_status_studierendenantrag(integer) RETURNS NULL ON NULL INPUT;';
if(!$db->db_query($qry))
echo '<strong>campus.get_status_studierendenantrag(integer): '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.get_status_studierendenantrag(integer): function updated';
}
}
if (!$result = @$db->db_query("SELECT campus.get_status_id_studierendenantrag(0)"))
{
$qry = 'CREATE FUNCTION campus.get_status_id_studierendenantrag(integer) RETURNS integer
LANGUAGE plpgsql
STABLE
RETURNS NULL ON NULL INPUT
AS $_$
DECLARE i_studierendenantrag_id ALIAS FOR $1;
DECLARE rec RECORD;
BEGIN
SELECT INTO rec studierendenantrag_status_id
FROM campus.tbl_studierendenantrag_status
WHERE studierendenantrag_id=i_studierendenantrag_id
ORDER BY insertamum desc
LIMIT 1;
RETURN rec.studierendenantrag_status_id;
END;
$_$;
ALTER FUNCTION campus.get_status_id_studierendenantrag(integer) OWNER TO fhcomplete;';
if(!$db->db_query($qry))
echo '<strong>campus.get_status_id_studierendenantrag(integer): '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.get_status_id_studierendenantrag(integer): function created';
}
elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_status_id_studierendenantrag' AND provolatile='s'"))
{
if ($db->db_num_rows($result) == 0) {
$qry = 'ALTER FUNCTION campus.get_status_id_studierendenantrag(integer) STABLE;';
$qry .= 'ALTER FUNCTION campus.get_status_id_studierendenantrag(integer) RETURNS NULL ON NULL INPUT;';
if(!$db->db_query($qry))
echo '<strong>campus.get_status_id_studierendenantrag(integer): '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.get_status_id_studierendenantrag(integer): function updated';
}
}
if (!$result = @$db->db_query("SELECT public.get_absem_prestudent(0, null)"))
{
$qry = 'CREATE FUNCTION public.get_absem_prestudent(integer, character varying) RETURNS integer
LANGUAGE plpgsql
STABLE
AS $_$
DECLARE i_prestudent_id ALIAS FOR $1;
DECLARE cv_studiensemester_kurzbz ALIAS FOR $2;
DECLARE rec RECORD;
BEGIN
IF (cv_studiensemester_kurzbz IS NULL) THEN
SELECT INTO rec ausbildungssemester
FROM public.tbl_prestudentstatus
WHERE prestudent_id=i_prestudent_id
ORDER BY datum desc,insertamum desc, ext_id desc
LIMIT 1;
ELSE
SELECT INTO rec ausbildungssemester
FROM tbl_prestudentstatus
WHERE prestudent_id=i_prestudent_id AND studiensemester_kurzbz=cv_studiensemester_kurzbz
ORDER BY datum desc,insertamum desc, ext_id desc
LIMIT 1;
END IF;
RETURN rec.ausbildungssemester;
END;
$_$;
ALTER FUNCTION public.get_absem_prestudent(integer, character varying) OWNER TO fhcomplete;';
if(!$db->db_query($qry))
echo '<strong>public.get_absem_prestudent(integer, character varying): '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.get_absem_prestudent(integer, character varying): function created';
}
elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_absem_prestudent' AND provolatile='s'"))
{
if ($db->db_num_rows($result) == 0) {
$qry = 'ALTER FUNCTION public.get_absem_prestudent(integer, character varying) STABLE;';
if(!$db->db_query($qry))
echo '<strong>public.get_absem_prestudent(integer, character varying): '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.get_absem_prestudent(integer, character varying): function updated';
}
}
if (!$result = @$db->db_query("SELECT public.get_stdsem_prestudent(0, null)"))
{
$qry = 'CREATE FUNCTION public.get_stdsem_prestudent(integer, character varying) RETURNS character varying
LANGUAGE plpgsql
STABLE
AS $_$
DECLARE i_prestudent_id ALIAS FOR $1;
DECLARE cv_studiensemester_kurzbz ALIAS FOR $2;
DECLARE rec RECORD;
BEGIN
IF (cv_studiensemester_kurzbz IS NULL) THEN
SELECT INTO rec studiensemester_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id=i_prestudent_id
ORDER BY datum desc,insertamum desc, ext_id desc
LIMIT 1;
ELSE
SELECT INTO rec studiensemester_kurzbz
FROM tbl_prestudentstatus
WHERE prestudent_id=i_prestudent_id AND studiensemester_kurzbz=cv_studiensemester_kurzbz
ORDER BY datum desc,insertamum desc, ext_id desc
LIMIT 1;
END IF;
RETURN rec.studiensemester_kurzbz;
END;
$_$;
ALTER FUNCTION public.get_stdsem_prestudent(integer, character varying) OWNER TO fhcomplete;';
if(!$db->db_query($qry))
echo '<strong>public.get_stdsem_prestudent(integer, character varying): '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.get_stdsem_prestudent(integer, character varying): function created';
}
elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_stdsem_prestudent' AND provolatile='s'"))
{
if ($db->db_num_rows($result) == 0) {
$qry = 'ALTER FUNCTION public.get_stdsem_prestudent(integer, character varying) STABLE;';
if(!$db->db_query($qry))
echo '<strong>public.get_stdsem_prestudent(integer, character varying): '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.get_stdsem_prestudent(integer, character varying): function updated';
}
}
if ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_rolle_prestudent' AND provolatile='s'"))
{
if ($db->db_num_rows($result) == 0) {
$qry = 'ALTER FUNCTION public.get_rolle_prestudent(integer, character varying) STABLE;';
if(!$db->db_query($qry))
echo '<strong>public.get_rolle_prestudent(integer, character varying): '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.get_rolle_prestudent(integer, character varying): function updated';
}
}
if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'abbrecherStgl';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('abbrecherStgl', 'Abbrecher', TRUE, '{\"durch Stgl\", \"by Course Director\"}', '{\"durch Stgl\", \"by Course Director\"}');";
if(!$db->db_query($qry))
echo '<strong>public.tbl_status_grund '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_status_grund: Added Statusgrund abbrecherStgl for Abbrecher<br>';
}
}
if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'abbrecherStud';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('abbrecherStud', 'Abbrecher', TRUE, '{\"durch Stud\", \"by Student\"}', '{\"durch Stud\", \"by Student\"}');";
if(!$db->db_query($qry))
echo '<strong>public.tbl_status_grund '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_status_grund: Added Statusgrund abbrecherStud for Abbrecher<br>';
}
}
if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'preabbrecher';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('preabbrecher', 'Student', TRUE, '{\"Pre-Abbrecher\", \"Pre-Aborted\"}', '{\"Pre-Abbrecher\", \"Pre-Aborted\"}');";
if(!$db->db_query($qry))
echo '<strong>public.tbl_status_grund '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_status_grund: Added Statusgrund pre-abbrecher for Student<br>';
}
}
+442
View File
@@ -0,0 +1,442 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add index to system.tbl_log
if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_dienstverhaeltnis' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
CREATE SCHEMA IF NOT EXISTS hr;
COMMENT ON SCHEMA hr IS E'Personalverwaltung';
ALTER SCHEMA hr OWNER TO fhcomplete;
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE TABLE hr.tbl_dienstverhaeltnis
(
dienstverhaeltnis_id serial NOT NULL,
mitarbeiter_uid character varying(32),
vertragsart_kurzbz varchar(32),
oe_kurzbz character varying(32),
von date,
bis date,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32),
CONSTRAINT tbl_dienstverhaeltnis_pk PRIMARY KEY (dienstverhaeltnis_id)
);
CREATE TABLE hr.tbl_vertragsbestandteil
(
vertragsbestandteil_id serial NOT NULL,
dienstverhaeltnis_id integer NOT NULL,
vertragsbestandteiltyp_kurzbz varchar(32) NOT NULL,
von date,
bis date,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32),
CONSTRAINT tbl_vertragsbestandteil_pk PRIMARY KEY (vertragsbestandteil_id)
);
CREATE TABLE hr.tbl_gehaltsbestandteil
(
gehaltsbestandteil_id serial NOT NULL,
dienstverhaeltnis_id integer NOT NULL,
vertragsbestandteil_id integer,
gehaltstyp_kurzbz character varying(32) NOT NULL,
von date,
bis date,
anmerkung text,
grundbetrag bytea,
betrag_valorisiert bytea,
valorisierungssperre date,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32),
valorisierung boolean NOT NULL,
auszahlungen smallint NOT NULL DEFAULT 14,
CONSTRAINT tbl_gehaltsbestandteil_pk PRIMARY KEY (gehaltsbestandteil_id)
);
COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.grundbetrag IS E'verschluesselt - Ursprüngliches Gehalt laut Vertrag';
COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.betrag_valorisiert IS E'verschluesselt - Valorisierter aktueller Betrag';
COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.auszahlungen IS E'Wie oft im Jahr wird das Gehalt bezahlt. zb 14x oder nur 12x';
COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.valorisierung IS E'Wird dieser Bestandteil mitvalorisiert';
COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.valorisierungssperre IS E'Bis zu welchem Datum ist dieser Bestandteil von der Valorisierung ausgenommen';
ALTER TABLE hr.tbl_gehaltsbestandteil ADD CONSTRAINT tbl_dienstverhaeltnis_fk FOREIGN KEY (dienstverhaeltnis_id)
REFERENCES hr.tbl_dienstverhaeltnis (dienstverhaeltnis_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_vertragsbestandteil ADD CONSTRAINT tbl_dienstverhaeltnis_fk FOREIGN KEY (dienstverhaeltnis_id)
REFERENCES hr.tbl_dienstverhaeltnis (dienstverhaeltnis_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_gehaltshistorie
(
gehaltshistorie_id serial NOT NULL,
datum date,
betrag bytea,
gehaltsbestandteil_id integer,
mitarbeiter_uid character varying(32),
CONSTRAINT tbl_gehaltshistorie_pk PRIMARY KEY (gehaltshistorie_id)
);
COMMENT ON COLUMN hr.tbl_gehaltshistorie.betrag IS E'verschluesselt';
ALTER TABLE hr.tbl_gehaltshistorie ADD CONSTRAINT tbl_gehaltshistorie_gehaltsbestandteil_id_fk FOREIGN KEY (gehaltsbestandteil_id)
REFERENCES hr.tbl_gehaltsbestandteil (gehaltsbestandteil_id) MATCH FULL
ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE hr.tbl_gehaltshistorie ADD CONSTRAINT tbl_gehaltshistorie_mitarbeiter_uid_fk FOREIGN KEY (mitarbeiter_uid)
REFERENCES public.tbl_mitarbeiter (mitarbeiter_uid) MATCH FULL
ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE hr.tbl_dienstverhaeltnis ADD CONSTRAINT tbl_mitarbeiter_fk FOREIGN KEY (mitarbeiter_uid)
REFERENCES public.tbl_mitarbeiter (mitarbeiter_uid) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_gehaltstyp
(
gehaltstyp_kurzbz character varying(32) NOT NULL,
bezeichnung varchar(256),
valorisierung boolean NOT NULL DEFAULT true,
sort smallint,
aktiv boolean NOT NULL DEFAULT true,
CONSTRAINT gehaltstypen_pk PRIMARY KEY (gehaltstyp_kurzbz)
);
COMMENT ON TABLE hr.tbl_gehaltstyp IS E'Key-Table of Salary Types';
ALTER TABLE hr.tbl_gehaltsbestandteil ADD CONSTRAINT tbl_gehaltstyp_fk FOREIGN KEY (gehaltstyp_kurzbz)
REFERENCES hr.tbl_gehaltstyp (gehaltstyp_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_vertragsart
(
vertragsart_kurzbz varchar(32) NOT NULL,
bezeichnung varchar(256),
anmerkung text,
dienstverhaeltnis boolean,
vertragsart_kurzbz_parent character varying(32),
aktiv boolean NOT NULL DEFAULT true,
sort smallint,
CONSTRAINT tbl_vertragsar_pk PRIMARY KEY (vertragsart_kurzbz)
);
COMMENT ON TABLE hr.tbl_vertragsart IS E'Key-Table of Contract Types';
COMMENT ON COLUMN hr.tbl_vertragsart.dienstverhaeltnis IS E'Kann dieser Typ direkt beim Dienstverhaeltnis zugeordnet werden';
ALTER TABLE hr.tbl_dienstverhaeltnis ADD CONSTRAINT tbl_vertragsart_fk FOREIGN KEY (vertragsart_kurzbz)
REFERENCES hr.tbl_vertragsart (vertragsart_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_sachaufwand
(
sachaufwand_id serial NOT NULL,
mitarbeiter_uid character varying(32),
sachaufwandtyp_kurzbz character varying(32),
dienstverhaeltnis_id integer,
beginn date,
ende date,
anmerkung text,
insertamum timestamp,
insertvon character varying(32),
updateamum timestamp,
updatevon character varying(32),
CONSTRAINT tbl_sachaufwand_pk PRIMARY KEY (sachaufwand_id)
);
ALTER TABLE hr.tbl_sachaufwand ADD CONSTRAINT tbl_mitarbeiter_fk FOREIGN KEY (mitarbeiter_uid)
REFERENCES public.tbl_mitarbeiter (mitarbeiter_uid) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_sachaufwandtyp
(
sachaufwandtyp_kurzbz character varying(32) NOT NULL,
bezeichnung character varying(256),
sort smallint,
aktiv boolean NOT NULL DEFAULT true,
CONSTRAINT tbl_sachaufwandtyp_pk PRIMARY KEY (sachaufwandtyp_kurzbz)
);
ALTER TABLE hr.tbl_sachaufwand ADD CONSTRAINT tbl_sachaufwandtyp_fk FOREIGN KEY (sachaufwandtyp_kurzbz)
REFERENCES hr.tbl_sachaufwandtyp (sachaufwandtyp_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_sachaufwand ADD CONSTRAINT tbl_dienstverhaeltnis_fk FOREIGN KEY (dienstverhaeltnis_id)
REFERENCES hr.tbl_dienstverhaeltnis (dienstverhaeltnis_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_funktion ADD COLUMN hrrelevant boolean NOT NULL DEFAULT false;
ALTER TABLE public.tbl_funktion ADD COLUMN vertragsrelevant boolean NOT NULL DEFAULT false;
ALTER TABLE hr.tbl_gehaltsbestandteil ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_vertragsbestandteiltyp
(
vertragsbestandteiltyp_kurzbz varchar(32) NOT NULL,
bezeichnung varchar(256),
ueberlappend boolean NOT NULL,
CONSTRAINT tbl_vertragsbestandteiltyp_pk PRIMARY KEY (vertragsbestandteiltyp_kurzbz)
);
COMMENT ON TABLE hr.tbl_vertragsbestandteiltyp IS E'Type of Contract-Part';
COMMENT ON COLUMN hr.tbl_vertragsbestandteiltyp.ueberlappend IS E'Dürfen sich Einträge von diesem Typ zeitlich überlappen';
ALTER TABLE hr.tbl_vertragsbestandteil ADD CONSTRAINT tbl_vertragsbestandteiltyp_fk FOREIGN KEY (vertragsbestandteiltyp_kurzbz)
REFERENCES hr.tbl_vertragsbestandteiltyp (vertragsbestandteiltyp_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_vertragsbestandteil_funktion
(
vertragsbestandteil_id integer NOT NULL,
benutzerfunktion_id integer,
CONSTRAINT tbl_vertragsbestandteil_funktion_pk PRIMARY KEY (vertragsbestandteil_id)
);
ALTER TABLE hr.tbl_vertragsbestandteil_funktion ADD CONSTRAINT tbl_benutzerfunktion_fk FOREIGN KEY (benutzerfunktion_id)
REFERENCES public.tbl_benutzerfunktion (benutzerfunktion_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_vertragsbestandteil_stunden
(
vertragsbestandteil_id integer NOT NULL,
wochenstunden numeric(4,2),
teilzeittyp_kurzbz character varying(32),
CONSTRAINT tbl_vertragsbestandteil_stunden_pk PRIMARY KEY (vertragsbestandteil_id)
);
COMMENT ON COLUMN hr.tbl_vertragsbestandteil_stunden.teilzeittyp_kurzbz IS E'Altersteilzeit, Elternteilzeit';
CREATE TABLE hr.tbl_teilzeittyp
(
teilzeittyp_kurzbz character varying(32) NOT NULL,
bezeichnung varchar(256) NOT NULL,
aktiv boolean NOT NULL DEFAULT true,
CONSTRAINT tbl_teilzeittyp_pk PRIMARY KEY (teilzeittyp_kurzbz)
);
ALTER TABLE hr.tbl_vertragsbestandteil_stunden ADD CONSTRAINT tbl_teilzeittyp_fk FOREIGN KEY (teilzeittyp_kurzbz)
REFERENCES hr.tbl_teilzeittyp (teilzeittyp_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_vertragsbestandteil_freitext
(
vertragsbestandteil_id integer NOT NULL,
freitexttyp_kurzbz varchar(32) NOT NULL,
titel varchar(256),
anmerkung text,
CONSTRAINT tbl_vertragsbestandteil_freitext_pk PRIMARY KEY (vertragsbestandteil_id)
);
CREATE TABLE hr.tbl_vertragsbestandteil_freitexttyp
(
freitexttyp_kurzbz varchar(32) NOT NULL,
bezeichnung varchar(128),
ueberlappend boolean NOT NULL DEFAULT true,
kuendigungsrelevant boolean NOT NULL DEFAULT false,
CONSTRAINT tbl_freitexttyp_pk PRIMARY KEY (freitexttyp_kurzbz)
);
COMMENT ON TABLE hr.tbl_vertragsbestandteil_freitexttyp IS E'Key-Table FreeTextType (Sideletter, Ersatzarbeitskraft, AllIn, Befristung, Überstundenpauschale)';
COMMENT ON COLUMN hr.tbl_vertragsbestandteil_freitexttyp.ueberlappend IS E'Dürfen sich Einträge von diesem Typ zeitlich überlappen';
COMMENT ON COLUMN hr.tbl_vertragsbestandteil_freitexttyp.kuendigungsrelevant IS E'Ist dieser Freitext bei einer Kündigung zu berücksichtigen';
ALTER TABLE hr.tbl_vertragsbestandteil_freitext ADD CONSTRAINT tbl_vertragsbestandteil_freitexttyp_fk FOREIGN KEY (freitexttyp_kurzbz)
REFERENCES hr.tbl_vertragsbestandteil_freitexttyp (freitexttyp_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_vertragsbestandteil_freitext ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_vertragsbestandteil_stunden ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_vertragsbestandteil_funktion ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_vertragsbestandteil_zeitaufzeichnung
(
vertragsbestandteil_id integer NOT NULL,
zeitaufzeichnung boolean NOT NULL,
azgrelevant boolean NOT NULL,
homeoffice boolean NOT NULL,
CONSTRAINT tbl_vertragsbestandteil_zeitaufzeichnung_pk PRIMARY KEY (vertragsbestandteil_id)
);
CREATE TABLE hr.tbl_vertragsbestandteil_urlaubsanspruch
(
vertragsbestandteil_id integer NOT NULL,
tage smallint,
CONSTRAINT tbl_vertragsbestandteil_urlaubsanspruch_pk PRIMARY KEY (vertragsbestandteil_id)
);
CREATE TABLE hr.tbl_vertragsbestandteil_kuendigungsfrist
(
vertragsbestandteil_id integer NOT NULL,
arbeitgeber_frist smallint,
arbeitnehmer_frist smallint,
CONSTRAINT tbl_vertragsbestandteil_kuendigungsfrist_pk PRIMARY KEY (vertragsbestandteil_id)
);
ALTER TABLE hr.tbl_vertragsbestandteil_zeitaufzeichnung ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_vertragsbestandteil_urlaubsanspruch ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_vertragsbestandteil_kuendigungsfrist ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_vertragsbestandteil_karenz
(
vertragsbestandteil_id integer NOT NULL,
karenztyp_kurzbz varchar(32),
geplanter_geburtstermin date,
tatsaechlicher_geburtstermin date,
CONSTRAINT tbl_vertragsbestandteil_karenz_pk PRIMARY KEY (vertragsbestandteil_id)
);
ALTER TABLE hr.tbl_vertragsbestandteil_karenz ADD CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id)
REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE TABLE hr.tbl_karenztyp
(
karenztyp_kurzbz varchar(32) NOT NULL,
bezeichnung character varying(256) NOT NULL,
CONSTRAINT tbl_karenztyp_pk PRIMARY KEY (karenztyp_kurzbz)
);
COMMENT ON TABLE hr.tbl_karenztyp IS E'Key-Table Elternkarenz, Bildungskarenz, Papamonat';
ALTER TABLE hr.tbl_vertragsbestandteil_karenz ADD CONSTRAINT tbl_karenztyp_fk FOREIGN KEY (karenztyp_kurzbz)
REFERENCES hr.tbl_karenztyp (karenztyp_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_dienstverhaeltnis ADD CONSTRAINT tbl_organisationseinheit_fk FOREIGN KEY (oe_kurzbz)
REFERENCES public.tbl_organisationseinheit (oe_kurzbz) MATCH FULL
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_vertragsart ADD CONSTRAINT fk_vertragsart_vertragsartparent FOREIGN KEY (vertragsart_kurzbz_parent)
REFERENCES hr.tbl_vertragsart (vertragsart_kurzbz) MATCH SIMPLE
ON DELETE NO ACTION ON UPDATE NO ACTION;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_sachaufwand TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_sachaufwandtyp TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_dienstverhaeltnis TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsart TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteiltyp TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_funktion TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_stunden TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_freitext TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_freitexttyp TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_zeitaufzeichnung TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_urlaubsanspruch TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_kuendigungsfrist TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_vertragsbestandteil_karenz TO vilesci;
GRANT SELECT ON hr.tbl_vertragsbestandteil_karenz TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_karenztyp TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_teilzeittyp TO vilesci;
GRANT SELECT ON hr.tbl_vertragsbestandteil_freitext TO web;
GRANT SELECT ON hr.tbl_vertragsbestandteil_freitexttyp TO web;
GRANT SELECT ON hr.tbl_dienstverhaeltnis TO web;
GRANT SELECT ON hr.tbl_vertragsart TO web;
GRANT SELECT ON hr.tbl_vertragsbestandteil TO web;
GRANT SELECT ON hr.tbl_vertragsbestandteiltyp TO web;
GRANT SELECT ON hr.tbl_vertragsbestandteil_stunden TO web;
GRANT SELECT ON hr.tbl_vertragsbestandteil_zeitaufzeichnung TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltsbestandteil TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltshistorie TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltstyp TO vilesci;
GRANT USAGE ON SCHEMA hr TO vilesci;
GRANT USAGE ON SCHEMA hr TO web;
INSERT INTO hr.tbl_karenztyp(karenztyp_kurzbz, bezeichnung) VALUES('elternkarenz','Elternkarenz');
INSERT INTO hr.tbl_karenztyp(karenztyp_kurzbz, bezeichnung) VALUES('bildungskarenz','Bildungskarenz');
INSERT INTO hr.tbl_karenztyp(karenztyp_kurzbz, bezeichnung) VALUES('papamonat','Papamonat');
INSERT INTO hr.tbl_teilzeittyp(teilzeittyp_kurzbz, bezeichnung) VALUES('altersteilzeit','Altersteilzeit');
INSERT INTO hr.tbl_teilzeittyp(teilzeittyp_kurzbz, bezeichnung) VALUES('elternteilzeit','Elternteilzeit');
INSERT INTO hr.tbl_teilzeittyp(teilzeittyp_kurzbz, bezeichnung) VALUES('wiedereingliederungteilzeit','Wiedereingliederungsteilzeit');
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('echterdv','Echter DV','Echter Dienstvertrag', true, null, true, 100);
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('studentischehilfskr','Studentische Hilfskraft','Studentische Hilfskraft', true, 'echterdv', true, 101);
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('freierdv','Freier DV','Freier Dienstvertrag', false, null, true, 200);
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('externerlehrender','externer Lehrender','Externer Lehrender Freier DV', true, 'freierdv', true, 201);
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('gastlektor','Gastlektor','Gastlektor', true, 'freierdv', true, 202);
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('echterfreier','Echter Freier DV','Echter Freier DV', true, 'freierdv', true, 203);
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('werkvertrag','Werkvertrag','Werkvertrag', true, null, true, 300);
INSERT INTO hr.tbl_vertragsart(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort) VALUES('ueberlassungsvertrag','Überlassungsvertrag','Überlassungsvertrag', true, 'werkvertrag', true, 300);
INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('basisgehalt','Basisgehalt', true, 1, true);
INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('grundgehalt','Grundgehalt', true, 2, true);
INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('zulage','Zulage', true, 3, true);
INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('praemie','Prämie', false, 4, true);
INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('lohnausgleichatz','Lohnausgleich ATZ', false, 5, true);
INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('zusatzvereinbarung','Zusatzvereinbarung',false, 6, true);
INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('allin','All-In', false, false);
INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('ersatzarbeitskraft','Ersatzarbeitskraft', false, true);
INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('zusatzvereinbarung','Zusatzvereinbarung', true, false);
INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('befristung','Befristung', false, true);
INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('sonstiges','Sonstiges', true, false);
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('stunden', 'Stunden', false);
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('funktion', 'Funktion', true);
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('freitext', 'Freitext', true);
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('zeitaufzeichnung', 'Zeitaufzeichnung', false);
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('urlaubsanspruch', 'Urlaubsanspruch', false);
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('kuendigungsfrist', 'Kündigungsfrist', false);
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('karenz', 'Karenz', false);
INSERT INTO hr.tbl_sachaufwandtyp(sachaufwandtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('jobticket', 'Jobticket', 1, true);
INSERT INTO hr.tbl_sachaufwandtyp(sachaufwandtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('klimaticket', 'Klimaticket', 1, true);
INSERT INTO hr.tbl_sachaufwandtyp(sachaufwandtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('pendlerpauschale', 'Pendlerpauschale', 1, true);
CREATE INDEX idx_tbl_dienstverhaeltnis_mitarbeiter_uid ON hr.tbl_dienstverhaeltnis USING btree (mitarbeiter_uid);
CREATE INDEX idx_tbl_vertragsbestandteil_dienstverhaeltnis_id ON hr.tbl_vertragsbestandteil USING btree (dienstverhaeltnis_id);
CREATE INDEX idx_tbl_gehaltshistorie_gehaltsbestandteil_id ON hr.tbl_gehaltshistorie USING btree (gehaltsbestandteil_id);
CREATE INDEX idx_tbl_gehaltsbestandteil_dienstverhaeltnis_id ON hr.tbl_gehaltsbestandteil USING btree (dienstverhaeltnis_id);
COMMENT ON TABLE hr.tbl_dienstverhaeltnis IS E'Dienstverhaeltnisse von Mitarbeitern';
COMMENT ON TABLE hr.tbl_gehaltshistorie IS E'Historie monatlich abgerechneter Gehaelter';
COMMENT ON TABLE hr.tbl_gehaltsbestandteil IS E'Gehaltskomponenten zu Vertraegen';
COMMENT ON TABLE hr.tbl_sachaufwand IS E'Zusatzvergütungen für Mitarbeiter';
COMMENT ON TABLE hr.tbl_sachaufwandtyp IS E'Key-Table for Sachaufwand';
COMMENT ON TABLE hr.tbl_teilzeittyp IS E'Key-Table Altersteilzeit, Elternteilzeit';
GRANT USAGE ON hr.tbl_dienstverhaeltnis_dienstverhaeltnis_id_seq TO vilesci;
GRANT USAGE ON hr.tbl_vertragsbestandteil_vertragsbestandteil_id_seq TO vilesci;
GRANT USAGE ON hr.tbl_gehaltshistorie_gehaltshistorie_id_seq TO vilesci;
GRANT USAGE ON hr.tbl_sachaufwand_sachaufwand_id_seq TO vilesci;
GRANT USAGE ON hr.tbl_gehaltsbestandteil_gehaltsbestandteil_id_seq TO vilesci;
";
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'HR Schema und Vertagstabellen wurden neu erstellt';
}
}
@@ -0,0 +1,69 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add index to system.tbl_log
if (!$result = @$db->db_query("SELECT 1 FROM hr.tbl_stundensatz LIMIT 1"))
{
$qry = "
CREATE TABLE hr.tbl_stundensatztyp
(
stundensatztyp varchar(32) NOT NULL,
bezeichnung varchar(256),
aktiv boolean NOT NULL DEFAULT true,
insertamum timestamp DEFAULT now(),
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32),
CONSTRAINT tbl_stundensatztyp_pk PRIMARY KEY (stundensatztyp)
);
CREATE TABLE hr.tbl_stundensatz
(
stundensatz_id integer NOT NULL,
uid character varying(32),
stundensatztyp varchar(32),
stundensatz numeric(6, 2),
oe_kurzbz character varying(32),
gueltig_von date,
gueltig_bis date,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32),
CONSTRAINT tbl_stundensatz_pkey PRIMARY KEY (stundensatz_id)
);
CREATE SEQUENCE hr.tbl_stundensatz_stundensatz_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE hr.tbl_stundensatz ALTER COLUMN stundensatz_id SET DEFAULT nextval('hr.tbl_stundensatz_stundensatz_id_seq');
ALTER TABLE hr.tbl_stundensatz ADD CONSTRAINT tbl_stundensatz_stundensatztyp_fk FOREIGN KEY (stundensatztyp) REFERENCES hr.tbl_stundensatztyp (stundensatztyp) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_stundensatz ADD CONSTRAINT tbl_stundensatz_uid_fk FOREIGN KEY (uid) REFERENCES public.tbl_mitarbeiter ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_stundensatz ADD CONSTRAINT tbl_stundensatz_oe_kurzbz_fk FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit (oe_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_stundensatztyp TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_stundensatz TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_stundensatz_stundensatz_id_seq TO vilesci;
GRANT SELECT ON hr.tbl_stundensatztyp TO web;
GRANT SELECT ON hr.tbl_stundensatz TO web;
INSERT INTO hr.tbl_stundensatztyp(stundensatztyp, bezeichnung, insertvon) VALUES('lehre','Lehre', 'checksystem');
INSERT INTO hr.tbl_stundensatztyp(stundensatztyp, bezeichnung, insertvon) VALUES('kalkulatorisch','kalkulatorische Stundensaetze', 'checksystem');
CREATE INDEX idx_tbl_stundensatz_uid ON hr.tbl_stundensatz USING btree (uid);
CREATE INDEX idx_tbl_stundensatz_stundensatz_id ON hr.tbl_stundensatz USING btree (stundensatz_id);
";
if (!$db->db_query($qry))
echo '<strong>Stundensaetze Tabelle: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Stundensaetze Tabelle erstellt';
}
@@ -0,0 +1,73 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Creates table bis.tbl_bismeldestichtag if it doesn't exist and grants privileges
if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_bismeldestichtag LIMIT 1'))
{
$qry = "CREATE TABLE bis.tbl_bismeldestichtag (
meldestichtag_id integer,
meldestichtag date NOT NULL,
studiensemester_kurzbz varchar(16) NOT NULL,
insertamum timestamp DEFAULT NOW(),
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32)
);
COMMENT ON TABLE bis.tbl_bismeldestichtag IS 'Deadline Dates for BIS reporting';
ALTER TABLE bis.tbl_bismeldestichtag ADD CONSTRAINT pk_bismeldestichtag PRIMARY KEY (meldestichtag_id);
CREATE SEQUENCE bis.tbl_meldestichtag_meldestichtag_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE bis.tbl_bismeldestichtag ALTER COLUMN meldestichtag_id SET DEFAULT nextval('bis.tbl_meldestichtag_meldestichtag_id_seq');
ALTER TABLE bis.tbl_bismeldestichtag ADD CONSTRAINT fk_bismeldestichtag_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;";
if (!$db->db_query($qry))
echo '<strong>bis.tbl_bismeldestichtag: '.$db->db_last_error().'</strong><br>';
else
echo '<br>bis.tbl_bismeldestichtag table created';
$qry = 'GRANT SELECT ON TABLE bis.tbl_bismeldestichtag TO web;';
if (!$db->db_query($qry))
echo '<strong>bis.tbl_bismeldestichtag: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>web</strong> on bis.tbl_bismeldestichtag';
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE bis.tbl_bismeldestichtag TO vilesci;';
if (!$db->db_query($qry))
echo '<strong>bis.tbl_bismeldestichtag: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>vilesci</strong> on bis.tbl_bismeldestichtag';
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE bis.tbl_meldestichtag_meldestichtag_id_seq TO web;';
if (!$db->db_query($qry))
echo '<strong>bis.tbl_meldestichtag_meldestichtag_id_seq: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>web</strong> on bis.tbl_meldestichtag_meldestichtag_id_seq';
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE bis.tbl_meldestichtag_meldestichtag_id_seq TO vilesci;';
if (!$db->db_query($qry))
echo '<strong>bis.tbl_meldestichtag_meldestichtag_id_seq: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>vilesci</strong> on bis.tbl_meldestichtag_meldestichtag_id_seq';
}
// Add permission for edit Bismelden flag
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/editBismelden';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/editBismelden', 'Ändern des Bismelden Attributs pro Student');";
if(!$db->db_query($qry))
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
else
echo ' system.tbl_berechtigung: Added permission editBismelden<br>';
}
}
@@ -0,0 +1,141 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_abschluss LIMIT 1'))
{
$qry = "CREATE TABLE bis.tbl_abschluss
(
ausbildung_code integer NOT NULL,
abschluss_bez varchar(128),
bezeichnung character varying(128)[],
aktiv boolean NOT NULL DEFAULT true,
in_oesterreich boolean,
CONSTRAINT pk_tbl_abschluss PRIMARY KEY (ausbildung_code)
);
COMMENT ON TABLE bis.tbl_abschluss IS 'Key-Table of graduation';
COMMENT ON COLUMN bis.tbl_abschluss.aktiv IS 'Shows wether graduation is still valid.';
COMMENT ON COLUMN bis.tbl_abschluss.in_oesterreich IS 'Shows if graduation was obtained in Austria.';
GRANT SELECT ON bis.tbl_abschluss TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_abschluss TO vilesci;
-- prefill values
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(110, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(121, 'Lehre', '{\"Lehre\", \"Apprenticeship\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(122, 'Mittlere Schule ohne Matura', '{\"Mittlere Schule ohne Matura (z.B. Handelsschule, Fachschule)\", \"School for intermediate vocational education (without university entrance qualification)\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(123, 'Meisterprüfung', '{\"Meisterprüfung\", \"Master craftsman''s diploma\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(131, 'AHS', '{\"AHS (allgemein bildende höhere Schule)\", \"Academic secondary school\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(132, 'BHS', '{\"BHS (berufsbildende höhere Schule, z.B. HAK, HTL)\", \"College for higher vocational education\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(133, 'Sonstige Hochschulzugangsberechtigung', '{\"Sonstige Hochschulzugangsberechtigung (z.B. Berufsreifeprüfung)\", \"Other university entrance qualification (e.g. ''Berufsreifeprüfung'')\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(141, 'Akademie', '{\"Akademie (z.B. PÄDAK, SOZAK)\", \"Academy (for example PÄDAK, SOZAK)\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(142, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}', true);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(210, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}', false);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(220, 'Ausbildung ohne Hochschulzugangsberechtigung', '{\"Lehre oder mittlere Schule ohne Matura/Ausbildung ohne Hochschulzugangsberechtigung\", \"Apprenticeship or school for intermediate vocational education (education without university entrance qualification)\"}', false);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(230, 'Ausbildung mit Hochschulzugangsberechtigung', '{\"Höhere Schule mit Matura / Ausbildung mit Hochschulzugangsberechtigung (z.B. Abitur)\", \"Higher secondary school with university entrance qualification\"}', false);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(240, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}', false);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(999, 'unbekannt', '{\"Ich weiß nicht, welchen Abschluss meine erziehungsberechtigte Person erlangt hat.\", \"I do not know what degree my legal guardian got.\"}');
";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_abschluss: '.$db->db_last_error().'</strong><br>';
else
echo ' bis.tbl_abschluss: Tabelle hinzugefuegt<br>';
}
if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1'))
{
$qry = "CREATE SEQUENCE bis.tbl_uhstat1daten_uhstat1daten_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
START WITH 1
CACHE 1
NO CYCLE;
CREATE TABLE bis.tbl_uhstat1daten
(
uhstat1daten_id integer DEFAULT nextval('bis.tbl_uhstat1daten_uhstat1daten_id_seq'::regclass),
mutter_geburtsstaat varchar(3),
mutter_bildungsstaat varchar(3),
mutter_geburtsjahr smallint,
mutter_bildungmax integer,
vater_geburtsstaat varchar(3),
vater_bildungsstaat varchar(3),
vater_geburtsjahr smallint,
vater_bildungmax integer,
person_id integer NOT NULL,
insertamum timestamp without time zone DEFAULT now(),
insertvon character varying(32),
updateamum timestamp without time zone,
updatevon character varying(32),
CONSTRAINT pk_tbl_uhstat1daten PRIMARY KEY (uhstat1daten_id)
);
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_geburtsstaat FOREIGN KEY (mutter_geburtsstaat)
REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_bildungsstaat FOREIGN KEY (mutter_bildungsstaat)
REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_bildungmax FOREIGN KEY (mutter_bildungmax)
REFERENCES bis.tbl_abschluss (ausbildung_code) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_geburtsstaat FOREIGN KEY (vater_geburtsstaat)
REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_bildungsstaat FOREIGN KEY (vater_bildungsstaat)
REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_bildungmax FOREIGN KEY (vater_bildungmax)
REFERENCES bis.tbl_abschluss (ausbildung_code) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_person_id FOREIGN KEY (person_id)
REFERENCES public.tbl_person (person_id) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT uk_uhstat1daten_person_id UNIQUE(person_id);
COMMENT ON TABLE bis.tbl_uhstat1daten IS 'UHSTAT1 data for a person (statistical data)';
COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_geburtsstaat IS 'Birth country of mother of person';
COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_bildungsstaat IS 'Education country of mother of person';
COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_geburtsjahr IS 'Birth year of mother of person';
COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_bildungmax IS 'Highest completed level of education of mother (code)';
COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_geburtsstaat IS 'Birth country of father of person';
COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_bildungsstaat IS 'Education country of father of person';
COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_geburtsjahr IS 'Birth year of father of person';
COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_bildungmax IS 'Highest completed level of education of father (code)';
GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO vilesci;
GRANT SELECT, UPDATE ON bis.tbl_uhstat1daten_uhstat1daten_id_seq TO vilesci;
GRANT SELECT, UPDATE ON bis.tbl_uhstat1daten_uhstat1daten_id_seq TO web;
";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_uhstat1daten: '.$db->db_last_error().'</strong><br>';
else
echo ' bis.tbl_uhstat1daten: Tabelle hinzugefuegt<br>';
}
// Add permission for managing UHSTAT1 data
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/uhstat1daten_verwalten';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/uhstat1daten_verwalten', 'UHSTAT1 Daten verwalten');";
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/uhstat1daten_verwalten<br>';
}
}
@@ -0,0 +1,13 @@
<?php
// Added Buchungstyp "StudiengebuehrErhoeht"
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchungstyp_kurzbz = 'StudiengebuehrErhoeht';"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext, standardbetrag) VALUES ('StudiengebuehrErhoeht', 'Erhöhter Studienbeitrag', 'Erhöhter Studienbeitrag', '-3000');";
if (!$db->db_query($qry))
echo '<strong>public.tbl_buchungstyp '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_buchungstyp: Added buchungstyp "StudiengebuehrErhoeht" <br>';
}
}