borrowernumber => $patron->borrowernumber,
ccode => $item_object->ccode,
categorycode => $patron->categorycode,
+ location => $item_object->location,
}
);
ModDateLastSeen( $item_object->itemnumber ); # FIXME Move to Koha::Item
$validTransfer = 1 if $transfer->reason eq 'Reserve';
}
else {
- $messages->{'WasTransfered'} = $transfer->tobranch;
$messages->{'TransferTrigger'} = $transfer->reason;
+ if ( $transfer->frombranch eq $branch ) {
+ $transfer->transit;
+ $messages->{'WasTransfered'} = $transfer->tobranch;
+ }
+ else {
+ $messages->{'WrongTransfer'} = $transfer->tobranch;
+ $messages->{'WrongTransferItem'} = $item->itemnumber;
+ }
}
}
}
}
}
+ # There is an item level hold on this item, no other item can fill the hold
+ return ( 0, "on_reserve" )
+ if ( $item->current_holds->search( { non_priority => 0 } )->count );
+
my $fillable_holds = Koha::Holds->search(
{
biblionumber => $item->biblionumber,
$renews = ( $item_object->renewals || 0 ) + 1;
$item_object->renewals($renews);
$item_object->onloan($datedue);
- $item_object->store({ log_action => 0 });
+ # Don't index as we are in a transaction
+ $item_object->store({ log_action => 0, skip_record_index => 1 });
# Charge a new rental fee, if applicable
my ( $charge, $type ) = GetIssuingCharges( $itemnumber, $borrowernumber );
# Add renewal record
my $renewal = Koha::Checkouts::Renewal->new(
{
- checkout_id => $issue->issue_id,
- renewer_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : undef,
- seen => $seen,
- interface => C4::Context->interface,
- renewal_type => $renewal_type
+ checkout_id => $issue->issue_id,
+ interface => C4::Context->interface,
+ renewal_type => $renewal_type,
+ renewer_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : undef,
+ seen => $seen,
}
)->store();
}
});
});
+ # We index now, after the transaction is committed
+ my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX });
+ $indexer->index_records( $item_object->biblionumber, "specialUpdate", "biblioserver" );
return $datedue;
}