X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Faddorderiso2709.pl;h=e4250515ff7967c61149c1a04cefb0d223648693;hb=20d9ed618fbe3cdcb9c04444a1f8a584b0364069;hp=8ce2ce15d5d0af1b573015b06bdbde08f6e9ca30;hpb=169015af947e52895e784375c4c654c110c7f1a9;p=koha.git diff --git a/acqui/addorderiso2709.pl b/acqui/addorderiso2709.pl index 8ce2ce15d5..e4250515ff 100755 --- a/acqui/addorderiso2709.pl +++ b/acqui/addorderiso2709.pl @@ -39,10 +39,10 @@ use C4::Koha; 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; @@ -61,7 +61,6 @@ my $op = $cgiparams->{'op'} || ''; 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, @@ -90,43 +89,17 @@ if ($op eq ""){ } 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' ); @@ -160,14 +133,14 @@ if ($op eq ""){ 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; @@ -210,7 +183,6 @@ if ($op eq ""){ } # 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 = ( @@ -233,7 +205,7 @@ if ($op eq ""){ # 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 ) { @@ -245,14 +217,14 @@ if ($op eq ""){ } } 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 { @@ -266,13 +238,14 @@ if ($op eq ""){ # 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];