From f0b882ac607667ab8fef04fda314e1c03dc20920 Mon Sep 17 00:00:00 2001
From: LMSCloudPaulD <paul.derscheid@lmscloud.de>
Date: Fri, 16 Dec 2022 09:58:15 +0100
Subject: [PATCH] Bug 32418 - Can't call method 'unblessed' on an undefined
value at cataloguing/additem.pl
Check whether result of Koha::Items->find is defined before invoking unblessed. If undef, redirect to additem op.
---
cataloguing/additem.pl | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index 4c1a015f62..84a4e67140 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -462,14 +462,24 @@ if ($op eq "additem") {
} elsif ($op eq "edititem") {
#-------------------------------------------------------------------------------
# retrieve item if exist => then, it's a modif
- $current_item = Koha::Items->find($itemnumber)->unblessed or undef;
+ if (my $item = Koha::Items->find($itemnumber)) {
+ $current_item = $item->unblessed;
+ } else {
+ $current_item = undef;
+ }
+
$nextop = $current_item ? "saveitem" : "additem";
#-------------------------------------------------------------------------------
} elsif ($op eq "dupeitem") {
#-------------------------------------------------------------------------------
# retrieve item if exist => then, it's a modif
- $current_item = Koha::Items->find($itemnumber)->unblessed or undef;
- if (!$current_item) { $nextop = "additem"; last; }
+ if (my $item = Koha::Items->find($itemnumber)) {
+ $current_item = $item->unblessed;
+ } else {
+ $current_item = undef;
+ }
+
+ if (!$current_item) { $nextop = "additem"; return; }
if (C4::Context->preference('autoBarcode') eq 'incremental') {
my ( $barcode ) = C4::Barcodes::ValueBuilder::incremental::get_barcode;
$current_item->{barcode} = $barcode;
--
2.37.1 (Apple Git-137.1)