added control tables (s_*) + working on implementing absence and booking types
Some checks failed
arbeitszeitmessung/pipeline/head There was a failure building this commit

This commit is contained in:
2025-08-02 08:55:40 +02:00
parent 4201ed7b1c
commit 7670efa99b
10 changed files with 176 additions and 54 deletions

View File

@@ -7,16 +7,27 @@ CREATE TABLE "anwesenheit" (
"timestamp" timestamptz(6) DEFAULT CURRENT_TIMESTAMP,
"card_uid" varchar(255),
"check_in_out" int2,
"geraet_id" int2
"geraet_id" int2,
"manuelle_buchung" bool
);
COMMENT ON COLUMN "anwesenheit"."check_in_out" IS '1=Check In 2=Check Out , 3=Check in Manuell, 4=Check out manuell255=Automatic Check Out';
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
-- ----------------------------
-- Table structure for anwesenheitstypen
-- ----------------------------
DROP TABLE IF EXISTS "s_anwesenheit_typen";
CREATE TABLE "s_anwesenheit_typen" (
"anwesenheit_id" int2 PRIMARY KEY,
"anwesenheit_name" varchar(255)
);
-- ----------------------------
-- Table structure for personal_daten
-- ----------------------------
DROP TABLE IF EXISTS "personal_daten";
CREATE TABLE "personal_daten" (
DROP TABLE IF EXISTS "s_personal_daten";
CREATE TABLE "s_personal_daten" (
"personal_nummer" int4 NOT NULL PRIMARY KEY,
"aktiv_beschaeftigt" bool,
"vorname" varchar(255),
@@ -32,7 +43,7 @@ CREATE TABLE "personal_daten" (
"arbeitszeit_max_ende" time(6),
"vorgesetzter_pers_nr" int4
);
COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
COMMENT ON COLUMN "s_personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
DROP TABLE IF EXISTS "user_password";
CREATE TABLE "user_password" (
@@ -78,15 +89,25 @@ CREATE TABLE "abwesenheit" (
"datum" timestamptz(6) DEFAULT NOW()::DATE
);
DROP TABLE IF EXISTS "s_abwesenheit_typen";
CREATE TABLE "s_abwesenheit_typen" (
"abwesenheit_id" int2 PRIMARY KEY,
"abwesenheit_name" varchar(255)
);
-- Adds crypto extension
CREATE EXTENSION IF NOT EXISTS pgcrypto;
-- ----------------------------
-- Insert example data
-- ----------------------------
-- Insert into personal_daten
INSERT INTO "personal_daten" ("personal_nummer", "aktiv_beschaeftigt", "vorname", "nachname", "geburtsdatum", "plz", "adresse", "geschlecht", "card_uid", "hauptbeschaeftigungs_ort", "arbeitszeit_per_tag", "arbeitszeit_min_start", "arbeitszeit_max_ende", "vorgesetzter_pers_nr") VALUES
INSERT INTO "s_personal_daten" ("personal_nummer", "aktiv_beschaeftigt", "vorname", "nachname", "geburtsdatum", "plz", "adresse", "geschlecht", "card_uid", "hauptbeschaeftigungs_ort", "arbeitszeit_per_tag", "arbeitszeit_min_start", "arbeitszeit_max_ende", "vorgesetzter_pers_nr") VALUES
(123, 't', 'Max', 'Mustermann', '2003-02-01', '08963', 'Altenburger Str. 44A', 1, 'acde-edca', 1, 7.5, '07:00:00', '20:00:00', 0);
INSERT INTO "user_password" ("personal_nummer", "pass_hash") VALUES
(123, crypt('max_pass', gen_salt('bf')));
INSERT INTO "s_anwesenheit_typen" ("anwesenheit_id", "anwesenheit_name") VALUES (1, 'Büro');
INSERT INTO "s_abwesenheit_typen" ("abwesenheit_id", "abwesenheit_name") VALUES (1, 'Urlaub'), (2, 'Krank'), (3, 'Kurzarbeit');

View File

@@ -7,7 +7,8 @@ psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-E
CREATE USER $POSTGRES_API_USER WITH ENCRYPTED PASSWORD '$POSTGRES_API_PASS';
GRANT CONNECT ON DATABASE $POSTGRES_DB TO $POSTGRES_API_USER;
GRANT USAGE ON SCHEMA public TO $POSTGRES_API_USER;
GRANT SELECT, INSERT, UPDATE ON anwesenheit, abwesenheit, personal_daten, user_password, wochen_report TO $POSTGRES_API_USER;
GRANT SELECT, INSERT, UPDATE ON anwesenheit, abwesenheit, user_password, wochen_report TO $POSTGRES_API_USER;
GRANT SELECT ON s_personal_daten, s_abwesenheit_typen, s_anwesenheit_typen TO $POSTGRES_API_USER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO $POSTGRES_API_USER;
EOSQL