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

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

Return to bug 29800