Bug 23363: Fix Internal Server Error when clicking on shipment cost invoice link
[srvgit] / C4 / CourseReserves.pm
index 997f725..39630b6 100644 (file)
@@ -20,7 +20,7 @@ use Modern::Perl;
 use List::MoreUtils qw(any);
 
 use C4::Context;
-use C4::Items qw(GetItem ModItem);
+use C4::Items qw(ModItem);
 use C4::Circulation qw(GetOpenIssue);
 
 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG @FIELDS);
@@ -531,11 +531,12 @@ sub _UpdateCourseItem {
       unless ($course_item);
     $ci_id = $course_item->{'ci_id'} unless ($ci_id);
 
-
-    my %mod_params;
-    foreach (@FIELDS) {
-        $mod_params{$_} = $params{$_};
-    }
+    my %mod_params =
+      map {
+        defined $params{$_} && $params{$_} ne ''
+          ? ( $_ => $params{$_} )
+          : ()
+      } @FIELDS;
 
     ModItem( \%mod_params, undef, $course_item->{'itemnumber'} );
 }
@@ -606,14 +607,14 @@ sub _SwapAllFields {
     warn "C4::CourseReserves::_SwapFields( $ci_id )" if $DEBUG;
 
     my $course_item = GetCourseItem( ci_id => $ci_id );
-    my $item = GetItem( $course_item->{'itemnumber'} );
+    my $item = Koha::Items->find($course_item->{'itemnumber'});
 
     my %course_item_fields;
     my %item_fields;
     foreach (@FIELDS) {
         if ( defined( $course_item->{$_} ) ) {
             $course_item_fields{$_} = $course_item->{$_};
-            $item_fields{$_}        = $item->{$_} || q{};
+            $item_fields{$_}        = $item->$_ || q{};
         }
     }