diff options
author | ivan <ivan> | 2007-11-30 21:08:13 +0000 |
---|---|---|
committer | ivan <ivan> | 2007-11-30 21:08:13 +0000 |
commit | fa2259f78fe940d234bf1d76d56221f305583820 (patch) | |
tree | 9811ac5d8c37fb56b55cfb547bc4bacc85332621 /FS | |
parent | 926cb5bdf417c917aba4f258a34804a8eecccd2a (diff) |
add net vs gross amounts to invoice report; make the "net sales" links on sales/credit/receipts report & graph clickable
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_bill.pm | 67 |
1 files changed, 56 insertions, 11 deletions
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 6f83c0618..36e55154e 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -2583,7 +2583,6 @@ sub process_re_X { sub re_X { my($method, $job, %param ) = @_; -# [ 'begin', 'end', 'agentnum', 'open', 'days', 'newest_percust' ], if ( $DEBUG ) { warn "re_X $method for job $job with param:\n". join( '', map { " $_ => ". $param{$_}. "\n" } keys %param ); @@ -2611,15 +2610,12 @@ sub re_X { push @where, "cust_main.agentnum = $1"; } - my $owed = - "charged - ( SELECT COALESCE(SUM(amount),0) FROM cust_bill_pay - WHERE cust_bill_pay.invnum = cust_bill.invnum ) - - ( SELECT COALESCE(SUM(amount),0) FROM cust_credit_bill - WHERE cust_credit_bill.invnum = cust_bill.invnum )"; - - push @where, "0 != $owed" + push @where, '0 != '. FS::cust_bill->owed_sql if $param{'open'}; + push @where, '0 != '. FS::cust_bill->net_sql + if $param{'net'}; + push @where, "cust_bill._date < ". (time-86400*$param{'days'}) if $param{'days'}; @@ -2676,13 +2672,62 @@ sub re_X { =back +=head1 CLASS METHODS + +=over 4 + +=item owed_sql + +Returns an SQL fragment to retreive the amount owed (charged minus credited and paid). + +=cut + +sub owed_sql { + my $class = shift; + 'charged - '. $class->paid_sql. ' - '. $class->credited_sql; +} + +=item net_sql + +Returns an SQL fragment to retreive the net amount (charged minus credited). + +=cut + +sub net_sql { + my $class = shift; + 'charged - '. $class->credited_sql; +} + +=item paid_sql + +Returns an SQL fragment to retreive the amount paid against this invoice. + +=cut + +sub paid_sql { + #my $class = shift; + "( SELECT COALESCE(SUM(amount),0) FROM cust_bill_pay + WHERE cust_bill.invnum = cust_bill_pay.invnum )"; +} + +=item credited_sql + +Returns an SQL fragment to retreive the amount credited against this invoice. + +=cut + +sub credited_sql { + #my $class = shift; + "( SELECT COALESCE(SUM(amount),0) FROM cust_credit_bill + WHERE cust_bill.invnum = cust_credit_bill.invnum )"; +} + +=back + =head1 BUGS The delete method. -print_text formatting (and some logic :/) is in source, but needs to be -slurped in from a file. Also number of lines ($=). - =head1 SEE ALSO L<FS::Record>, L<FS::cust_main>, L<FS::cust_bill_pay>, L<FS::cust_pay>, |