Bug 29243: Correct call when adding items from staged records
authorNick Clemens <nick@bywatersolutions.com>
Thu, 14 Oct 2021 11:30:21 +0000 (11:30 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 18 Oct 2021 09:28:41 +0000 (11:28 +0200)
To test:
1 - Populate system preference  NewItemsDefaultLocation
2 - Stage a file of marc records
3 - Create an acquisitions basket with 'AcqCreateItems' set to 'ordering'
4 - Attempt to add to basket from your staged file
5 - You get a 500 error, and in the logs:
    Can't use string ("") as a HASH ref while "strict refs" in use at /usr/share/koha/lib/C4/Items.pm line 1605.
6 - Apply patch
7 - Repeat #4
8 - Success!

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
C4/Items.pm
acqui/addorderiso2709.pl

index 13c7f57..ce28557 100644 (file)
@@ -1525,10 +1525,12 @@ sub _find_value {
 
 =head2 PrepareItemrecordDisplay
 
-  PrepareItemrecordDisplay($itemrecord,$bibnum,$itemumber,$frameworkcode);
+  PrepareItemrecordDisplay($bibnum,$itemumber,$defaultvalues,$frameworkcode);
 
 Returns a hash with all the fields for Display a given item data in a template
 
+$defaultvalues should either contain a hashref of values for the new item, or be undefined.
+
 The $frameworkcode returns the item for the given frameworkcode, ONLY if bibnum is not provided
 
 =cut
index fd38741..a916be7 100755 (executable)
@@ -108,11 +108,11 @@ if ($op eq ""){
     import_biblios_list($template, $cgiparams->{'import_batch_id'});
     if ( $basket->effective_create_items eq 'ordering' && !$basket->is_standing ) {
         # prepare empty item form
-        my $cell = PrepareItemrecordDisplay( '', '', '', 'ACQ' );
+        my $cell = PrepareItemrecordDisplay( '', '', undef, 'ACQ' );
 
         #     warn "==> ".Data::Dumper::Dumper($cell);
         unless ($cell) {
-            $cell = PrepareItemrecordDisplay( '', '', '', '' );
+            $cell = PrepareItemrecordDisplay( '', '', undef, '' );
             $template->param( 'NoACQframework' => 1 );
         }
         my @itemloop;