2 -- @description: Add reclamations, reclamation_items and reclamation_reasons
3 -- @depends: release_3_5_7
6 CREATE TABLE reclamation_reasons (
9 description TEXT NOT NULL,
10 position INTEGER NOT NULL,
11 itime TIMESTAMP without time zone DEFAULT now(),
12 mtime TIMESTAMP without time zone,
13 valid_for_sales BOOLEAN NOT NULL DEFAULT false,
14 valid_for_purchase BOOLEAN NOT NULL DEFAULT false
16 CREATE TRIGGER mtime_reclamation_reasons
17 BEFORE UPDATE ON reclamation_reasons
18 FOR EACH ROW EXECUTE PROCEDURE set_mtime();
20 CREATE TABLE reclamations (
22 id INTEGER NOT NULL DEFAULT nextval('id'),
23 record_number TEXT NOT NULL,
24 transdate DATE DEFAULT now(),
25 itime TIMESTAMP without time zone DEFAULT now(),
26 mtime TIMESTAMP without time zone,
27 delivered BOOLEAN NOT NULL DEFAULT false,
28 closed BOOLEAN NOT NULL DEFAULT false,
30 employee_id INTEGER NOT NULL REFERENCES employee(id),
31 globalproject_id INTEGER REFERENCES project(id),
32 delivery_term_id INTEGER REFERENCES delivery_terms(id),
33 shipto_id INTEGER REFERENCES shipto(shipto_id),
34 department_id INTEGER REFERENCES department(id),
35 contact_id INTEGER REFERENCES contacts(cp_id),
37 transaction_description TEXT,
39 cv_record_number TEXT,
43 netamount NUMERIC(15,5),
44 payment_id INTEGER REFERENCES payment_terms(id),
45 currency_id INTEGER NOT NULL REFERENCES currencies(id),
46 taxincluded BOOLEAN NOT NULL,
48 exchangerate NUMERIC(15,5),
49 taxzone_id INTEGER NOT NULL REFERENCES tax_zones(id),
53 language_id INTEGER REFERENCES language(id),
55 salesman_id INTEGER REFERENCES employee(id),
56 customer_id INTEGER REFERENCES customer(id),
58 vendor_id INTEGER REFERENCES vendor(id),
60 CONSTRAINT reclamations_customervendor_check CHECK (
61 (customer_id IS NOT NULL AND vendor_id IS NULL)
62 OR (vendor_id IS NOT NULL AND customer_id IS NULL)
67 CREATE TRIGGER mtime_reclamations BEFORE UPDATE ON reclamations FOR EACH ROW EXECUTE PROCEDURE set_mtime();
69 CREATE INDEX reclamations_record_number_key ON reclamations (record_number);
70 CREATE INDEX reclamations_customer_id_key ON reclamations (customer_id);
71 CREATE INDEX reclamations_vendor_id_key ON reclamations (vendor_id);
74 ALTER TABLE defaults ADD COLUMN p_reclamation_record_number TEXT NOT NULL DEFAULT 0;
75 ALTER TABLE defaults ADD COLUMN s_reclamation_record_number TEXT NOT NULL DEFAULT 0;
77 CREATE TABLE reclamation_items (
79 id SERIAL PRIMARY KEY,
80 reclamation_id INTEGER NOT NULL REFERENCES reclamations(id) ON DELETE CASCADE,
81 reason_id INTEGER NOT NULL REFERENCES reclamation_reasons(id),
82 reason_description_ext TEXT,
83 reason_description_int TEXT,
84 position INTEGER NOT NULL CHECK(position > 0),
85 itime TIMESTAMP without time zone DEFAULT now(),
86 mtime TIMESTAMP without time zone,
88 project_id INTEGER REFERENCES project(id) ON DELETE SET NULL,
90 parts_id INTEGER NOT NULL REFERENCES parts(id),
96 unit character varying(20) REFERENCES units(name),
98 sellprice NUMERIC(15,5),
99 lastcost NUMERIC(15,5),
101 pricegroup_id INTEGER REFERENCES pricegroup(id),
102 price_factor_id INTEGER REFERENCES price_factors(id),
103 price_factor NUMERIC(15,5) DEFAULT 1,
104 active_price_source TEXT NOT NULL DEFAULT ''::text,
105 active_discount_source TEXT NOT NULL DEFAULT ''::text,
109 CREATE TRIGGER mtime_reclamation_items BEFORE UPDATE ON reclamation_items FOR EACH ROW EXECUTE PROCEDURE set_mtime();