bug 8215: (followup) avoid SQL syntax error in logs
authorGalen Charlton <gmc@esilibrary.com>
Tue, 21 May 2013 17:12:15 +0000 (10:12 -0700)
committerGalen Charlton <gmc@esilibrary.com>
Tue, 21 May 2013 22:51:03 +0000 (15:51 -0700)
ModItem currently will attempt to update an item
even if no field updates are specified.  This patch
avoids (harmless) error messages in the Apache
logs if an item is not actually being changed when it
is placed or taken off reserve.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
C4/CourseReserves.pm

index 12b6375..39cd3d2 100644 (file)
@@ -568,7 +568,7 @@ sub _UpdateCourseItem {
             $mod_params{$_} = $params{$_};
         }
     }
-    ModItem( \%mod_params, undef, $course_item->{'itemnumber'} );
+    ModItem( \%mod_params, undef, $course_item->{'itemnumber'} ) if %mod_params;
 
     ## Update fields that didn't have an original value, but now do
     ## We must save the original value in course_items, and also
@@ -583,7 +583,7 @@ sub _UpdateCourseItem {
         }
     }
     _ModStoredFields( 'ci_id' => $params{'ci_id'}, %mod_params_old );
-    ModItem( \%mod_params_new, undef, $course_item->{'itemnumber'} );
+    ModItem( \%mod_params_new, undef, $course_item->{'itemnumber'} ) if %mod_params_new;
 
 }
 
@@ -648,7 +648,7 @@ sub _RevertFields {
             }
         }
     }
-    ModItem( $mod_item_params, undef, $course_item->{'itemnumber'} );
+    ModItem( $mod_item_params, undef, $course_item->{'itemnumber'} ) if $mod_item_params && %$mod_item_params;
 
     my $query = "UPDATE course_items SET " . join( ',', map { "$_=NULL" } @fields_to_null ) . " WHERE ci_id = ?";
 
@@ -677,7 +677,7 @@ sub _SwapAllFields {
         }
     }
 
-    ModItem( \%course_item_fields, undef, $course_item->{'itemnumber'} );
+    ModItem( \%course_item_fields, undef, $course_item->{'itemnumber'} ) if %course_item_fields;
     _ModStoredFields( %item_fields, ci_id => $ci_id );
 }