# retrieve the file you want to import
my $import_batch_id = $cgiparams->{'import_batch_id'};
- my $biblios = GetImportBibliosRange($import_batch_id);
+ my $biblios = GetImportRecordsRange($import_batch_id);
for my $biblio (@$biblios){
# 1st insert the biblio, or find it through matcher
my ( $marcblob, $encoding ) = GetImportRecordMarc( $biblio->{'import_record_id'} );
SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' );
}
# 3rd add order
- my $patron = C4::Members->GetMember( borrowernumber => $loggedinuser );
+ my $patron = C4::Members::GetMember( borrowernumber => $loggedinuser );
my $branch = C4::Branch->GetBranchDetail( $patron->{branchcode} );
- my ($invoice);
# get quantity in the MARC record (1 if none)
my $quantity = GetMarcQuantity($marcrecord, C4::Context->preference('marcflavour')) || 1;
my %orderinfo = (
"biblionumber", $biblionumber, "basketno", $cgiparams->{'basketno'},
"quantity", $quantity, "branchcode", $branch,
- "booksellerinvoicenumber", $invoice,
"budget_id", $budget_id, "uncertainprice", 1,
"sort1", $cgiparams->{'sort1'},"sort2", $cgiparams->{'sort2'},
"notes", $cgiparams->{'notes'}, "budget_id", $cgiparams->{'budget_id'},
my $price = GetMarcPrice($marcrecord, C4::Context->preference('marcflavour'));
if ($price){
- $orderinfo{'listprice'} = $price;
eval {
require C4::Acquisition;
import C4::Acquisition qw/GetBasket/;
}
my $basket = GetBasket( $orderinfo{basketno} );
my $bookseller = GetBookSellerFromId( $basket->{booksellerid} );
- my $gst = $bookseller->{gstrate} || C4::Context->preference("gist") || 0;
- $orderinfo{'unitprice'} = $orderinfo{listprice} - ( $orderinfo{listprice} * ( $bookseller->{discount} / 100 ) );
- $orderinfo{'ecost'} = $orderinfo{unitprice};
+ $orderinfo{gstrate} = $bookseller->{gstrate};
+ $orderinfo{rrp} = $price;
+ $orderinfo{ecost} = $orderinfo{rrp} * ( 1 - $bookseller->{discount} / 100 );
+ $orderinfo{listprice} = $orderinfo{rrp};
+ $orderinfo{unitprice} = $orderinfo{ecost};
+ $orderinfo{total} = $orderinfo{ecost};
} else {
$orderinfo{'listprice'} = 0;
}
- $orderinfo{'rrp'} = $orderinfo{'listprice'};
# remove uncertainprice flag if we have found a price in the MARC record
$orderinfo{uncertainprice} = 0 if $orderinfo{listprice};
my @list = ();
foreach my $batch (@$batches) {
- if ($batch->{'import_status'} eq "staged") {
+ if ( $batch->{'import_status'} =~ /^staged$|^reverted$/ ) {
# check if there is at least 1 line still staged
- my $stagedList=GetImportBibliosRange($batch->{'import_batch_id'}, undef, undef, 'staged');
+ my $stagedList=GetImportRecordsRange($batch->{'import_batch_id'}, undef, undef, $batch->{import_status});
if (scalar @$stagedList) {
- my ($staged_date, $staged_hour) = split (/ /, $batch->{'upload_timestamp'});
push @list, {
import_batch_id => $batch->{'import_batch_id'},
num_biblios => $batch->{'num_biblios'},
num_items => $batch->{'num_items'},
- staged_date => $staged_date,
- staged_hour => $staged_hour,
+ staged_date => $batch->{'upload_timestamp'},
import_status => $batch->{'import_status'},
file_name => $batch->{'file_name'},
comments => $batch->{'comments'},
sub import_biblios_list {
my ($template, $import_batch_id) = @_;
my $batch = GetImportBatch($import_batch_id,'staged');
- my $biblios = GetImportBibliosRange($import_batch_id,'','','staged');
+ return () unless $batch and $batch->{import_status} =~ /^staged$|^reverted$/;
+ my $biblios = GetImportRecordsRange($import_batch_id,'','',$batch->{import_status});
my @list = ();
foreach my $biblio (@$biblios) {
'current_matcher_description' => $matcher->description());
}
}
- add_matcher_list($batch->{'matcher_id'});
+ add_matcher_list($batch->{'matcher_id'}, $template);
}
sub add_matcher_list {
- my $current_matcher_id = shift;
+ my ($current_matcher_id, $template) = @_;
my @matchers = C4::Matcher::GetMatcherList();
if (defined $current_matcher_id) {
for (my $i = 0; $i <= $#matchers; $i++) {