ccbf329cc567e84853ecff2ddf3d48a2947dc2c2
[kivitendo-erp.git] / sql / Pg-upgrade2 / time_recordings.sql
1 -- @tag: time_recordings
2 -- @description: Tabellen zur Zeiterfassung
3 -- @depends: release_3_5_6_1
4
5 CREATE TABLE time_recording_types (
6   id                 SERIAL,
7   abbreviation       TEXT     NOT NULL,
8   description        TEXT,
9   position           INTEGER  NOT NULL,
10   obsolete           BOOLEAN  NOT NULL DEFAULT false,
11   PRIMARY KEY (id)
12 );
13
14 CREATE TABLE time_recordings (
15   id                SERIAL,
16   customer_id       INTEGER   NOT NULL,
17   project_id        INTEGER,
18   start_time        TIMESTAMP NOT NULL,
19   end_time          TIMESTAMP,
20   type_id           INTEGER,
21   description       TEXT      NOT NULL,
22   staff_member_id   INTEGER   NOT NULL,
23   employee_id       INTEGER   NOT NULL,
24   itime             TIMESTAMP NOT NULL DEFAULT now(),
25   mtime             TIMESTAMP NOT NULL DEFAULT now(),
26
27   PRIMARY KEY (id),
28   FOREIGN KEY (customer_id)     REFERENCES customer (id),
29   FOREIGN KEY (staff_member_id) REFERENCES employee (id),
30   FOREIGN KEY (employee_id)     REFERENCES employee (id),
31   FOREIGN KEY (project_id)      REFERENCES project (id),
32   FOREIGN KEY (type_id)         REFERENCES time_recording_types (id)
33 );
34
35 CREATE TRIGGER mtime_time_recordings BEFORE UPDATE ON time_recordings FOR EACH ROW EXECUTE PROCEDURE set_mtime();