use base qw( FS::part_event::Condition );
-sub description { "Don't run this event again after it has completed sucessfully"; }
+sub description { "Don't run this event again after it has completed successfully"; }
sub implicit_flag { 10; }
}
sub condition {
- my($self, $object) = @_;
+ my($self, $object, %opt) = @_;
my $obj_pkey = $object->primary_key;
my $tablenum = $object->$obj_pkey();
-
- my @existing = qsearch( 'cust_event', {
- 'eventpart' => $self->eventpart,
- 'tablenum' => $tablenum,
- 'status' => { op=>'NOT IN', value=>"('failed','new')" },
+
+ my @existing = qsearch( {
+ 'table' => 'cust_event',
+ 'hashref' => {
+ 'eventpart' => $self->eventpart,
+ 'tablenum' => $tablenum,
+ 'status' => { op=>'!=', value=>'failed' },
+ },
+ 'extra_sql' => ( $opt{'cust_event'}->eventnum =~ /^(\d+)$/
+ ? " AND eventnum != $1 "
+ : ''
+ ),
} );
! scalar(@existing);