From 47a90a4b4be18ef87ce9ab433421da2dc827fad9 Mon Sep 17 00:00:00 2001 From: Chris Sharp Date: Mon, 12 Sep 2016 10:49:40 -0400 Subject: [PATCH] LP#1286340 - Add deleted flag to acq.purchase_order Signed-off-by: Chris Sharp --- Open-ILS/src/sql/Pg/200.schema.acq.sql | 1 + .../upgrade/XXXX.schema.delete_acq_purchase_orders.sql | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.delete_acq_purchase_orders.sql diff --git a/Open-ILS/src/sql/Pg/200.schema.acq.sql b/Open-ILS/src/sql/Pg/200.schema.acq.sql index c0670bb14c..42ee49f212 100644 --- a/Open-ILS/src/sql/Pg/200.schema.acq.sql +++ b/Open-ILS/src/sql/Pg/200.schema.acq.sql @@ -377,6 +377,7 @@ CREATE TABLE acq.purchase_order ( name TEXT NOT NULL, cancel_reason INT REFERENCES acq.cancel_reason( id ) DEFERRABLE INITIALLY DEFERRED, + deleted 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')) ); diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.delete_acq_purchase_orders.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.delete_acq_purchase_orders.sql new file mode 100644 index 0000000000..7be55a43c4 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.delete_acq_purchase_orders.sql @@ -0,0 +1,16 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +ALTER TABLE acq.purchase_order ADD COLUMN deleted BOOLEAN NOT NULL DEFAULT FALSE; +ALTER TABLE acq.lineitem ADD COLUMN deleted BOOLEAN NOT NULL DEFAULT FALSE; +ALTER TABLE acq.lineitem_detail ADD COLUMN deleted BOOLEAN NOT NULL DEFAULT FALSE; +ALTER TABLE acq.po_item ADD COLUMN deleted BOOLEAN NOT NULL DEFAULT FALSE; +ALTER TABLE acq.acq_purchase_order_history ADD COLUMN deleted BOOLEAN NOT NULL; + +CREATE RULE protect_purchase_order_delete AS ON DELETE TO acq.purchase_order DO INSTEAD UPDATE acq.purchase_order SET deleted = TRUE WHERE OLD.id = acq.purchase_order.id; +CREATE RULE protect_lineitem_delete AS ON DELETE TO acq.lineitem DO INSTEAD UPDATE acq.lineitem SET deleted = TRUE WHERE OLD.id = acq.lineitem.id; +CREATE RULE protect_lineitem_detail_delete AS ON DELETE TO acq.lineitem_detail DO INSTEAD UPDATE acq.lineitem_detail SET deleted = TRUE WHERE OLD.id = acq.lineitem_detail.id; +CREATE RULE protect_po_item_delete AS ON DELETE TO acq.po_item DO INSTEAD UPDATE acq.po_item SET deleted = TRUE WHERE OLD.id = acq.po_item.id; + +COMMIT; -- 2.11.0