summaryrefslogtreecommitdiff
path: root/FS/FS/UI
diff options
context:
space:
mode:
authorjeff <jeff>2007-12-19 21:05:37 +0000
committerjeff <jeff>2007-12-19 21:05:37 +0000
commit00aed756e1449f4d0847b1d05f96208d607b4711 (patch)
treefedefc337b3e7e0b41f2285c77c8a26f1c9c15ce /FS/FS/UI
parentb91858c22eae141b31fe0024ee2a04bdeae2f3c5 (diff)
add options for balance over/under to advanced customer report
Diffstat (limited to 'FS/FS/UI')
-rw-r--r--FS/FS/UI/Web.pm13
1 files changed, 10 insertions, 3 deletions
diff --git a/FS/FS/UI/Web.pm b/FS/FS/UI/Web.pm
index 3f786dd..6a97f96 100644
--- a/FS/FS/UI/Web.pm
+++ b/FS/FS/UI/Web.pm
@@ -5,6 +5,7 @@ use vars qw($DEBUG @ISA @EXPORT_OK $me);
use Exporter;
use FS::Conf;
use FS::Record qw(dbdef);
+use FS::cust_main; # are sql_balance and sql_date_balance in the right module?
#use vars qw(@ISA);
#use FS::UI
@@ -163,7 +164,7 @@ sub parse_lt_gt {
warn "checking for ${field}_$op field\n"
if $DEBUG;
- if ( $cgi->param($field."_$op") =~ /^\s*\$?\s*([\d\,\s]+(\.\d\d)?)\s*$/ ) {
+ if ( $cgi->param($field."_$op") =~ /^\s*\$?\s*(-?[\d\,\s]+(\.\d\d)?)\s*$/ ) {
my $num = $1;
$num =~ s/[\,\s]+//g;
@@ -223,6 +224,7 @@ sub cust_header {
'Fax number' => 'fax',
'Invoicing email(s)' => 'invoicing_list_emailonly_scalar',
'Payment Type' => 'payby',
+ 'Current Balance' => 'current_balance',
);
my %header2colormethod = (
@@ -298,9 +300,14 @@ sub cust_sql_fields {
#inefficientish, but tiny lists and only run once per page
push @fields,
grep { my $field = $_; grep { $_ eq $field } @cust_fields }
- qw( address1 address2 city state zip daytime night );
+ qw( address1 address2 city state zip daytime night fax payby );
- map "cust_main.$_", @fields;
+ my @extra_fields = ();
+ if (grep { $_ eq 'current_balance' } @cust_fields) {
+ push @extra_fields, FS::cust_main->balance_sql . " AS current_balance";
+ }
+
+ map("cust_main.$_", @fields), @extra_fields;
}
=item cust_fields OBJECT [ CUST_FIELDS_VALUE ]