LP#1286340 - Add deleted flag to acq.purchase_order
authorChris Sharp <csharp@georgialibraries.org>
Mon, 12 Sep 2016 14:49:40 +0000 (10:49 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Wed, 8 Nov 2017 03:52:43 +0000 (22:52 -0500)
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Open-ILS/src/sql/Pg/200.schema.acq.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.delete_acq_purchase_orders.sql [new file with mode: 0644]

index c0670bb..42ee49f 100644 (file)
@@ -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 (file)
index 0000000..7be55a4
--- /dev/null
@@ -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;