X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_event%2FCondition%2Fbalance_age.pm;h=84806596a4aca4dfefa75172db50cdb90549b252;hp=ec3624a6d838a4a84be3ca9461a59a067e8fc730;hb=74e058c8a010ef6feb539248a550d0bb169c1e94;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195 diff --git a/FS/FS/part_event/Condition/balance_age.pm b/FS/FS/part_event/Condition/balance_age.pm index ec3624a6d..84806596a 100644 --- a/FS/FS/part_event/Condition/balance_age.pm +++ b/FS/FS/part_event/Condition/balance_age.pm @@ -1,9 +1,6 @@ package FS::part_event::Condition::balance_age; -require 5.006; use strict; -use Time::Local qw(timelocal_nocheck); - use base qw( FS::part_event::Condition ); sub description { 'Customer balance age'; } @@ -28,29 +25,9 @@ sub condition { my $over = $self->option('balance'); $over = 0 unless length($over); - #false laziness w/cust_bill_age - my $time = $opt{'time'}; - my $age = $self->option('age'); - $age = '0m' unless length($age); - - my ($sec,$min,$hour,$mday,$mon,$year) = (localtime($time) )[0,1,2,3,4,5]; - if ( $age =~ /^(\d+)m$/i ) { - $mon -= $1; - until ( $mon >= 0 ) { $mon += 12; $year--; } - } elsif ( $age =~ /^(\d+)y$/i ) { - $year -= $1; - } elsif ( $age =~ /^(\d+)w$/i ) { - $mday -= $1 * 7; - } elsif ( $age =~ /^(\d+)d$/i ) { - $mday -= $1; - } elsif ( $age =~ /^(\d+)h$/i ) { - $hour -= $hour; - } else { - die "unparsable age: $age"; - } - my $age_date = timelocal_nocheck($sec,$min,$hour,$mday,$mon,$year); + my $age = $self->option_age_from('age', $opt{'time'} ); - $cust_main->balance_date($age_date) > $over; + $cust_main->balance_date($age) > $over; } sub condition_sql { @@ -61,15 +38,13 @@ sub condition_sql { my $balance_sql = FS::cust_main->balance_date_sql( $age ); - "$balance_sql > $over"; + "$balance_sql > CAST( $over AS DECIMAL(10,2) )"; } sub order_sql { shift->condition_sql_option_age('age'); } -use FS::UID qw( driver_name ); - sub order_sql_weight { 10; }