picklist => undef,
complete => 0,
indexed => 0,
+ queue => undef,
total => 0
};
$self->{cache} = {};
my $e = $mgr->editor;
$e->xact_begin;
- my $queue_id = $vandelay->{existing_queue};
+ my $queue;
if (my $name = $vandelay->{queue_name}) {
# first, see if a queue w/ this name already exists
# for this user. If so, use that instead.
- my $queue = $e->search_vandelay_bib_queue(
+ $queue = $e->search_vandelay_bib_queue(
{name => $name, owner => $e->requestor->id})->[0];
if ($queue) {
$queue = $e->create_vandelay_bib_queue($queue) or return $res;
}
- $queue_id = $queue->id;
- }
+ } else {
+ $queue = $e->retrieve_vandelay_queue($vandelay->{existing_queue})
+ or return undef;
+ }
+
- return $res unless $queue_id;
+ return $res unless $queue;
+ $mgr->{args}->{queue} = $queue;
# load the lineitems into the queue for merge processing
my @vqbr_ids;
my $vqbr = Fieldmapper::vandelay::queued_bib_record->new;
$vqbr->marc($li->marc);
- $vqbr->queue($queue_id);
- $vqbr->bib_source($vandelay->{bib_source});
+ $vqbr->queue($queue->id);
+ $vqbr->bib_source($vandelay->{bib_source} || undef);
$vqbr = $e->create_vandelay_queued_bib_record($vqbr) or return $res;
push(@vqbr_ids, $vqbr->id);
$mgr->add_vqbr;
$ses->kill_me;
$logger->info("acq-vl: successfully imported lineitems [@success_lis]");
- return {queue => $queue_id, li_ids => \@success_lis};
+ return {queue => $queue, li_ids => \@success_lis};
}
# returns event on error, undef on success
if (!$li->eg_bib_id and !$dry_run) {
# we encountered a lineitem that was not successfully imported.
# we cannot continue. rollback and report.
- my $queue = $e->retrieve_vandelay_queue($vl_resp->{queue});
$e->rollback;
- return OpenILS::Event->new('ACQ_LI_IMPORT_FAILED', {queue => $queue});
+ return OpenILS::Event->new('ACQ_LI_IMPORT_FAILED', {queue => $vl_resp->{queue}});
}
$li->state('on-order');