1 package OpenILS::Application::Circ;
2 use base qw/OpenSRF::Application/;
3 use strict; use warnings;
5 use OpenILS::Application::Circ::Rules;
6 use OpenILS::Application::Circ::Survey;
7 #use OpenILS::Application::Circ::Actor;
9 use OpenILS::Application::AppUtils;
10 my $apputils = "OpenILS::Application::AppUtils";
12 use OpenILS::Utils::ModsParser;
15 # ------------------------------------------------------------------------
16 # Top level Circ package;
17 # ------------------------------------------------------------------------
21 OpenILS::Application::Circ::Rules->initialize();
26 # ------------------------------------------------------------------------
27 # Returns an array of {circ, record} hashes checked out by the user.
28 # ------------------------------------------------------------------------
29 __PACKAGE__->register_method(
30 method => "checkouts_by_user",
31 api_name => "open-ils.circ.actor.user.checked_out",
34 sub checkouts_by_user {
35 my( $self, $client, $user_id ) = @_;
37 my $session = OpenSRF::AppSession->create("open-ils.storage");
39 my $circs = $session->request(
40 "open-ils.storage.direct.action.circulation.search.atomic",
41 { usr => $user_id, xact_finish => undef } );
42 $circs = $circs->gather(1);
45 for my $circ (@$circs) {
46 my $record = $session->request(
47 "open-ils.storage.fleshed.biblio.record_entry.retrieve_by_copy",
49 $record = $record->gather(1);
51 OpenSRF::Utils->interval_to_seconds(
52 $circ->duration ) + int(time());
53 $circ->due_date($due_date);
55 my $u = OpenILS::Utils::ModsParser->new();
56 $u->start_mods_batch( $record->marc() );
57 my $mods = $u->finish_mods_batch();
59 push( @results, { circ => $circ, record => $mods } );