From a2e775f33c28fb2d1400204a6134a91577fa6db7 Mon Sep 17 00:00:00 2001 From: scottmk Date: Thu, 4 Mar 2010 21:31:55 +0000 Subject: [PATCH] Create new table acq.cancel_reason. Create new columns pointing to it in acq.purchase_order and acq.lineitem. See KCLS ticket #3015. M Open-ILS/src/sql/Pg/200.schema.acq.sql M Open-ILS/src/sql/Pg/002.schema.config.sql A Open-ILS/src/sql/Pg/upgrade/0177.schema.cancel_reason.sql M Open-ILS/examples/fm_IDL.xml git-svn-id: svn://svn.open-ils.org/ILS/trunk@15704 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/examples/fm_IDL.xml | 18 ++++++++++++ Open-ILS/src/sql/Pg/002.schema.config.sql | 2 +- Open-ILS/src/sql/Pg/200.schema.acq.sql | 21 +++++++++++++- .../Pg/upgrade/0177.schema.cancel_reason.sql | 28 +++++++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/0177.schema.cancel_reason.sql diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 2dcc6ef671..ceeeb9122b 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -5087,6 +5087,20 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + + + + + + + + + + + + + @@ -5100,6 +5114,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + @@ -5115,6 +5130,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + @@ -5190,6 +5206,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + @@ -5206,6 +5223,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index c42e64455a..b752b15239 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -51,7 +51,7 @@ CREATE TABLE config.upgrade_log ( install_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW() ); -INSERT INTO config.upgrade_log (version) VALUES ('0176'); -- Scott McKellar +INSERT INTO config.upgrade_log (version) VALUES ('0177'); -- Scott McKellar CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/200.schema.acq.sql b/Open-ILS/src/sql/Pg/200.schema.acq.sql index 6fbcf59d8f..44a3529fd4 100644 --- a/Open-ILS/src/sql/Pg/200.schema.acq.sql +++ b/Open-ILS/src/sql/Pg/200.schema.acq.sql @@ -322,6 +322,21 @@ CREATE INDEX acq_picklist_owner_idx ON acq.picklist ( owner ); CREATE INDEX acq_picklist_creator_idx ON acq.picklist ( creator ); CREATE INDEX acq_picklist_editor_idx ON acq.picklist ( editor ); +CREATE TABLE acq.cancel_reason ( + id SERIAL PRIMARY KEY, + org_unit INTEGER NOT NULL REFERENCES actor.org_unit( id ) + DEFERRABLE INITIALLY DEFERRED, + label TEXT NOT NULL, + description TEXT NOT NULL, + CONSTRAINT acq_cancel_reason_one_per_org_unit UNIQUE( org_unit, label ) +); + +-- Reserve ids 1-999 for stock reasons +-- Reserve ids 1000-1999 for EDI reasons +-- 2000+ are available for staff to create + +SELECT SETVAL('acq.cancel_reason_id_seq'::TEXT, 2000); + CREATE TABLE acq.purchase_order ( id SERIAL PRIMARY KEY, owner INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, @@ -333,7 +348,9 @@ CREATE TABLE acq.purchase_order ( provider INT NOT NULL REFERENCES acq.provider (id) DEFERRABLE INITIALLY DEFERRED, state TEXT NOT NULL DEFAULT 'new', order_date TIMESTAMP WITH TIME ZONE, - name TEXT NOT NULL + name TEXT NOT NULL, + cancel_reason INT REFERENCES acq.cancel_reason( id ) + DEFERRABLE INITIALLY DEFERRED ); CREATE INDEX po_owner_idx ON acq.purchase_order (owner); CREATE INDEX po_provider_idx ON acq.purchase_order (provider); @@ -435,6 +452,8 @@ CREATE TABLE acq.lineitem ( source_label TEXT, state TEXT NOT NULL DEFAULT 'new', claim_interval INTERVAL, + cancel_reason INT REFERENCES acq.cancel_reason( id ) + DEFERRABLE INITIALLY DEFERRED, CONSTRAINT picklist_or_po CHECK (picklist IS NOT NULL OR purchase_order IS NOT NULL) ); CREATE INDEX li_po_idx ON acq.lineitem (purchase_order); diff --git a/Open-ILS/src/sql/Pg/upgrade/0177.schema.cancel_reason.sql b/Open-ILS/src/sql/Pg/upgrade/0177.schema.cancel_reason.sql new file mode 100644 index 0000000000..2c21ae7a56 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0177.schema.cancel_reason.sql @@ -0,0 +1,28 @@ +BEGIN; + +INSERT INTO config.upgrade_log (version) VALUES ('0177'); -- Scott McKellar + +CREATE TABLE acq.cancel_reason ( + id SERIAL PRIMARY KEY, + org_unit INTEGER NOT NULL REFERENCES actor.org_unit( id ) + DEFERRABLE INITIALLY DEFERRED, + label TEXT NOT NULL, + description TEXT NOT NULL, + CONSTRAINT acq_cancel_reason_one_per_org_unit UNIQUE( org_unit, label ) +); + +-- Reserve ids 1-999 for stock reasons +-- Reserve ids 1000-1999 for EDI reasons +-- 2000+ are available for staff to create + +SELECT SETVAL('acq.cancel_reason_id_seq'::TEXT, 2000); + +ALTER TABLE acq.purchase_order + ADD COLUMN cancel_reason INT REFERENCES acq.cancel_reason( id ) + DEFERRABLE INITIALLY DEFERRED; + +ALTER TABLE acq.lineitem + ADD COLUMN cancel_reason INT REFERENCES acq.cancel_reason( id ) + DEFERRABLE INITIALLY DEFERRED; + +COMMIT; -- 2.43.2