if $hold->capture_time ||
$hold->cancel_time ||
$hold->fulfillment_time ||
- $U->is_true($hold->frozen);
+ ($U->is_true($hold->frozen) && !$self->parent->{retarget_frozen});
$self->hold($hold);
return unless $self->get_hold_copies;
return unless $self->update_copy_maps;
- # Hopeless Date logic based on copy map
+ # We may have updated the hold copy maps for a frozen hold in
+ # the presence of retarget_frozen. We don't, however, want to
+ # actually find a current_copy (target) or perform any other
+ # actions on the hold if it's frozen.
+ if ($U->is_true($hold->frozen)) {
+ $self->editor->commit;
+ return $self->exit_targeter("Frozen hold remapped; all done");
+ }
+ # Hopeless Date logic based on copy map
$self->handle_hopeless_date;
# Confirm that we have something to work on. If we have no