future ticket resolve fixes, #13583
[freeside.git] / rt / lib / RT / Action / SetWillResolve.pm
1 package RT::Action::SetWillResolve;
2 use base 'RT::Action';
3
4 use strict;
5
6 sub Describe  {
7   my $self = shift;
8   return (ref $self ." will set a ticket's future resolve date to the argument.");
9 }
10
11 sub Prepare {
12     my $self = shift;
13     my $DateObj = RT::Date->new( $self->CurrentUser );
14     if ( length($self->Argument) ) {
15         $DateObj->Set(
16             Format => 'unknown',
17             Value  => $self->Argument
18         )
19     }
20     else { # special case: treat Argument => '' as "never"
21         $DateObj->Unix(-1);
22     }
23     $self->{new_value} = $DateObj->ISO;
24     # if the before and after values are string-equivalent, don't bother
25     return ($DateObj->AsString ne $self->TicketObj->WillResolveAsString);
26 }
27
28 sub Commit {
29     my $self = shift;
30     $self->TicketObj->SetWillResolve( $self->{new_value} );
31 }
32
33 RT::Base->_ImportOverlays();
34
35 1;