use C4::Members;
my $input = new CGI;
-my ($template, $loggedinuser, $cookie) = get_template_and_user({
- template_name => "acqui/addorderiso2709.tmpl",
- query => $input,
- type => "intranet",
- authnotrequired => 0,
- flagsrequired => { acquisition => 'order_manage' },
- debug => 1,
- });
+my ($template, $loggedinuser, $cookie, $userflags) = get_template_and_user({
+ template_name => "acqui/addorderiso2709.tmpl",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { acquisition => 'order_manage' },
+ debug => 1,
+});
+
my $cgiparams = $input->Vars;
my $op = $cgiparams->{'op'};
my $booksellerid = $input->param('booksellerid');
# 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};
# build budget list
my $budget_loop = [];
-$budgets = GetBudgetHierarchy( q{}, $borrower->{branchcode}, $borrower->{borrowernumber} );
+$budgets = GetBudgetHierarchy;
foreach my $r ( @{$budgets} ) {
+ next unless (CanUserUseBudget($borrower, $r, $userflags));
if ( !defined $r->{budget_amount} || $r->{budget_amount} == 0 ) {
next;
}
}
} elsif ( scalar(@$budgets) ) {
$CGIsort1 = GetAuthvalueDropbox( @$budgets[0]->{'sort1_authcat'}, '' );
-} else {
- $CGIsort1 = GetAuthvalueDropbox( '', '' );
}
-
# if CGIsort is successfully fetched, the use it
# else - failback to plain input-field
if ($CGIsort1) {
}
} elsif ( scalar(@$budgets) ) {
$CGIsort2 = GetAuthvalueDropbox( @$budgets[0]->{sort2_authcat}, '' );
-} else {
- $CGIsort2 = GetAuthvalueDropbox( '', '' );
}
-
if ($CGIsort2) {
$template->param( CGIsort2 => $CGIsort2 );
} else {
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++) {