$e, $copy_id,
perm => 'SET_CIRC_LOST',
status => OILS_COPY_STATUS_LOST,
- alt_status => 16, #Long Overdue,
ous_proc_fee => OILS_SETTING_LOST_PROCESSING_FEE,
ous_void_od => OILS_SETTING_VOID_OVERDUE_ON_LOST,
bill_type => 3,
return $class->set_item_lost_or_lod(
$e, $copy_id,
perm => 'SET_CIRC_LONG_OVERDUE',
- status => 16, # Long Overdue
- alt_status => OILS_COPY_STATUS_LOST,
+ status => OILS_COPY_STATUS_LONG_OVERDUE,
ous_proc_fee => 'circ.longoverdue_materials_processing_fee',
ous_void_od => 'circ.void_overdue_on_longoverdue',
bill_type => 10,
$e->allowed($args{perm}, $circ->circ_lib) or return $e->die_event;
return $e->die_event(OpenILS::Event->new($args{event}))
- if ($copy->status == $args{status} || $copy->status == $args{alt_status});
+ if ($copy->status == $args{status});
# ---------------------------------------------------------------------
# fetch the related org settings
$copy->edit_date('now');
$e->update_asset_copy($copy) or return $e->die_event;
+ # ---------------------------------------------------------------------
+ # we only figure fines once for lost/long-overdue events on the same
+ # circulation
+ my $stop_fines = $circ->stop_fines || '';
+ if ($stop_fines !~ /^(LOST|LONGOVERDUE)$/) {
my $price = $U->get_copy_price($e, $copy, $copy->call_number);
if( $price > 0 ) {
my $evt = OpenILS::Application::Circ::CircCommon->reopen_xact($e, $circ->id);
return $evt if $evt;
+ }
my $ses = OpenSRF::AppSession->create('open-ils.trigger');
$ses->request(