|
Lines 26-32
use C4::Circulation;
Link Here
|
| 26 |
use C4::Branch; |
26 |
use C4::Branch; |
| 27 |
use C4::Accounts; |
27 |
use C4::Accounts; |
| 28 |
use C4::Biblio; |
28 |
use C4::Biblio; |
| 29 |
use C4::Reserves qw(AddReserve CancelReserve GetReservesFromBiblionumber GetReservesFromBorrowernumber CanBookBeReserved CanItemBeReserved); |
29 |
use C4::Reserves qw(AddReserve GetReservesFromBiblionumber GetReservesFromBorrowernumber CanBookBeReserved CanItemBeReserved); |
| 30 |
use C4::Context; |
30 |
use C4::Context; |
| 31 |
use C4::AuthoritiesMarc; |
31 |
use C4::AuthoritiesMarc; |
| 32 |
use XML::Simple; |
32 |
use XML::Simple; |
|
Lines 724-730
Parameters:
Link Here
|
| 724 |
- patron_id (Required) |
724 |
- patron_id (Required) |
| 725 |
a borrowernumber |
725 |
a borrowernumber |
| 726 |
- item_id (Required) |
726 |
- item_id (Required) |
| 727 |
an itemnumber |
727 |
a reserve_id |
| 728 |
|
728 |
|
| 729 |
=cut |
729 |
=cut |
| 730 |
|
730 |
|
|
Lines 736-761
sub CancelHold {
Link Here
|
| 736 |
my $borrower = GetMemberDetails( $borrowernumber ); |
736 |
my $borrower = GetMemberDetails( $borrowernumber ); |
| 737 |
return { code => 'PatronNotFound' } unless $$borrower{borrowernumber}; |
737 |
return { code => 'PatronNotFound' } unless $$borrower{borrowernumber}; |
| 738 |
|
738 |
|
| 739 |
# Get the item or return an error code |
739 |
# Get the reserve or return an error code |
| 740 |
my $itemnumber = $cgi->param('item_id'); |
740 |
my $reserve_id = $cgi->param('item_id'); |
| 741 |
my $item = GetItem( $itemnumber ); |
741 |
my $reserve = C4::Reserves::GetReserve($reserve_id); |
| 742 |
return { code => 'RecordNotFound' } unless $$item{itemnumber}; |
742 |
return { code => 'RecordNotFound' } unless $reserve; |
| 743 |
|
743 |
return { code => 'RecordNotFound' } unless ($reserve->{borrowernumber} == $borrowernumber); |
| 744 |
# Get borrower's reserves |
|
|
| 745 |
my @reserves = GetReservesFromBorrowernumber( $borrowernumber, undef ); |
| 746 |
my @reserveditems; |
| 747 |
|
| 748 |
# ...and loop over it to build an array of reserved itemnumbers |
| 749 |
foreach my $reserve (@reserves) { |
| 750 |
push @reserveditems, $reserve->{'itemnumber'}; |
| 751 |
} |
| 752 |
|
| 753 |
# if the item was not reserved by the borrower, returns an error code |
| 754 |
return { code => 'NotCanceled' } unless any { $itemnumber eq $_ } @reserveditems; |
| 755 |
|
| 756 |
# Cancel the reserve |
| 757 |
CancelReserve({ itemnumber => $itemnumber, borrowernumber => $borrowernumber }); |
| 758 |
|
744 |
|
|
|
745 |
C4::Reserves::CancelReserveFromId($reserve_id); |
| 746 |
|
| 759 |
return { code => 'Canceled' }; |
747 |
return { code => 'Canceled' }; |
| 760 |
} |
748 |
} |
| 761 |
|
749 |
|