]> git.evergreen-ils.org Git - working/NCIPServer.git/blob - lib/NCIP/ILS/Koha.pm
Finishing? the CheckInItem handler
[working/NCIPServer.git] / lib / NCIP / ILS / Koha.pm
1 #
2 #===============================================================================
3 #
4 #         FILE: Koha.pm
5 #
6 #  DESCRIPTION:
7 #
8 #        FILES: ---
9 #         BUGS: ---
10 #        NOTES: ---
11 #       AUTHOR: Chris Cormack (rangi), chrisc@catalyst.net.nz
12 # ORGANIZATION: Koha Development Team
13 #      VERSION: 1.0
14 #      CREATED: 05/11/13 11:14:09
15 #     REVISION: ---
16 #===============================================================================
17 package NCIP::ILS::Koha;
18
19 use Modern::Perl;
20 use Object::Tiny qw{ name };
21
22 use C4::Members qw{ GetMemberDetails };
23 use C4::Circulation qw { AddReturn CanBookBeIssued AddIssue };
24
25 sub itemdata {
26     my $self = shift;
27     return ( { barcode => '123', title => 'fish' }, undef );
28 }
29
30 sub userdata {
31     my $self     = shift;
32     my $userid   = shift;
33     my $userdata = GetMemberDetails( undef, $userid );
34     return $userdata;
35 }
36
37 sub checkin {
38     my $self    = shift;
39     my $barcode = shift;
40     my $branch = shift;
41     my $exemptfine = undef;
42     my $dropbox = undef;
43     my ( $success, $messages, $issue, $borrower ) =
44       AddReturn( $barcode, $branch, $exemptfine, $dropbox );
45     my $result = {
46         success         => $success,
47         messages        => $messages,
48         iteminformation => $issue,
49         borrower        => $borrower
50     };
51     return $result;
52 }
53
54 sub checkout {
55     my $self    = shift;
56     my $userid  = shift;
57     my $barcode = shift;
58     my ( $error, $confirm ) = CanBookBeIssued( $userid, $barcode );
59
60   #( $issuingimpossible, $needsconfirmation ) =  CanBookBeIssued( $borrower,
61   #                      $barcode, $duedatespec, $inprocess, $ignore_reserves );
62     if ( $error || $confirm ) {
63
64         # Can't issue item, return error hash
65         return ( 1, $error || $confirm );
66     }
67     else {
68         AddIssue( $userid, $barcode );
69         return (0);    #successfully issued
70     }
71 }
72
73 1;