rename WebExternalAutoInfo to WebRemoteUserAutocreateInfo, #37318
[freeside.git] / rt / lib / RT / Action / ScheduledResolve.pm
1 package RT::Action::ScheduledResolve;
2
3 use strict;
4 use warnings;
5
6 use base qw(RT::Action);
7
8 =head1 DESCRIPTION
9
10 If the ticket's WillResolve date is in the past, set its status to resolved.
11
12 =cut
13
14 sub Prepare {
15     my $self = shift;
16
17     return undef if grep { $self->TicketObj->Status eq $_ } (
18       'resolved',
19       'rejected',
20       'deleted'
21     ); # don't resolve from any of these states.
22     my $time = $self->TicketObj->WillResolveObj->Unix;
23     # resolve if the WillResolve date is set, and in the past,
24     # and less than a year old
25     return ( $time > 0 and $time < time() and (time() - $time) < 31536000 );
26 }
27
28 sub Commit {
29     my $self = shift;
30
31     my $never = RT::Date->new($self->CurrentUser);
32     $never->Unix(-1);
33     $self->TicketObj->SetWillResolve($never->ISO);
34     $self->TicketObj->SetStatus('resolved');
35 }
36
37 RT::Base->_ImportOverlays();
38
39 1;