View | Details | Raw Unified | Return to bug 29800
Collapse All | Expand All

(-)a/C4/Circulation.pm (-18 / +18 lines)
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
- 

Return to bug 29800