]> git.evergreen-ils.org Git - working/NCIPServer.git/blob - lib/NCIP/Handler/CheckInItem.pm
Finishing? the CheckInItem handler
[working/NCIPServer.git] / lib / NCIP / Handler / CheckInItem.pm
1 package NCIP::Handler::CheckInItem;
2
3 =head1
4
5   NCIP::Handler::CheckInItem
6
7 =head1 SYNOPSIS
8
9     Not to be called directly, NCIP::Handler will pick the appropriate Handler 
10     object, given a message type
11
12 =head1 FUNCTIONS
13
14 =cut
15
16 use Modern::Perl;
17
18 use NCIP::Handler;
19
20 our @ISA = qw(NCIP::Handler);
21
22 sub handle {
23     my $self   = shift;
24     my $xmldoc = shift;
25     if ($xmldoc) {
26         my $root = $xmldoc->documentElement();
27         my $itemid =
28           $root->findnodes('CheckInItem/UniqueItemId/ItemIdentifierValue');
29         my @elements = $root->findnodes('CheckInItem/ItemElementType/Value');
30
31         # checkin the item
32         my $branch='AS'; # where the hell do we get this from???
33         my $checkin = $self->ils->checkin( $itemid,$branch );
34         my $output;
35         my $vars;
36         $vars->{'messagetype'} = 'CheckInItemResponse';
37         $vars->{'barcode'} = $itemid;
38         if ( !$checkin->{success} ) {
39             $vars->{'processingerror'} = 1;
40             $vars->{'processingerrortype'} = $checkin->{'messages'};
41             $vars->{'processingerrorelement'} = 'UniqueItemIdentifier';
42             $output = $self->render_output( 'problem.tt', $vars );
43         }
44         else {
45
46             $vars->{'elements'} = \@elements;
47             $vars->{'checkin'}  = $checkin;
48             $output = $self->render_output( 'response.tt', $vars );
49         }
50         return $output;
51     }
52 }
53
54 1;