Add constraint to ACQ PO state value
authorBill Erickson <berick@esilibrary.com>
Wed, 23 Nov 2011 15:54:51 +0000 (10:54 -0500)
committerLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Tue, 24 Jul 2012 18:54:02 +0000 (14:54 -0400)
Limit 'state' values to

'new','pending','on-order','received','cancelled'

https://bugs.launchpad.net/evergreen/+bug/893193

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/200.schema.acq.sql
Open-ILS/src/sql/Pg/upgrade/0722.schema.acq-po-state-constraint.sql [new file with mode: 0644]

index 7aff4be..9ae1a87 100644 (file)
@@ -57,7 +57,7 @@ CREATE TABLE config.upgrade_log (
     install_date    TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
 );
 
-INSERT INTO config.upgrade_log (version) VALUES ('0693'); -- denials/miker
+INSERT INTO config.upgrade_log (version) VALUES ('0722'); -- berick/mrpeters/senator
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
index 7c03d84..544adeb 100644 (file)
@@ -379,7 +379,8 @@ CREATE TABLE acq.purchase_order (
        name                    TEXT                                    NOT NULL,
        cancel_reason   INT                     REFERENCES acq.cancel_reason( id )
                                             DEFERRABLE INITIALLY DEFERRED,
-       prepayment_required BOOLEAN NOT NULL DEFAULT FALSE
+       prepayment_required BOOLEAN NOT NULL DEFAULT FALSE,
+    CONSTRAINT valid_po_state CHECK (state IN ('new','pending','on-order','received','cancelled'))
 );
 CREATE INDEX po_owner_idx ON acq.purchase_order (owner);
 CREATE INDEX po_provider_idx ON acq.purchase_order (provider);
diff --git a/Open-ILS/src/sql/Pg/upgrade/0722.schema.acq-po-state-constraint.sql b/Open-ILS/src/sql/Pg/upgrade/0722.schema.acq-po-state-constraint.sql
new file mode 100644 (file)
index 0000000..dd22b2e
--- /dev/null
@@ -0,0 +1,10 @@
+-- Evergreen DB patch 0722.schema.acq-po-state-constraint.sql
+--
+BEGIN;
+
+INSERT INTO config.upgrade_log (version) VALUES ('0722');
+
+ALTER TABLE acq.purchase_order ADD CONSTRAINT valid_po_state 
+    CHECK (state IN ('new','pending','on-order','received','cancelled'));
+
+COMMIT;