{hold=>$hold->id, dest_recv_time => undef})->[0]
or return $e->die_event;
+ $transit->prev_dest($transit->dest); # mark the previous destination on the transit
$transit->dest($hold->pickup_lib);
$e->update_action_hold_transit_copy($transit) or return $e->die_event;
update_hold_if_frozen($self, $e, $hold, $orig_hold);
$e->update_action_hold_request($hold) or return $e->die_event;
$e->commit;
+
+ # a change to mint-condition changes the set of potential copies, so retarget the hold;
+ if($U->is_true($hold->mint_condition) and !$U->is_true($orig_hold->mint_condition)) {
+ _reset_hold($self, $e->requestor, $hold)
+ }
+
return $hold->id;
}
/
);
+__PACKAGE__->register_method (
+ method => "hold_pull_list",
+ api_name => "open-ils.circ.hold_pull_list.retrieve.count",
+ signature => q/
+ Returns a list of holds that need to be "pulled"
+ by a given location
+ /
+);
+
sub hold_pull_list {
my( $self, $conn, $authtoken, $limit, $offset ) = @_;
$evt = $U->check_perms($reqr->id, $org, 'VIEW_HOLD');
return $evt if $evt;
- if( $self->api_name =~ /id_list/ ) {
+ if($self->api_name =~ /count/) {
+
+ my $count = $U->storagereq(
+ 'open-ils.storage.direct.action.hold_request.pull_list.current_copy_circ_lib.status_filtered.count',
+ $org, $limit, $offset );
+
+ $logger->info("Grabbing pull list for org unit $org with $count items");
+ return $count
+
+ } elsif( $self->api_name =~ /id_list/ ) {
return $U->storagereq(
'open-ils.storage.direct.action.hold_request.pull_list.id_list.current_copy_circ_lib.status_filtered.atomic',
$org, $limit, $offset );
+
} else {
return $U->storagereq(
'open-ils.storage.direct.action.hold_request.pull_list.search.current_copy_circ_lib.status_filtered.atomic',
__PACKAGE__->table('action_hold_transit_copy');
__PACKAGE__->columns(Primary => 'id');
__PACKAGE__->columns(Essential => qw/source dest persistant_transfer target_copy
- source_send_time dest_recv_time prev_hop
+ source_send_time dest_recv_time prev_hop prev_dest
copy_status hold/);
#-------------------------------------------------------------------------------
__PACKAGE__->table('action_transit_copy');
__PACKAGE__->columns(Primary => 'id');
__PACKAGE__->columns(Essential => qw/source dest persistant_transfer target_copy
- source_send_time dest_recv_time prev_hop
+ source_send_time dest_recv_time prev_hop prev_dest
copy_status/);
#-------------------------------------------------------------------------------