From f3bf1f3da5f82e9479ac1c39f0a5ab869e7a748c Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 18 Sep 2023 16:32:10 +0000 Subject: [PATCH] Bug 34645: always use discount, sort1, and sort2 from MarcFieldsToOrder These values are stored at the order level, not per item. This patch simply sets the order values from the values retrieved from MarcFieldsToOrder even inf MarcItemFields to order is being used for other fields To test: Setup -- Set systempreferences below MarcFieldsToOrder: price: 949$g quantity: 949$k budget_code: 949$l discount: 949$m sort1: 949$n sort2: 949$q MarcItemFieldsToOrder: homebranch: 949$a holdingbranch: 949$b itype: 949$y nonpublic_note: 949$x public_note: 949$z loc: 949$c ccode: 949$8 notforloan: 949$7 uri: 949$u copyno: 949$t price: 949$g replacementprice: 949$v itemcallnumber: 949$o quantity: 949$k budget_code: 949$l Stage the attached bib-303.marcxml file Add to basket from the staged file Note that discount and sort1 and sort2 are not populated per the Marc Apply patch, restart all Stage and add to basket again Confirm discount and sort1 and sort2 are populated correctly Signed-off-by: David Nind Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi --- acqui/addorderiso2709.pl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/acqui/addorderiso2709.pl b/acqui/addorderiso2709.pl index 250d9c2bb3..d1093518e0 100755 --- a/acqui/addorderiso2709.pl +++ b/acqui/addorderiso2709.pl @@ -576,17 +576,20 @@ sub import_biblios_list { } push @list, \%cellrecord; + # If MarcItemFieldsToOrder is not set, we use MarcFieldsToOrder to populate the order form. if ($alliteminfos == -1 || scalar(@$alliteminfos) == 0) { $cellrecord{price} = $price || ''; $cellrecord{replacementprice} = $replacementprice || ''; $cellrecord{quantity} = $quantity || ''; $cellrecord{budget_id} = $budget_id || ''; - $cellrecord{discount} = $discount || ''; - $cellrecord{sort1} = $sort1 || ''; - $cellrecord{sort2} = $sort2 || ''; } else { + # When using MarcItemFields to order we want the order to have the same quantity as total items $cellrecord{quantity} = $all_items_quantity; } + # The fields discount, sort1, and sort2 only exist at the order level, so always use MarcItemFieldsToOrder + $cellrecord{discount} = $discount || ''; + $cellrecord{sort1} = $sort1 || ''; + $cellrecord{sort2} = $sort2 || ''; } my $num_records = $batch->{'num_records'}; -- 2.39.5