my $xmldoc = shift;
if ($xmldoc) {
my $root = $xmldoc->documentElement();
+ my $xpc = XML::LibXML::XPathContext->new;
+ $xpc->registerNs( 'ns', $self->namespace() );
+
my $userid =
- $root->findnodes('CheckOutItem/UniqueUserId/UserIdentifierValue');
+ $xpc->findnodes( 'ns:CheckOutItem/UniqueUserId/UserIdentifierValue',
+ $root );
my $itemid =
- $root->findnodes('CheckOutItem/UniqueItemId/ItemIdentifierValue');
- my @elements = $root->findnodes('CheckOutItem/ItemElementType/Value');
+ $xpc->findnodes( 'ns:CheckOutItem/UniqueItemId/ItemIdentifierValue',
+ $root );
# checkout the item
- my ( $error, $messages, $datedue ) = $self->ils->checkout( $userid, $itemid );
+ my ( $error, $messages, $datedue ) =
+ $self->ils->checkout( $userid, $itemid );
my $vars;
my $output;
- $vars->{'barcode'}=$itemid;
+ $vars->{'barcode'} = $itemid;
$vars->{'messagetype'} = 'CheckOutItemResponse';
if ($error) {
- warn "Error!!!";
$vars->{'processingerror'} = 1;
- use Data::Dumper;
- warn Dumper $messages;
$vars->{'processingerrortype'} = $messages;
$vars->{'processingerrorelement'} = 'UniqueItemIdentifier';
$output = $self->render_output( 'problem.tt', $vars );
}
else {
- $vars->{'elements'} = \@elements;
- $vars->{'datedue'} = $datedue;
+ my $elements = $self->get_user_elements($xmldoc);
+ $vars->{'elements'} = $elements;
+ $vars->{'datedue'} = $datedue;
$output = $self->render_output( 'response.tt', $vars );
}
return $output;
my $xmldoc = shift;
if ($xmldoc) {
my $root = $xmldoc->documentElement();
+ my $xpc = XML::LibXML::XPathContext->new;
+ $xpc->registerNs( 'ns', $self->namespace() );
+
my $userid =
- $root->findnodes('RequestItem/UniqueUserId/UserIdentifierValue');
+ $xpc->findnodes( 'ns:RequestItem/UniqueUserId/UserIdentifierValue',
+ $root );
my $itemid =
- $root->findnodes('RequestItem/UniqueItemId/ItemIdentifierValue');
- my @elements = $root->findnodes('RequestItem/ItemElementType/Value');
+ $xpc->findnodes( 'ns:RequestItem/UniqueItemId/ItemIdentifierValue',
+ $root );
# checkout the item
my ( $error, $messages ) = $self->ils->request( $userid, $itemid );
my $vars;
my $output;
- my $vars->{'barcode'}=$itemid;
+ my $vars->{'barcode'} = $itemid;
$vars->{'messagetype'} = 'RequestItemResponse';
if ($error) {
$vars->{'processingerror'} = 1;
$output = $self->render_output( 'problem.tt', $vars );
}
else {
- $vars->{'elements'} = \@elements;
+ my $elements = $self->get_user_elements($xmldoc);
+ $vars->{'elements'} = $elements;
$output = $self->render_output( 'response.tt', $vars );
}
use C4::Circulation qw { AddReturn CanBookBeIssued AddIssue };
use C4::Context;
use C4::Items qw { GetItem };
+use C4::Reserves qw {CanBookBeReserved AddReserve };
sub itemdata {
my $self = shift;
#handle stuff here
}
}
+
+sub request {
+ my $self = shift;
+ my $biblionumber = shift;
+ my $borrowernumber = shift;
+ if ( CanBookBeReserved( $borrowernumber, $biblionumber ) ) {
+
+ # Add reserve here
+ return ( undef, "Requested" );
+ }
+ else {
+ return ( 1, "Book can not be requested" );
+ }
+}
1;