1 package NCIP::Handler::AcceptItem;
5 NCIP::Handler::AcceptItem
9 Not to be called directly, NCIP::Handler will pick the appropriate Handler
10 object, given a message type
20 our @ISA = qw(NCIP::Handler);
26 my $root = $xmldoc->documentElement();
27 my $xpc = $self->xpc();
29 $xpc->findnodes( '//ns:ItemId/ItemIdentifierValue', $root );
30 my ($action) = $xpc->findnodes( '//ns:RequestedActionType', $root );
31 my ($request) = $xpc->findnodes( '//ns:RequestId', $root );
32 my $requestagency = $xpc->find( 'ns:AgencyId', $request );
33 my $requestid = $xpc->find( '//ns:RequestIdentifierValue', $request );
36 my $accepted = $self->ils->acceptitem($itemid);
39 my ( $from, $to ) = $self->get_agencies($xmldoc);
41 # we switch these for the templates
42 # because we are responding, to becomes from, from becomes to
43 $vars->{'fromagency'} = $to;
44 $vars->{'toagency'} = $from;
46 $vars->{'messagetype'} = 'AcceptItemResponse';
47 $vars->{'barcode'} = $itemid;
48 if ( !$accepted->{success} ) {
49 $vars->{'processingerror'} = 1;
50 $vars->{'processingerrortype'} = $accepted->{'messages'};
51 $vars->{'processingerrorelement'} = 'UniqueItemIdentifier';
52 $output = $self->render_output( 'problem.tt', $vars );
55 my $elements = $self->get_user_elements($xmldoc);
56 $vars->{'requestagency'} = $requestagency;
57 $vars->{'requestid'} = $requestid;
59 $vars->{'elements'} = $elements;
60 $vars->{'accept'} = $accepted;
61 $output = $self->render_output( 'response.tt', $vars );