diff options
author | ivan <ivan> | 2009-07-09 21:05:54 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-07-09 21:05:54 +0000 |
commit | 2ab9eb8640221cb01b06a818651cb5797431a146 (patch) | |
tree | 1ce4fd83331080c3bc53903c7bf7cc1683ad800d /FS | |
parent | 9b5e892a9c7c56f77a941e8243e284226be5e833 (diff) |
unapplied payments report, RT#4861
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_main.pm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index a1b891226..286d3332a 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -7519,6 +7519,32 @@ sub balance_date_sql { } +=item unapplied_payments_date_sql START_TIME [ END_TIME ] + +Returns an SQL fragment to retreive the total unapplied payments for this +customer, only considering invoices with date earlier than START_TIME, and +optionally not later than END_TIME. + +Times are specified as SQL fragments or numeric +UNIX timestamps; see L<perlfunc/"time">). Also see L<Time::Local> and +L<Date::Parse> for conversion functions. The empty string can be passed +to disable that time constraint completely. + +Available options are: + +=cut + +sub unapplied_payments_date_sql { + my( $class, $start, $end, ) = @_; + + my $unapp_pay = FS::cust_pay->unapplied_sql; + + my $pay_where = $class->_money_table_where( 'cust_pay', $start, $end, + 'unapplied_date'=>1 ); + + " ( SELECT COALESCE(SUM($unapp_pay), 0) FROM cust_pay $pay_where ) "; +} + =item _money_table_where TABLE START_TIME [ END_TIME [ OPTION => VALUE ... ] ] Helper method for balance_date_sql; name (and usage) subject to change |