]> git.evergreen-ils.org Git - working/NCIPServer.git/blob - lib/NCIP/ILS/Koha.pm
Working on RenewItem 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 use C4::Context;
25
26 sub itemdata {
27     my $self = shift;
28     return ( { barcode => '123', title => 'fish' }, undef );
29 }
30
31 sub userdata {
32     my $self     = shift;
33     my $userid   = shift;
34     my $userdata = GetMemberDetails( undef, $userid );
35     return $userdata;
36 }
37
38 sub checkin {
39     my $self       = shift;
40     my $barcode    = shift;
41     my $branch     = shift;
42     my $exemptfine = undef;
43     my $dropbox    = undef;
44     my ( $success, $messages, $issue, $borrower ) =
45       AddReturn( $barcode, $branch, $exemptfine, $dropbox );
46     my $result = {
47         success         => $success,
48         messages        => $messages,
49         iteminformation => $issue,
50         borrower        => $borrower
51     };
52     return $result;
53 }
54
55 sub checkout {
56     my $self     = shift;
57     my $userid   = shift;
58     my $barcode  = shift;
59     my $borrower = GetMemberDetails( undef, $userid );
60     my $error;
61     my $confirm;
62     my (
63         $usernum,      $userid,        $usercnum,   $userfirstname,
64         $usersurname,  $userbranch,    $branchname, $userflags,
65         $emailaddress, $branchprinter, $persona
66     ) = @_;
67     my @USERENV = (
68         1,
69         'test',
70         'MASTERTEST',
71         'Test',
72         'Test',
73         'AS',    #branchcode need to set this properly
74         'Auckland',
75         0,
76     );
77
78     C4::Context->_new_userenv('DUMMY_SESSION_ID');
79     C4::Context->set_userenv(@USERENV);
80
81     if ($borrower) {
82
83         ( $error, $confirm ) = CanBookBeIssued( $borrower, $barcode );
84
85   #( $issuingimpossible, $needsconfirmation ) =  CanBookBeIssued( $borrower,
86   #                      $barcode, $duedatespec, $inprocess, $ignore_reserves );
87         if (%$error) {
88
89             # Can't issue item, return error hash
90             return ( 1, $error );
91         }
92         elsif (%$confirm) {
93             return ( 1, $confirm );
94         }
95         else {
96             my $datedue = AddIssue( $borrower, $barcode );
97             return ( 0, undef, $datedue );    #successfully issued
98         }
99     }
100     else {
101         $error->{'badborrower'} = 1;
102         return ( 1, $error );
103     }
104 }
105
106 sub renew {
107     my $self     = shift;
108     my $barcode  = shift;
109     my $userid   = shift;
110     my $borrower = GetMemberDetails( undef, $userid );
111     if ($borrower) {
112         my $datedue = AddRenewal( $barcode, $borrower->{'borrowernumber'} );
113         my $result = {
114             success => 1,
115             datedue => $datedue
116         };
117         return $result;
118
119     }
120     else {
121 #handle stuff here
122     }
123 }
124 1;