use C4::Budgets;
use C4::Acquisition;
use C4::Suggestions; # GetSuggestion
-use C4::Branch; # GetBranches
use C4::Members;
use Koha::Number::Price;
+use Koha::Acquisition::Currencies;
use Koha::Acquisition::Order;
use Koha::Acquisition::Bookseller;
my $booksellerid = $input->param('booksellerid');
my $allmatch = $input->param('allmatch');
my $bookseller = Koha::Acquisition::Bookseller->fetch({ id => $booksellerid });
-my $data;
$template->param(scriptname => "/cgi-bin/koha/acqui/addorderiso2709.pl",
booksellerid => $booksellerid,
} elsif ($op eq "batch_details"){
#display lines inside the selected batch
# get currencies (for change rates calcs if needed)
- my $active_currency = GetCurrency();
- my $default_currency;
- if (! $data->{currency} ) { # New order no currency set
- if ( $bookseller->{listprice} ) {
- $default_currency = $bookseller->{listprice};
- }
- else {
- $default_currency = $active_currency->{currency};
- }
- }
- my @rates = GetCurrencies();
-
- # ## @rates
-
- my @loop_currency = ();
- for my $curr ( @rates ) {
- my $selected;
- if ($data->{currency} ) {
- $selected = $curr->{currency} eq $data->{currency};
- }
- else {
- $selected = $curr->{currency} eq $default_currency;
- }
- push @loop_currency, {
- currcode => $curr->{currency},
- rate => $curr->{rate},
- selected => $selected,
- }
- }
+ my @currencies = Koha::Acquisition::Currencies->search;
$template->param("batch_details" => 1,
"basketno" => $cgiparams->{'basketno'},
- loop_currencies => \@loop_currency,
+ currencies => \@currencies,
+ bookseller => $bookseller,
"allmatch" => $allmatch,
);
import_biblios_list($template, $cgiparams->{'import_batch_id'});
- if ( C4::Context->preference('AcqCreateItem') eq 'ordering' ) {
+ my $basket = GetBasket($cgiparams->{basketno});
+ if ( C4::Context->preference('AcqCreateItem') eq 'ordering' && !$basket->{is_standing} ) {
# prepare empty item form
my $cell = PrepareItemrecordDisplay( '', '', '', 'ACQ' );
my $biblios = GetImportRecordsRange($import_batch_id);
my $duplinbatch;
my $imported = 0;
- my @import_record_id_selected = $input->param("import_record_id");
- my @quantities = $input->param('quantity');
- my @prices = $input->param('price');
- my @budgets_id = $input->param('budget_id');
- my @discount = $input->param('discount');
- my @sort1 = $input->param('sort1');
- my @sort2 = $input->param('sort2');
- my $cur = GetCurrency();
+ my @import_record_id_selected = $input->multi_param("import_record_id");
+ my @quantities = $input->multi_param('quantity');
+ my @prices = $input->multi_param('price');
+ my @budgets_id = $input->multi_param('budget_id');
+ my @discount = $input->multi_param('discount');
+ my @sort1 = $input->multi_param('sort1');
+ my @sort2 = $input->multi_param('sort2');
+ my $active_currency = Koha::Acquisition::Currencies->get_active;
for my $biblio (@$biblios){
# Check if this import_record_id was selected
next if not grep { $_ eq $$biblio{import_record_id} } @import_record_id_selected;
}
# 3rd add order
my $patron = C4::Members::GetMember( borrowernumber => $loggedinuser );
- my $branch = C4::Branch->GetBranchDetail( $patron->{branchcode} );
# get quantity in the MARC record (1 if none)
my $quantity = GetMarcQuantity($marcrecord, C4::Context->preference('marcflavour')) || 1;
my %orderinfo = (
# in this case, the price will be x100 when unformatted ! Replace the . by a , to get a proper price calculation
$price =~ s/\./,/ if C4::Context->preference("CurrencyFormat") eq "FR";
$price = Koha::Number::Price->new($price)->unformat;
- $orderinfo{gstrate} = $bookseller->{gstrate};
+ $orderinfo{tax_rate} = $bookseller->{tax_rate};
my $c = $c_discount ? $c_discount : $bookseller->{discount} / 100;
if ( $bookseller->{listincgst} ) {
if ( $c_discount ) {
}
} else {
if ( $c_discount ) {
- $orderinfo{ecost} = $price / ( 1 + $orderinfo{gstrate} );
+ $orderinfo{ecost} = $price / ( 1 + $orderinfo{tax_rate} );
$orderinfo{rrp} = $orderinfo{ecost} / ( 1 - $c );
} else {
- $orderinfo{rrp} = $price / ( 1 + $orderinfo{gstrate} );
+ $orderinfo{rrp} = $price / ( 1 + $orderinfo{tax_rate} );
$orderinfo{ecost} = $orderinfo{rrp} * ( 1 - $c );
}
}
- $orderinfo{listprice} = $orderinfo{rrp} / $cur->{rate};
+ $orderinfo{listprice} = $orderinfo{rrp} / $active_currency->rate;
$orderinfo{unitprice} = $orderinfo{ecost};
$orderinfo{total} = $orderinfo{ecost} * $c_quantity;
} else {
# 4th, add items if applicable
# parse the item sent by the form, and create an item just for the import_record_id we are dealing with
# this is not optimised, but it's working !
- if ( C4::Context->preference('AcqCreateItem') eq 'ordering' ) {
- my @tags = $input->param('tag');
- my @subfields = $input->param('subfield');
- my @field_values = $input->param('field_value');
- my @serials = $input->param('serial');
- my @ind_tag = $input->param('ind_tag');
- my @indicator = $input->param('indicator');
+ my $basket = GetBasket($cgiparams->{basketno});
+ if ( C4::Context->preference('AcqCreateItem') eq 'ordering' && !$basket->{is_standing} ) {
+ my @tags = $input->multi_param('tag');
+ my @subfields = $input->multi_param('subfield');
+ my @field_values = $input->multi_param('field_value');
+ my @serials = $input->multi_param('serial');
+ my @ind_tag = $input->multi_param('ind_tag');
+ my @indicator = $input->multi_param('indicator');
my $item;
push @{ $item->{tags} }, $tags[0];
push @{ $item->{subfields} }, $subfields[0];