From: erickson Date: Tue, 8 Apr 2008 02:52:15 +0000 (+0000) Subject: changed lineitem retrieval call to streaming X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=85bab136b89c45391b827b781aced590eb8cf736;p=Evergreen.git changed lineitem retrieval call to streaming git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9262 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm index ceaeff8fb2..b40f4ba3d6 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm @@ -444,6 +444,7 @@ sub update_lineitem { __PACKAGE__->register_method( method => 'retrieve_pl_lineitem', api_name => 'open-ils.acq.lineitem.picklist.retrieve', + stream => 1, signature => { desc => 'Retrieves lineitem objects according to picklist', params => [ @@ -510,22 +511,23 @@ sub retrieve_pl_lineitem { my @ids; push(@ids, $_->{id}) for @$entries; - return \@ids if $$options{idlist} or not @ids; - if($$options{flesh_attrs}) { - $entries = $e->search_acq_lineitem([ - {id => \@ids}, - {flesh => 1, flesh_fields => {jub => ['attributes']}} - ]); - } else { - $entries = $e->batch_retrieve_acq_lineitem(\@ids); - } + for my $id (@ids) { + if($$options{idlist}) { + $conn->respond($id); + next; + } + + my $entry; + my $flesh = ($$options{flesh_attrs}) ? + {flesh => 1, flesh_fields => {jub => ['attributes']}} : {}; - if($$options{clear_marc}) { - $_->clear_marc for @$entries; + $entry = $e->retrieve_acq_lineitem([$id, $flesh]); + $entry->clear_marc if $$options{clear_marc}; + $conn->respond($entry); } - return $entries; + return undef; } =head comment