]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/Application/Circ.pm
cleaning up code from cat days.
[Evergreen.git] / Open-ILS / src / perlmods / OpenILS / Application / Circ.pm
1 package OpenILS::Application::Circ;
2 use base qw/OpenSRF::Application/;
3 use strict; use warnings;
4
5 use OpenILS::Application::Circ::Rules;
6 use OpenILS::Application::Circ::Survey;
7 #use OpenILS::Application::Circ::Actor;
8
9 use OpenILS::Application::AppUtils;
10 my $apputils = "OpenILS::Application::AppUtils";
11 use OpenSRF::Utils;
12 use OpenILS::Utils::ModsParser;
13
14
15 # ------------------------------------------------------------------------
16 # Top level Circ package;
17 # ------------------------------------------------------------------------
18
19 sub initialize {
20         my $self = shift;
21         OpenILS::Application::Circ::Rules->initialize();
22 }
23
24
25
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",
32 );
33
34 sub checkouts_by_user {
35         my( $self, $client, $user_session, $user_id ) = @_;
36
37         my $session = OpenSRF::AppSession->create("open-ils.storage");
38
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);
43
44         my @results;
45         for my $circ (@$circs) {
46
47                 my $copy = $session->request(
48                         "open-ils.storage.direct.asset.copy.retrieve",
49                         $circ->target_copy );
50
51                 my $record = $session->request(
52                         "open-ils.storage.fleshed.biblio.record_entry.retrieve_by_copy",
53                         $circ->target_copy );
54
55                 $copy = $copy->gather(1);
56                 $record = $record->gather(1);
57
58                 my $due_date = 
59                         OpenSRF::Utils->interval_to_seconds( 
60                                 $circ->duration ) + int(time());
61                 $circ->due_date($due_date);
62
63                 my $u = OpenILS::Utils::ModsParser->new();
64                 $u->start_mods_batch( $record->marc() );
65                 my $mods = $u->finish_mods_batch();
66
67                 push( @results, { copy => $copy, circ => $circ, record => $mods } );
68         }
69
70         return \@results;
71
72 }
73
74
75
76
77
78
79
80 1;