adding "available only" status filtered pull list methods
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 17 Oct 2007 15:28:32 +0000 (15:28 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 17 Oct 2007 15:28:32 +0000 (15:28 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@7891 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm

index 1d145f0..76aa0da 100644 (file)
@@ -364,6 +364,9 @@ sub hold_pull_list {
 
        my $idlist = 1 if ($self->api_name =~/id_list/o);
 
+       my $status_filter = '';
+       $status_filter = 'AND a.status IN (0,7)' if ($self->api_name =~/status_filtered/o);
+
        my $select = <<"        SQL";
                SELECT  h.*
                  FROM  $h_table h
@@ -371,6 +374,7 @@ sub hold_pull_list {
                  WHERE a.circ_lib = ?
                        AND h.capture_time IS NULL
                        AND h.cancel_time IS NULL
+                       $status_filter
                  ORDER BY h.request_time ASC
                  LIMIT $limit
                  OFFSET $offset
@@ -415,6 +419,34 @@ __PACKAGE__->register_method(
        ],
        method          => 'hold_pull_list',
 );
+__PACKAGE__->register_method(
+       api_name        => 'open-ils.storage.direct.action.hold_request.pull_list.id_list.current_copy_circ_lib.status_filtered',
+       api_level       => 1,
+       stream          => 1,
+       signature       => [
+               "Returns the hold ids for a specific library's pull list that are definitely in that library, based on status.",
+               [ [org_unit => "The library's org id", "number"],
+                 [limit => 'An optional page size, defaults to 10', 'number'],
+                 [offset => 'Offset for paging, defaults to 0, 0 based', 'number'],
+               ],
+               ['A list of holds for the stated library to pull for', 'array']
+       ],
+       method          => 'hold_pull_list',
+);
+__PACKAGE__->register_method(
+       api_name        => 'open-ils.storage.direct.action.hold_request.pull_list.search.current_copy_circ_lib.status_filtered',
+       api_level       => 1,
+       stream          => 1,
+       signature       => [
+               "Returns the holds for a specific library's pull list that are definitely in that library, based on status.",
+               [ [org_unit => "The library's org id", "number"],
+                 [limit => 'An optional page size, defaults to 10', 'number'],
+                 [offset => 'Offset for paging, defaults to 0, 0 based', 'number'],
+               ],
+               ['A list of holds for the stated library to pull for', 'array']
+       ],
+       method          => 'hold_pull_list',
+);
 
 sub find_optional_surveys {
        my $self = shift;