force
old_circ
permit_override
+ pending_checkouts
/;
$$args{fetch_patron_by_circ_copy} = 1;
$$args{fetch_patron_circ_info} = 1 unless $self->is_checkin;
+ if( my $pco = $self->pending_checkouts ) {
+ $logger->info("circulator: we were given a pending checkouts number of $pco");
+ $$args{patronItemsOut} = $pco;
+ }
+
# This fetches most of the objects we need
$self->script_runner(
OpenILS::Application::Circ::ScriptBuilder->build($args));
unless( $self->editor->allowed('VIEW_PERMIT_CHECKOUT') );
}
-
$self->check_captured_holds();
$self->do_copy_checks();
return if $self->bail_out;
$self->handle_checkout_holds();
return if $self->bail_out;
+
# ------------------------------------------------------------------------------
# Update the patron penalty info in the DB
# ------------------------------------------------------------------------------
- $U->update_patron_penalties(
- authtoken => $self->editor->authtoken,
- patron => $self->patron,
- background => 1,
- );
+ if( $self->permit_override ) {
+ $U->update_patron_penalties(
+ authtoken => $self->editor->authtoken,
+ patron => $self->patron,
+ background => 1,
+ );
+ }
my $record = $U->record_to_mvr($self->title) unless $self->is_precat;
$self->push_events(
OpenILS::Application::Actor::_checked_out(1, $e, $patron->id);
$ctx->{patronOverdue} = $circ_counts->{overdue} || 0;
- $ctx->{patronItemsOut} = $ctx->{patronOverdue} + $circ_counts->{out};
+ my $out = $ctx->{patronOverdue} + $circ_counts->{out};
+
+ $ctx->{patronItemsOut} = $out
+ unless( $ctx->{patronItemsOut} and $ctx->{patronItemsOut} > $out );
+
$logger->debug("script_builder: patron overdue count is " . $ctx->{patronOverdue});
}