From 2b9f4a84d52b1672f13258cb098a57c7c164b6e9 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Fri, 14 Jun 2013 09:59:55 -0400
Subject: [PATCH] Bug 9673 - Track when items are marked as lost or withdrawn - QA Followup 3 - Clear 'on' fields when clearing statuses

---
 C4/Items.pm |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/C4/Items.pm b/C4/Items.pm
index a4eaa34..facdcbb 100644
--- a/C4/Items.pm
+++ b/C4/Items.pm
@@ -537,6 +537,7 @@ sub ModItem {
 
     $item->{onloan} = undef if $item->{itemlost};
 
+    # Only call GetItem if we need to set an "on" date field
     if ( $item->{itemlost} || $item->{wthdrawn} ) {
         my $pre_mod_item = GetItem( $item->{'itemnumber'} );
         for my $field (qw( itemlost wthdrawn )) {
@@ -553,6 +554,14 @@ sub ModItem {
             }
         }
     }
+    # If the field is defined but empty, we are removing and, 
+    # and thus need to clear out the 'on' field as well
+    if ( defined( $item->{itemlost} ) && !$item->{itemlost} ) {
+        $item->{itemlost_on} = undef;
+    }
+    if ( defined( $item->{wthdrawn} ) && !$item->{wthdrawn} ) {
+        $item->{wthdrawn_on} = undef;
+    }
 
     _set_derived_columns_for_mod($item);
     _do_column_fixes_for_mod($item);
-- 
1.7.2.5