&GetOpenIssue
&AnonymiseIssueHistory
&CheckIfIssuedToPatron
+ &IsItemIssued
);
# subs to deal with returns
$data->{'borrower'} = $data2->{'borrowernumber'};
}
else {
- $data->{'date_due'} = ($data->{'wthdrawn'} eq '1') ? 'Cancelled' : 'Available';
+ $data->{'date_due'} = ($data->{'withdrawn'} eq '1') ? 'Cancelled' : 'Available';
}
}
}
}
- if ( $item->{'wthdrawn'} && $item->{'wthdrawn'} > 0 )
+ if ( $item->{'withdrawn'} && $item->{'withdrawn'} > 0 )
{
$issuingimpossible{WTHDRAWN} = 1;
}
this book, you are not allowed to return it. The value is the code for
the book's home branch.
-=item C<wthdrawn>
+=item C<withdrawn>
This book has been withdrawn/cancelled. The value should be ignored.
return ( $doreturn, $messages, $issue, $borrower );
}
- if ( $item->{'wthdrawn'} ) { # book has been cancelled
- $messages->{'wthdrawn'} = 1;
+ if ( $item->{'withdrawn'} ) { # book has been cancelled
+ $messages->{'withdrawn'} = 1;
$doreturn = 0 if C4::Context->preference("BlockReturnOfWithdrawnItems");
}
# find reserves.....
# if we don't have a reserve with the status W, we launch the Checkreserves routine
my ($resfound, $resrec);
- ($resfound, $resrec, undef) = C4::Reserves::CheckReserves( $item->{'itemnumber'} ) unless ( $item->{'wthdrawn'} );
+ my $lookahead= C4::Context->preference('ConfirmFutureHolds'); #number of days to look for future holds
+ ($resfound, $resrec, undef) = C4::Reserves::CheckReserves( $item->{'itemnumber'}, undef, $lookahead ) unless ( $item->{'withdrawn'} );
if ($resfound) {
$resrec->{'ResFound'} = $resfound;
$messages->{'ResFound'} = $resrec;
=head2 DeleteBranchTransferLimits
-DeleteBranchTransferLimits($frombranch);
+ my $result = DeleteBranchTransferLimits($frombranch);
-Deletes all the branch transfer limits for one branch
+Deletes all the library transfer limits for one library. Returns the
+number of limits deleted, 0e0 if no limits were deleted, or undef if
+no arguments are supplied.
=cut
sub DeleteBranchTransferLimits {
my $branch = shift;
+ return unless defined $branch;
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare("DELETE FROM branch_transfer_limits WHERE fromBranch = ?");
- $sth->execute($branch);
+ return $sth->execute($branch);
}
sub ReturnLostItem{
sub LostItem{
- my ($itemnumber, $mark_returned, $charge_fee) = @_;
+ my ($itemnumber, $mark_returned) = @_;
my $dbh = C4::Context->dbh();
my $sth=$dbh->prepare("SELECT issues.*,items.*,biblio.title
my $issues=$sth->fetchrow_hashref();
$sth->finish;
- # if a borrower lost the item, add a replacement cost to the their record
+ # If a borrower lost the item, add a replacement cost to the their record
if ( my $borrowernumber = $issues->{borrowernumber} ){
my $borrower = C4::Members::GetMemberDetails( $borrowernumber );
- C4::Accounts::chargelostitem($borrowernumber, $itemnumber, $issues->{'replacementprice'}, "Lost Item $issues->{'title'} $issues->{'barcode'}")
- if $charge_fee;
- #FIXME : Should probably have a way to distinguish this from an item that really was returned.
- #warn " $issues->{'borrowernumber'} / $itemnumber ";
+ if (C4::Context->preference('WhenLostForgiveFine')){
+ my $fix = _FixOverduesOnReturn($borrowernumber, $itemnumber, 1, 0); # 1, 0 = exemptfine, no-dropbox
+ defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $itemnumber...) failed!"; # zero is OK, check defined
+ }
+ if (C4::Context->preference('WhenLostChargeReplacementFee')){
+ C4::Accounts::chargelostitem($borrowernumber, $itemnumber, $issues->{'replacementprice'}, "Lost Item $issues->{'title'} $issues->{'barcode'}");
+ #FIXME : Should probably have a way to distinguish this from an item that really was returned.
+ #warn " $issues->{'borrowernumber'} / $itemnumber ";
+ }
+
MarkIssueReturned($borrowernumber,$itemnumber,undef,undef,$borrower->{'privacy'}) if $mark_returned;
}
}
return;
}
+=head2 IsItemIssued
+
+ IsItemIssued( $itemnumber )
+
+ Return 1 if the item is on loan, otherwise return 0
+
+=cut
+
+sub IsItemIssued {
+ my $itemnumber = shift;
+ my $dbh = C4::Context->dbh;
+ my $sth = $dbh->prepare(q{
+ SELECT COUNT(*)
+ FROM issues
+ WHERE itemnumber = ?
+ });
+ $sth->execute($itemnumber);
+ return $sth->fetchrow;
+}
1;