Bug 15503 (QA Followup)
[koha.git] / acqui / addorderiso2709.pl
index b2c9662..18ba56e 100755 (executable)
@@ -207,8 +207,8 @@ if ($op eq ""){
         my @nonpublic_notes = $input->multi_param('nonpublic_note_' . $biblio_count);
         my @public_notes = $input->multi_param('public_note_' . $biblio_count);
         my @locs = $input->multi_param('loc_' . $biblio_count);
-        my @ccodes = $input->multi_param('ccodes_' . $biblio_count);
-        my @notforloans = $input->multi_param('notforloans_' . $biblio_count);
+        my @ccodes = $input->multi_param('ccode_' . $biblio_count);
+        my @notforloans = $input->multi_param('notforloan_' . $biblio_count);
         my @uris = $input->multi_param('uri_' . $biblio_count);
         my @copynos = $input->multi_param('copyno_' . $biblio_count);
         my @budget_codes = $input->multi_param('budget_code_' . $biblio_count);
@@ -225,6 +225,7 @@ if ($op eq ""){
                 itemnotes => $public_notes[$i],
                 location => $locs[$i],
                 ccode => $ccodes[$i],
+                itype => $itypes[$i],
                 notforloan => $notforloans[$i],
                 uri => $uris[$i],
                 copynumber => $copynos[$i],
@@ -242,7 +243,7 @@ if ($op eq ""){
             }
 
             # Create orderlines from MarcItemFieldsToOrder
-            while(my ($budget_id, $infos) = each $budget_hash) {
+            while(my ($budget_id, $infos) = each %$budget_hash) {
                 if ($budget_id) {
                     my %orderinfo = (
                         biblionumber       => $biblionumber,
@@ -286,6 +287,18 @@ if ($op eq ""){
 
                     # remove uncertainprice flag if we have found a price in the MARC record
                     $orderinfo{uncertainprice} = 0 if $orderinfo{listprice};
+
+                    %orderinfo = %{
+                        C4::Acquisition::populate_order_with_prices(
+                            {
+                                order        => \%orderinfo,
+                                booksellerid => $booksellerid,
+                                ordering     => 1,
+                                receiving    => 1,
+                            }
+                        )
+                    };
+
                     my $order = Koha::Acquisition::Order->new( \%orderinfo )->insert;
                 }
             }
@@ -378,7 +391,7 @@ if ($op eq ""){
             for (my $qtyloop=1;$qtyloop <= $c_quantity;$qtyloop++) {
                 my ( $biblionumber, $bibitemnum, $itemnumber ) = AddItemFromMarc( $record, $biblionumber );
                 $order->add_item( $itemnumber );
-           }
+                }
             } else {
                 SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' );
             }
@@ -466,8 +479,9 @@ sub import_biblios_list {
     my @list = ();
     my $item_error = 0;
 
-    my $ccodes    = GetKohaAuthorisedValues("items.ccode");
-    my $locations = GetKohaAuthorisedValues("items.location");
+    my $ccodes = { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.ccode' } ) };
+    my $locations = { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.location' } ) };
+    my $notforloans = { map { $_->{authorised_value} => $_->{lib} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.notforloan' } ) };
     # location list
     my @locations;
     foreach (sort keys %$locations) {
@@ -477,7 +491,10 @@ sub import_biblios_list {
     foreach (sort {$ccodes->{$a} cmp $ccodes->{$b}} keys %$ccodes) {
         push @ccodes, { code => $_, description => $ccodes->{$_} };
     }
-
+    my @notforloans;
+    foreach (sort {$notforloans->{$a} cmp $notforloans->{$b}} keys %$notforloans) {
+        push @notforloans, { code => $_, description => $notforloans->{$_} };
+    }
 
     my $biblio_count = 0;
     foreach my $biblio (@$biblios) {
@@ -606,6 +623,7 @@ sub import_biblios_list {
                         locationloop => \@locations,
                         itypeloop => \@itypes,
                         ccodeloop => \@ccodes,
+                        notforloanloop => \@notforloans,
                     );
     batch_info($template, $batch);
 }