LP#1440114 Direct charge blanket orders
authorBill Erickson <berickxx@gmail.com>
Tue, 7 Apr 2015 19:47:10 +0000 (15:47 -0400)
committerBill Erickson <berickxx@gmail.com>
Thu, 21 Mar 2019 19:46:23 +0000 (15:46 -0400)
Support "blanket" (long-lived, multi-invoice) orders via a new "blanket"
boolean on invoice item types.  Blanket charges can be invoiced multiple
times by creating a new fund_debit for each invoice item linked to a
blanket po_item.

This change also adds the amounts paid over time for blanket charges to
the Amount Paid summary information for purchase orders containing the
charges.

Adds a new Invoice Item Type of "Blanket Order".

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Invoice.pm

Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq_blanket_orders.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/YYYY.data.acq_blanket_order.sql [new file with mode: 0644]

diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq_blanket_orders.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq_blanket_orders.sql
new file mode 100644 (file)
index 0000000..4e9df8c
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN;
+
+--SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+ALTER TABLE acq.invoice_item_type
+    ADD COLUMN blanket BOOLEAN NOT NULL DEFAULT FALSE,
+    ADD CONSTRAINT aiit_not_blanket_and_prorate
+        CHECK (blanket IS FALSE OR prorate IS FALSE);
+
+COMMIT;
diff --git a/Open-ILS/src/sql/Pg/upgrade/YYYY.data.acq_blanket_order.sql b/Open-ILS/src/sql/Pg/upgrade/YYYY.data.acq_blanket_order.sql
new file mode 100644 (file)
index 0000000..b5a2f6d
--- /dev/null
@@ -0,0 +1,8 @@
+BEGIN;
+
+--SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+INSERT INTO acq.invoice_item_type (code, blanket, name) VALUES (
+    'BLA', TRUE, oils_i18n_gettext('BLA', 'Blanket Order', 'aiit', 'name'));
+
+COMMIT;