LP1952931 stamp upgrade script
[evergreen-equinox.git] / Open-ILS / src / sql / Pg / upgrade / 1345.schema.acq-asn.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('1345', :eg_version);
4
5 CREATE TABLE acq.shipment_notification (
6     id              SERIAL      PRIMARY KEY,
7     receiver        INT         NOT NULL REFERENCES actor.org_unit (id),
8     provider        INT         NOT NULL REFERENCES acq.provider (id),
9     shipper         INT         NOT NULL REFERENCES acq.provider (id),
10     recv_date       TIMESTAMPTZ NOT NULL DEFAULT NOW(),
11     recv_method     TEXT        NOT NULL REFERENCES acq.invoice_method (code) DEFAULT 'EDI',
12     process_date    TIMESTAMPTZ,
13     processed_by    INT         REFERENCES actor.usr(id) ON DELETE SET NULL,
14     container_code  TEXT        NOT NULL, -- vendor-supplied super-barcode
15     lading_number   TEXT,       -- informational
16     note            TEXT,
17     CONSTRAINT      container_code_once_per_provider UNIQUE(provider, container_code)
18 );
19
20 CREATE INDEX acq_asn_container_code_idx ON acq.shipment_notification (container_code);
21
22 CREATE TABLE acq.shipment_notification_entry (
23     id                      SERIAL  PRIMARY KEY,
24     shipment_notification   INT NOT NULL REFERENCES acq.shipment_notification (id)
25                             ON DELETE CASCADE,
26     lineitem                INT REFERENCES acq.lineitem (id)
27                             ON UPDATE CASCADE ON DELETE SET NULL,
28     item_count              INT NOT NULL -- How many items the provider shipped
29 );
30
31 /* TODO alter valid_message_type constraint */
32
33 ALTER TABLE acq.edi_message DROP CONSTRAINT valid_message_type;
34 ALTER TABLE acq.edi_message ADD CONSTRAINT valid_message_type
35 CHECK (
36     message_type IN (
37         'ORDERS',
38         'ORDRSP',
39         'INVOIC',
40         'OSTENQ',
41         'OSTRPT',
42         'DESADV'
43     )
44 );
45
46 COMMIT;
47
48 /* UNDO
49
50 DELETE FROM acq.edi_message WHERE message_type = 'DESADV';
51
52 DELETE FROM acq.shipment_notification_entry;
53 DELETE FROM acq.shipment_notification;
54
55 ALTER TABLE acq.edi_message DROP CONSTRAINT valid_message_type;
56 ALTER TABLE acq.edi_message ADD CONSTRAINT valid_message_type
57 CHECK (
58     message_type IN (
59         'ORDERS',
60         'ORDRSP',
61         'INVOIC',
62         'OSTENQ',
63         'OSTRPT'
64     )
65 );
66
67 DROP TABLE acq.shipment_notification_entry;
68 DROP TABLE acq.shipment_notification;
69
70 */