set default WillResolve dates on all tickets, #23309
authorMark Wells <mark@freeside.biz>
Thu, 15 Aug 2013 22:33:41 +0000 (15:33 -0700)
committerMark Wells <mark@freeside.biz>
Thu, 15 Aug 2013 22:33:41 +0000 (15:33 -0700)
FS/FS/TicketSystem.pm
rt/lib/RT/Ticket.pm

index c1c69fa..3aeadb3 100644 (file)
@@ -342,6 +342,11 @@ sub _upgrade_data {
     or die $dbh->errstr;
   $cve_2013_3373_sth->execute or die $cve_2013_3373_sth->errstr;
 
+  # fix null WillResolve fields to avoid spurious transactions the 
+  # first time they get updated
+  my $fix_null_sql = "UPDATE Tickets SET WillResolve = '1970-01-01 00:00:00' WHERE WillResolve IS NULL";
+  $dbh->do($fix_null_sql) or die $dbh->errstr;
+
   return;
 }
 
index 4da1d48..6165378 100755 (executable)
@@ -255,6 +255,7 @@ sub Create {
         Starts             => undef,
         Started            => undef,
         Resolved           => undef,
+        WillResolve        => undef,
         MIMEObj            => undef,
         _RecordTransaction => 1,
         DryRun             => 0,
@@ -357,6 +358,11 @@ sub Create {
         $Started->Set( Format => 'ISO', Value => $args{'Started'} );
     }
 
+    my $WillResolve = RT::Date->new($self->CurrentUser );
+    if ( defined $args{'WillResolve'} ) {
+        $WillResolve->Set( Format => 'ISO', Value => $args{'WillResolve'} );
+    }
+
     # If the status is not an initial status, set the started date
     elsif ( !$cycle->IsInitial($args{'Status'}) ) {
         $Started->SetToNow;
@@ -483,6 +489,7 @@ sub Create {
         Starts          => $Starts->ISO,
         Started         => $Started->ISO,
         Resolved        => $Resolved->ISO,
+        WillResolve     => $WillResolve->ISO,
         Due             => $Due->ISO
     );