# Already issued to current borrower. Ask whether the loan should
# be renewed.
- my ($CanBookBeRenewed) = CanBookBeRenewed(
+ my ($CanBookBeRenewed,$renewerror) = CanBookBeRenewed(
$borrower->{'borrowernumber'},
$item->{'itemnumber'}
);
=head2 CanBookBeRenewed
-$ok = &CanBookBeRenewed($borrowernumber, $itemnumber);
+($ok,$error) = &CanBookBeRenewed($borrowernumber, $itemnumber);
Find out whether a borrowed item may be renewed.
C<$CanBookBeRenewed> returns a true value iff the item may be renewed. The
item must currently be on loan to the specified borrower; renewals
must be allowed for the item's type; and the borrower must not have
-already renewed the loan.
+already renewed the loan. $error will contain the reason the renewal can not proceed
=cut
my $dbh = C4::Context->dbh;
my $renews = 1;
my $renewokay = 0;
+ my $error;
# Look in the issues table for this item, lent to this borrower,
# and not yet returned.
if ( $renews && $renews >= $data1->{'renewals'} ) {
$renewokay = 1;
}
+ else {
+ $error="too_many";
+ }
$sth2->finish;
my ( $resfound, $resrec ) = C4::Reserves::CheckReserves($itemnumber);
if ($resfound) {
$renewokay = 0;
+ $error="on_reserve"
}
}
$sth1->finish;
- return ($renewokay);
+ return ($renewokay,$error);
}
=head2 AddRenewal
}
foreach my $confirmation ( keys %$needsconfirmation ) {
if ($confirmation eq 'RENEW_ISSUE'){
- if (!CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber})){
+ my ($renewokay,$renewerror)= CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber});
+ if (! $renewokay){
$noerror = 0;
- warn "cant renew $borrower->{borrowernumber} $self->{item}->{itemnumber}";
+ warn "cant renew $borrower->{borrowernumber} $self->{item}->{itemnumber} $renewerror";
}
}
else {
sub do_renew {
my $self = shift;
my $borrower = my $borrower = GetMember( $self->{patron}->id, 'cardnumber');
- if (CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber})){
+ my ($renewokay,$renewerror) = CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber});
+ if ($renewokay){
my $datedue = AddIssue( $borrower, $self->{item}->id, undef, 0 );
$self->{'due'} = $datedue;
$self->ok(1);
<!-- TMPL_ELSE -->
<input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
<!-- /TMPL_IF -->
+ <!-- TMPL_ELSE -->
+ <!-- TMPL_VAR NAME="can_renew_error" -->
<!-- /TMPL_IF -->
<input type="checkbox" name="all_items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" style="display: none;" />
</td>
<!-- TMPL_ELSE -->
<input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
<!-- /TMPL_IF -->
+ <!-- TMPL_ELSE -->
+ <!-- TMPL_IF EXPR="can_renew_error eq 'on_reserve'" -->
+ On Hold
+ <!-- /TMPL_IF -->
+ <!-- TMPL_IF EXPR="can_renew_error eq 'too_many'" -->
+ Too Many Renewals
+ <!-- /TMPL_IF -->
+
<!-- /TMPL_IF -->
<input type="checkbox" name="all_items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" style="display: none;" />
</td>
my $itemnumber = $query->param('item');
my $borrowernumber = $query->param("borrowernumber");
-my $status = CanBookBeRenewed( $borrowernumber, $itemnumber );
+my ($status,$error) = CanBookBeRenewed( $borrowernumber, $itemnumber );
if ( $status == 1 ) {
AddRenewal( $borrowernumber, $itemnumber );
}
$issue->{$publictype} = 1;
# check if item is renewable
- my $status = CanBookBeRenewed( $borrowernumber, $issue->{'itemnumber'} );
+ my ($status,$renewerror) = CanBookBeRenewed( $borrowernumber, $issue->{'itemnumber'} );
($issue->{'renewcount'},$issue->{'renewsallowed'},$issue->{'renewsleft'}) = GetRenewCount($borrowernumber, $issue->{'itemnumber'});
$issue->{'status'} = $status;
my $failedrenews;
foreach my $itemno (@data) {
# check status before renewing issue
- if (CanBookBeRenewed($borrowernumber,$itemno)){
+ my ($renewokay,$error) = CanBookBeRenewed($borrowernumber,$itemno);
+ if ($renewokay){
AddRenewal($borrowernumber,$itemno,$branch);
}
else {