Bug 35927: Selecting MARC framework again doesn't work when adding to basket from an external source

Like Bug 19372, selecting MARC framework currently doesn't work when adding to basket from an external source.
Strangly I can reproduce on koha-testing-docker, but we have this issue with a Ubuntu Focal install.
Looks like it comes from a bad syntaxe than needs to be replaced in any case.

Test plan:
1) Add an order to a basket from an external source
2) Select another framework than the default one on the search result
   view. Before doing 'add order' on choosen search result line.
3) Chek the framework code you will pick will be used in the created biblio record

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit b7a5cc5bee)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Fridolin Somers 2024-01-29 10:08:00 +01:00
parent 6568275bc9
commit 71b9421451

View file

@ -115,6 +115,8 @@ my $suggestionid = $input->param('suggestionid');
my $uncertainprice = $input->param('uncertainprice');
my $import_batch_id = $input->param('import_batch_id'); # if this is filled, we come from a staged file, and we will return here after saving the order !
my $from_subscriptionid = $input->param('from_subscriptionid');
my $frameworkcode = $input->param('frameworkcode') // q{};
our $breedingid = $input->param('breedingid');
my $data;
my $new = 'no';
@ -157,12 +159,10 @@ my $contract = GetContract({
contractnumber => $basket->{contractnumber}
});
#simple parameters reading (all in one :-)
our $params = $input->Vars;
my $listprice=0; # the price, that can be in MARC record if we have one
if ( $ordernumber eq '' and defined $params->{'breedingid'}){
if ( $ordernumber eq '' and defined $breedingid ){
#we want to import from the breeding reservoir (from a z3950 search)
my ($marcrecord, $encoding) = MARCfindbreeding($params->{'breedingid'});
my ($marcrecord, $encoding) = MARCfindbreeding($breedingid);
die("Could not find the selected record in the reservoir, bailing") unless $marcrecord;
# Remove all the items (952) from the imported record
@ -182,13 +182,12 @@ if ( $ordernumber eq '' and defined $params->{'breedingid'}){
#from this point: add a new record
C4::Acquisition::FillWithDefaultValues($marcrecord, {only_mandatory => 1});
my $bibitemnum;
$params->{'frameworkcode'} or $params->{'frameworkcode'} = "";
( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} );
( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $frameworkcode );
# get the price if there is one.
$listprice = GetMarcPrice($marcrecord, $marcflavour);
SetImportRecordStatus($params->{'breedingid'}, 'imported');
SetImportRecordStatus( $breedingid, 'imported' );
SetMatchedBiblionumber( $params->{breedingid}, $biblionumber );
SetMatchedBiblionumber( $breedingid, $biblionumber );
}
@ -624,7 +623,7 @@ sub Load_Duplicate {
biblionumber => $biblionumber,
basketno => $basketno,
booksellerid => $basket->{'booksellerid'},
breedingid => $params->{'breedingid'},
breedingid => $breedingid,
duplicatetitle => $duplicatetitle,
(uc(C4::Context->preference("marcflavour"))) => 1
);