|
Lines 4408-4413
$params:
Link Here
|
| 4408 |
sub LostItem { |
4408 |
sub LostItem { |
| 4409 |
my ( $itemnumber, $mark_lost_from, $force_mark_returned, $params ) = @_; |
4409 |
my ( $itemnumber, $mark_lost_from, $force_mark_returned, $params ) = @_; |
| 4410 |
|
4410 |
|
|
|
4411 |
my $item = Koha::Items->find($itemnumber); |
| 4412 |
|
| 4411 |
unless ($mark_lost_from) { |
4413 |
unless ($mark_lost_from) { |
| 4412 |
|
4414 |
|
| 4413 |
# Temporary check to avoid regressions |
4415 |
# Temporary check to avoid regressions |
|
Lines 4422-4441
sub LostItem {
Link Here
|
| 4422 |
$mark_returned = ( $pref =~ m|$mark_lost_from| ); |
4424 |
$mark_returned = ( $pref =~ m|$mark_lost_from| ); |
| 4423 |
} |
4425 |
} |
| 4424 |
|
4426 |
|
| 4425 |
my $dbh = C4::Context->dbh(); |
4427 |
my $issue = $item->checkout; |
| 4426 |
my $sth = $dbh->prepare( |
|
|
| 4427 |
"SELECT issues.*,items.*,biblio.title |
| 4428 |
FROM issues |
| 4429 |
JOIN items USING (itemnumber) |
| 4430 |
JOIN biblio USING (biblionumber) |
| 4431 |
WHERE issues.itemnumber=?" |
| 4432 |
); |
| 4433 |
$sth->execute($itemnumber); |
| 4434 |
my $issues = $sth->fetchrow_hashref(); |
| 4435 |
|
4428 |
|
| 4436 |
# If a borrower lost the item, add a replacement cost to the their record |
4429 |
# If a borrower lost the item, add a replacement cost to the their record |
| 4437 |
if ( my $borrowernumber = $issues->{borrowernumber} ) { |
4430 |
if ($issue) { |
| 4438 |
my $patron = Koha::Patrons->find($borrowernumber); |
4431 |
my $patron = $issue->patron; |
|
|
4432 |
my $borrowernumber = $patron->borrowernumber; |
| 4433 |
|
| 4434 |
_CalculateAndUpdateFine( |
| 4435 |
{ |
| 4436 |
issue => $issue, |
| 4437 |
item => $item->unblessed, |
| 4438 |
borrower => $patron->unblessed, |
| 4439 |
} |
| 4440 |
) if C4::Context->preference('WhenLostUpdateFine'); |
| 4439 |
|
4441 |
|
| 4440 |
my $fix = _FixOverduesOnReturn( |
4442 |
my $fix = _FixOverduesOnReturn( |
| 4441 |
$borrowernumber, $itemnumber, C4::Context->preference('WhenLostForgiveFine'), |
4443 |
$borrowernumber, $itemnumber, C4::Context->preference('WhenLostForgiveFine'), |
|
Lines 4448-4459
sub LostItem {
Link Here
|
| 4448 |
C4::Accounts::chargelostitem( |
4450 |
C4::Accounts::chargelostitem( |
| 4449 |
$borrowernumber, |
4451 |
$borrowernumber, |
| 4450 |
$itemnumber, |
4452 |
$itemnumber, |
| 4451 |
$issues->{'replacementprice'}, |
4453 |
$item->replacementprice, |
| 4452 |
sprintf( |
4454 |
sprintf( |
| 4453 |
"%s %s %s", |
4455 |
"%s %s %s", |
| 4454 |
$issues->{'title'} || q{}, |
4456 |
$item->biblio->title || q{}, |
| 4455 |
$issues->{'barcode'} || q{}, |
4457 |
$item->barcode || q{}, |
| 4456 |
$issues->{'itemcallnumber'} || q{}, |
4458 |
$item->itemcallnumber || q{}, |
| 4457 |
), |
4459 |
), |
| 4458 |
); |
4460 |
); |
| 4459 |
|
4461 |
|
|
Lines 4465-4471
sub LostItem {
Link Here
|
| 4465 |
} |
4467 |
} |
| 4466 |
|
4468 |
|
| 4467 |
# When an item is marked as lost, we should automatically cancel its outstanding transfers. |
4469 |
# When an item is marked as lost, we should automatically cancel its outstanding transfers. |
| 4468 |
my $item = Koha::Items->find($itemnumber); |
|
|
| 4469 |
my $transfers = $item->get_transfers; |
4470 |
my $transfers = $item->get_transfers; |
| 4470 |
while ( my $transfer = $transfers->next ) { |
4471 |
while ( my $transfer = $transfers->next ) { |
| 4471 |
$transfer->cancel( { reason => 'ItemLost', force => 1 } ); |
4472 |
$transfer->cancel( { reason => 'ItemLost', force => 1 } ); |
| 4472 |
- |
|
|