Bug 7166: Adds edit order notes when the basket is closed
[koha_gimpoz] / acqui / neworderempty.pl
index 3fbe3a4..1e33a1a 100755 (executable)
@@ -80,14 +80,14 @@ use C4::Dates;
 use C4::Bookseller  qw/ GetBookSellerFromId /;
 use C4::Acquisition;
 use C4::Suggestions;   # GetSuggestion
-use C4::Biblio;                        # GetBiblioData
+use C4::Biblio;                        # GetBiblioData GetMarcPrice
 use C4::Items; #PrepareItemRecord
 use C4::Output;
 use C4::Input;
 use C4::Koha;
 use C4::Branch;                        # GetBranches
 use C4::Members;
-use C4::Search qw/FindDuplicate BiblioAddAuthorities/;
+use C4::Search qw/FindDuplicate/;
 
 #needed for z3950 import:
 use C4::ImportBatch qw/GetImportRecordMarc SetImportRecordStatus/;
@@ -122,6 +122,13 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     }
 );
 
+my $marcflavour = C4::Context->preference('marcflavour');
+
+if(!$basketno) {
+    my $order = GetOrder($ordernumber);
+    $basketno = $order->{'basketno'};
+}
+
 my $basket = GetBasket($basketno);
 my $contract = &GetContract($basket->{contractnumber});
 
@@ -149,32 +156,13 @@ if ( $ordernumber eq '' and defined $params->{'breedingid'}){
     }
     #from this point: add a new record
         if (C4::Context->preference("BiblioAddsAuthorities")){
-            my ($countlinked,$countcreated)=BiblioAddAuthorities($marcrecord, $params->{'frameworkcode'});
+            my $headings_linked=BiblioAutoLink($marcrecord, $params->{'frameworkcode'});
         }
         my $bibitemnum;
         $params->{'frameworkcode'} or $params->{'frameworkcode'} = "";
         ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} );
         # get the price if there is one.
-        # filter by storing only the 1st number
-        # we suppose the currency is correct, as we have no possibilities to get it.
-        if ($marcrecord->subfield("345","d")) {
-            $listprice = $marcrecord->subfield("345","d");
-            if ($listprice =~ /^([\d\.,]*)/) {
-                $listprice = $1;
-                $listprice =~ s/,/\./;
-            } else {
-                $listprice = 0;
-            }
-        }
-        elsif ($marcrecord->subfield("010","d")) {
-            $listprice = $marcrecord->subfield("010","d");
-            if ($listprice =~ /^([\d\.,]*)/) {
-                $listprice = $1;
-                $listprice =~ s/,/\./;
-            } else {
-                $listprice = 0;
-            }
-        }
+        $listprice = GetMarcPrice($marcrecord, $marcflavour);
         SetImportRecordStatus($params->{'breedingid'}, 'imported');
 }
 
@@ -436,7 +424,7 @@ sub MARCfindbreeding {
             }
         }
         # fix the unimarc 100 coded field (with unicode information)
-        if (C4::Context->preference('marcflavour') eq 'UNIMARC' && $record->subfield(100,'a')) {
+        if ($marcflavour eq 'UNIMARC' && $record->subfield(100,'a')) {
             my $f100a=$record->subfield(100,'a');
             my $f100 = $record->field(100);
             my $f100temp = $f100->as_string;