[freeside-commits] branch master updated. 2ea729e55651a288bbf3826c888f430806aab04c

Mark Wells mark at 420.am
Mon Apr 7 16:19:14 PDT 2014


The branch, master has been updated
       via  2ea729e55651a288bbf3826c888f430806aab04c (commit)
      from  a172aa2d549f2c62978fa1f6b6851a68ae0f2a4e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 2ea729e55651a288bbf3826c888f430806aab04c
Author: Mark Wells <mark at freeside.biz>
Date:   Mon Apr 7 16:19:09 2014 -0700

    avoid creating Set TimeWorked transactions where new value is empty, #28459

diff --git a/FS/FS/TicketSystem.pm b/FS/FS/TicketSystem.pm
index fa54e0b..3c972d0 100644
--- a/FS/FS/TicketSystem.pm
+++ b/FS/FS/TicketSystem.pm
@@ -357,6 +357,16 @@ sub _upgrade_data {
     warn "Removed $rows dangling ticket-$table links\n" if $rows > 0;
   }
 
+  # Fix ticket transactions on the Time* fields where the NewValue (or
+  # OldValue, though this is not known to happen) is an empty string
+  foreach (qw(newvalue oldvalue)) {
+    my $rows = $dbh->do(
+      "UPDATE transactions SET $_ = '0' WHERE objecttype='RT::Ticket' AND ".
+      "field IN ('TimeWorked', 'TimeEstimated', 'TimeLeft') AND $_ = ''"
+    ) or die $dbh->errstr;
+    warn "Fixed $rows transactions with empty time values\n" if $rows > 0;
+  }
+
   return;
 }
 
diff --git a/rt/lib/RT/Interface/Web_Vendor.pm b/rt/lib/RT/Interface/Web_Vendor.pm
index e9c6346..245df12 100644
--- a/rt/lib/RT/Interface/Web_Vendor.pm
+++ b/rt/lib/RT/Interface/Web_Vendor.pm
@@ -284,6 +284,14 @@ sub ProcessTicketBasics {
         }
     }
 
+    # RT core _will_ allow Set transactions that change these 
+    # fields to empty strings, but internally change the values 
+    # to zero.  This is sloppy and causes some problems.
+    foreach my $field (qw(TimeWorked TimeEstimated TimeLeft)) {
+      $ARGSRef->{$field} =~ s/\s//g;
+      $ARGSRef->{$field} ||= 0;
+    }
+
     my @results = UpdateRecordObject(
         AttributesRef => \@attribs,
         Object        => $TicketObj,

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/TicketSystem.pm             |   10 ++++++++++
 rt/lib/RT/Interface/Web_Vendor.pm |    8 ++++++++
 2 files changed, 18 insertions(+), 0 deletions(-)




More information about the freeside-commits mailing list