mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 02:12:17 +00:00
Merge branch 'master' into feature-18571/EntwicklungsteamBisMeldung
This commit is contained in:
@@ -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>';
|
||||
}
|
||||
}
|
||||
@@ -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>';
|
||||
}
|
||||
}
|
||||
+141
@@ -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>';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user