adding backend and object support for hold freezing
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 18 Jun 2007 00:55:46 +0000 (00:55 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 18 Jun 2007 00:55:46 +0000 (00:55 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@7440 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/examples/fm_IDL.xml
Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm
Open-ILS/src/sql/Pg/090.schema.action.sql

index 00ad089..beef509 100644 (file)
                        <field reporter:label="Notifications" name="notifications" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
                        <field reporter:label="Bib Record link" name="bib_rec" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
                        <field reporter:label="Eligible Copies" name="eligible_copies" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
+                       <field reporter:label="Currently Frozen" name="frozen" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="bool"/>
                </fields>
                <links>
                        <link field="fulfillment_lib" reltype="has_a" key="id" map="" class="aou"/>
index 493c934..fc125dc 100644 (file)
@@ -711,6 +711,7 @@ sub new_hold_copy_targeter {
                                                        { capture_time => undef,
                                                          fulfillment_time => undef,
                                                          cancel_time => undef,
+                                                         frozen => 'f',
                                                          prev_check_time => { '<=' => $expire_threshold },
                                                        },
                                                        { order_by => 'CASE WHEN hold_type = \'F\' THEN 0 ELSE 1 END, selection_depth DESC, request_time,prev_check_time' } ) ];
@@ -720,6 +721,7 @@ sub new_hold_copy_targeter {
                                                        capture_time => undef,
                                                        fulfillment_time => undef,
                                                        prev_check_time => undef,
+                                                       frozen => 'f',
                                                        cancel_time => undef,
                                                        { order_by => 'CASE WHEN hold_type = \'F\' THEN 0 ELSE 1 END, selection_depth DESC, request_time' } );
                } else {
@@ -730,6 +732,7 @@ sub new_hold_copy_targeter {
                                                        fulfillment_time => undef,
                                                        prev_check_time => undef,
                                                        cancel_time => undef,
+                                                       frozen => 'f',
                                                        { order_by => 'CASE WHEN hold_type = \'F\' THEN 0 ELSE 1 END, selection_depth DESC, request_time' } ) ];
                }
        } catch Error with {
index 866f8f7..029867d 100644 (file)
@@ -178,7 +178,8 @@ CREATE TABLE action.hold_request (
        hold_type               TEXT                            NOT NULL CHECK (hold_type IN ('M','T','V','C')),
        holdable_formats        TEXT,
        phone_notify            TEXT,
-       email_notify            BOOL                            NOT NULL DEFAULT TRUE
+       email_notify            BOOL                            NOT NULL DEFAULT TRUE,
+       frozen                  BOOL                            NOT NULL DEFAULT FALSE
 );
 
 CREATE INDEX hold_request_target_idx ON action.hold_request (target);