Bug 13321: Rename variables
[koha.git] / acqui / addorderiso2709.pl
index 8ce2ce1..e425051 100755 (executable)
@@ -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];