use C4::Branch;
use C4::Accounts;
use C4::Biblio;
-use C4::Reserves qw(AddReserve CancelReserve GetReservesFromBiblionumber GetReservesFromBorrowernumber);
+use C4::Reserves qw(AddReserve CancelReserve GetReservesFromBiblionumber GetReservesFromBorrowernumber CanBookBeReserved CanItemBeReserved);
use C4::Context;
use C4::AuthoritiesMarc;
use C4::ILSDI::Utility;
use HTML::Entities;
use CGI;
use DateTime;
+use C4::Auth;
=head1 NAME
noattr => 1,
noescape => 1,
nosort => 1,
- xmldecl => '<?xml version="1.0" encoding="ISO-8859-1" ?>',
+ xmldecl => '<?xml version="1.0" encoding="UTF-8" ?>',
RootName => 'LookupPatron',
SuppressEmpty => 1);
sub GetAvailability {
my ($cgi) = @_;
- my $out = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
+ my $out = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
$out .= "<dlf:collection\n";
$out .= " xmlns:dlf=\"http://diglib.org/ilsdi/1.1\"\n";
$out .= " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
$biblioitem->{code} = "RecordNotFound";
}
+ my $embed_items = 1;
+ my $record = GetMarcBiblio($biblionumber, $embed_items);
+ if ($record) {
+ $biblioitem->{marcxml} = $record->as_xml_record();
+ }
+
# We don't want MARC to be displayed
delete $biblioitem->{'marc'};
Parameters:
- username (Required)
- user's login identifier
+ user's login identifier (userid or cardnumber)
- password (Required)
- user's password
+ user's password
=cut
sub AuthenticatePatron {
my ($cgi) = @_;
-
- # Check if borrower exists, using a C4::Auth function...
- unless( C4::Auth::checkpw( C4::Context->dbh, $cgi->param('username'), $cgi->param('password') ) ) {
+ my ($status, $cardnumber, $userid) = C4::Auth::checkpw( C4::Context->dbh, $cgi->param('username'), $cgi->param('password') );
+ if ( $status ) {
+ # Get the borrower
+ my $borrower = GetMember( cardnumber => $cardnumber );
+ my $patron->{'id'} = $borrower->{'borrowernumber'};
+ return $patron;
+ }
+ else {
return { code => 'PatronNotFound' };
}
-
- # Get the borrower
- my $borrower = GetMember( userid => $cgi->param('username') );
-
- # Build the hashref
- my $patron->{'id'} = $borrower->{'borrowernumber'};
-
- # ... and return his ID
- return $patron;
}
=head2 GetPatronInfo
# Add additional fields
$reserve->{'item'} = $item;
$reserve->{'branchname'} = $branchname;
- $reserve->{'title'} = ( GetBiblio( $reserve->{'biblionumber'} ) )[1]->{'title'};
+ $reserve->{'title'} = GetBiblio( $reserve->{'biblionumber'} )->{'title'};
}
$borrower->{'holds'}->{'hold'} = \@reserves;
}
# Issues management
if ( $cgi->param('show_loans') eq "1" ) {
my $issues = GetPendingIssues($borrowernumber);
+ foreach my $issue ( @$issues ){
+ $issue->{'issuedate'} = $issue->{'issuedate'}->strftime('%Y-%m-%d %H:%M');
+ $issue->{'date_due'} = $issue->{'date_due'}->strftime('%Y-%m-%d %H:%M');
+ }
$borrower->{'loans'}->{'loan'} = $issues;
}
# Get the biblio record, or return an error code
my $biblionumber = $cgi->param('bib_id');
- my ( $count, $biblio ) = GetBiblio( $biblionumber );
+ my $biblio = GetBiblio( $biblionumber );
return { code => 'RecordNotFound' } unless $$biblio{biblionumber};
my $title = $$biblio{title};
# Get the biblio or return an error code
my $biblionumber = $cgi->param('bib_id');
- my ( $count, $biblio ) = GetBiblio($biblionumber);
+ my $biblio = GetBiblio($biblionumber);
return { code => 'RecordNotFound' } unless $$biblio{biblionumber};
my $title = $$biblio{title};
return { code => 'RecordNotFound' } if $$item{biblionumber} ne $$biblio{biblionumber};
# Check for item disponibility
- my $canitembereserved = CanItemBeReserved( $borrowernumber, $itemnumber );
- my $canbookbereserved = CanBookBeReserved( $borrowernumber, $biblionumber );
+ my $canitembereserved = C4::Reserves::CanItemBeReserved( $borrowernumber, $itemnumber );
+ my $canbookbereserved = C4::Reserves::CanBookBeReserved( $borrowernumber, $biblionumber );
return { code => 'NotHoldable' } unless $canbookbereserved and $canitembereserved;
my $branch;
}
# Add the reserve
- # $branch, $borrowernumber, $biblionumber, $constraint, $bibitems, $priority, $notes, $title, $checkitem, $found
- AddReserve( $branch, $borrowernumber, $biblionumber, 'a', undef, $rank, undef, $title, $itemnumber, $found );
+ # $branch,$borrowernumber,$biblionumber,$constraint,$bibitems,$priority,$resdate,$expdate,$notes,$title,$checkitem,$found
+ AddReserve( $branch, $borrowernumber, $biblionumber, 'a', undef, $rank, '', '', '', $title, $itemnumber, $found );
# Hashref building
my $out;
return { code => 'NotCanceled' } unless any { $itemnumber eq $_ } @reserveditems;
# Cancel the reserve
- CancelReserve( $itemnumber, undef, $borrowernumber );
+ CancelReserve({ itemnumber => $itemnumber, borrowernumber => $borrowernumber });
return { code => 'Canceled' };
}