_make_record(_item): Zahlenattribute nicht mit leeren Strings setzen
[kivitendo-erp.git] / sql / Pg-upgrade2 / delivery_orders.sql
1 -- @tag: delivery_orders
2 -- @description: Lieferscheine als eigener Beleg
3 -- @depends: release_2_4_3 price_factors
4 CREATE TABLE delivery_orders (
5   id                      integer NOT NULL DEFAULT nextval('id'),
6   donumber                text    NOT NULL,
7   ordnumber               text,
8   transdate               date             DEFAULT now(),
9   vendor_id               integer,
10   customer_id             integer,
11   reqdate                 date,
12   shippingpoint           text,
13   notes                   text,
14   intnotes                text,
15   employee_id             integer,
16   closed                  boolean          DEFAULT false,
17   delivered               boolean          DEFAULT false,
18   cusordnumber            text,
19   oreqnumber              text,
20   department_id           integer,
21   shipvia                 text,
22   cp_id                   integer,
23   language_id             integer,
24   shipto_id               integer,
25   globalproject_id        integer,
26   salesman_id             integer,
27   transaction_description text,
28   is_sales                boolean,
29
30   itime                   timestamp        DEFAULT now(),
31   mtime                   timestamp,
32
33   PRIMARY KEY (id),
34   FOREIGN KEY (vendor_id)        REFERENCES vendor   (id),
35   FOREIGN KEY (customer_id)      REFERENCES customer (id),
36   FOREIGN KEY (employee_id)      REFERENCES employee (id),
37   FOREIGN KEY (cp_id)            REFERENCES contacts (cp_id),
38   FOREIGN KEY (language_id)      REFERENCES language (id),
39   FOREIGN KEY (globalproject_id) REFERENCES project  (id),
40   FOREIGN KEY (salesman_id)      REFERENCES employee (id)
41 );
42
43 CREATE TRIGGER mtime_delivery_orders BEFORE UPDATE ON delivery_orders
44     FOR EACH ROW EXECUTE PROCEDURE set_mtime();
45
46 CREATE SEQUENCE delivery_order_items_id;
47
48 CREATE TABLE delivery_order_items (
49   id                 integer       NOT NULL DEFAULT nextval('delivery_order_items_id'),
50   delivery_order_id  integer       NOT NULL,
51   parts_id           integer       NOT NULL,
52   description        text,
53   qty                numeric(25,5),
54   sellprice          numeric(15,5),
55   discount           real,
56   project_id         integer,
57   reqdate            date,
58   serialnumber       text,
59   ordnumber          text,
60   transdate          text,
61   cusordnumber       text,
62   unit               varchar(20),
63   base_qty           real,
64   longdescription    text,
65   lastcost           numeric(15,5),
66   price_factor_id    integer,
67   price_factor       numeric(15,5)          DEFAULT 1,
68   marge_price_factor numeric(15,5)          DEFAULT 1,
69
70   itime timestamp                           DEFAULT now(),
71   mtime timestamp,
72
73   PRIMARY KEY (id),
74   FOREIGN KEY (delivery_order_id) REFERENCES delivery_orders (id),
75   FOREIGN KEY (parts_id)          REFERENCES parts (id),
76   FOREIGN KEY (project_id)        REFERENCES project (id),
77   FOREIGN KEY (price_factor_id)   REFERENCES price_factors (id)
78 );
79
80 CREATE TRIGGER mtime_delivery_order_items_id BEFORE UPDATE ON delivery_order_items
81     FOR EACH ROW EXECUTE PROCEDURE set_mtime();
82
83 ALTER TABLE defaults ADD COLUMN pdonumber text;
84 ALTER TABLE defaults ADD COLUMN sdonumber text;
85 UPDATE defaults SET pdonumber = '0', sdonumber = '0';
86
87 CREATE TABLE delivery_order_items_stock (
88   id                     integer       NOT NULL DEFAULT nextval('id'),
89   delivery_order_item_id integer       NOT NULL,
90
91   qty                    numeric(15,5) NOT NULL,
92   unit                   varchar(20)   NOT NULL,
93   warehouse_id           integer       NOT NULL,
94   bin_id                 integer       NOT NULL,
95   chargenumber           text,
96
97   itime                  timestamp              DEFAULT now(),
98   mtime                  timestamp,
99
100   PRIMARY KEY (id),
101   FOREIGN KEY (delivery_order_item_id) REFERENCES delivery_order_items (id),
102   FOREIGN KEY (warehouse_id)           REFERENCES warehouse (id),
103   FOREIGN KEY (bin_id)                 REFERENCES bin (id)
104 );
105
106 CREATE TRIGGER mtime_delivery_order_items_stock BEFORE UPDATE ON delivery_order_items_stock
107     FOR EACH ROW EXECUTE PROCEDURE set_mtime();