LP#1464709: Disentangle on-holds-shelf from is_available
authorMike Rylander <mrylander@gmail.com>
Tue, 23 Aug 2016 20:59:33 +0000 (16:59 -0400)
committerMike Rylander <mrylander@gmail.com>
Wed, 24 Aug 2016 16:15:11 +0000 (12:15 -0400)
Avoid treating On-Holds-Shelf items as is_available so they do not
appear in the catalog as #available.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/sql/Pg/100.circ_matrix.sql
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_status_co_allowed.sql

index 566588b..53b207a 100644 (file)
@@ -499,7 +499,7 @@ BEGIN
     END IF;
 
     -- Fail if the item isn't in a circulateable status on a non-renewal
-    IF NOT renewal AND item_object.status NOT IN ( 
+    IF NOT renewal AND item_object.status <> 8 AND item_object.status NOT IN (
         (SELECT id FROM config.copy_status WHERE is_available) ) THEN 
         result.fail_part := 'asset.copy.status';
         result.success := FALSE;
index c198d35..e8228c8 100644 (file)
@@ -314,7 +314,7 @@ INSERT INTO config.copy_status (id,name) VALUES (4,oils_i18n_gettext(4, 'Missing
 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (5,oils_i18n_gettext(5, 'In process', 'ccs', 'name'),'t','t');
 INSERT INTO config.copy_status (id,name,holdable,opac_visible,restrict_copy_delete) VALUES (6,oils_i18n_gettext(6, 'In transit', 'ccs', 'name'),'t','t','t');
 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active,is_available) VALUES (7,oils_i18n_gettext(7, 'Reshelving', 'ccs', 'name'),'t','t','t','t');
-INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active,restrict_copy_delete,is_available) VALUES (8,oils_i18n_gettext(8, 'On holds shelf', 'ccs', 'name'),'t','t','t','t','t');
+INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active,restrict_copy_delete) VALUES (8,oils_i18n_gettext(8, 'On holds shelf', 'ccs', 'name'),'t','t','t','t');
 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (9,oils_i18n_gettext(9, 'On order', 'ccs', 'name'),'t','t');
 INSERT INTO config.copy_status (id,name,copy_active) VALUES (10,oils_i18n_gettext(10, 'ILL', 'ccs', 'name'),'t');
 INSERT INTO config.copy_status (id,name) VALUES (11,oils_i18n_gettext(11, 'Cataloging', 'ccs', 'name'));
index b787c1a..1777681 100644 (file)
@@ -4,7 +4,7 @@ ALTER TABLE config.copy_status
     ADD COLUMN is_available BOOL NOT NULL DEFAULT FALSE;
 
 UPDATE config.copy_status SET is_available = TRUE
-    WHERE id IN (0, 7, 8); -- available, reshelving, holds shelf.
+    WHERE id IN (0, 7); -- available, reshelving.
 
 CREATE OR REPLACE FUNCTION action.item_user_circ_test( circ_ou INT, match_item BIGINT, match_user INT, renewal BOOL ) RETURNS SETOF action.circ_matrix_test_result AS $func$
 DECLARE
@@ -92,7 +92,7 @@ BEGIN
     END IF;
 
     -- Fail if the item isn't in a circulateable status on a non-renewal
-    IF NOT renewal AND item_object.status NOT IN ( 
+    IF NOT renewal AND item_object.status <> 8 AND item_object.status NOT IN (
         (SELECT id FROM config.copy_status WHERE is_available) ) THEN 
         result.fail_part := 'asset.copy.status';
         result.success := FALSE;