[freeside-commits] branch master updated. a81ff71c918e7a82ccd6646351734ce74e8e4dd3
Ivan
ivan at 420.am
Fri Dec 12 16:49:50 PST 2014
The branch, master has been updated
via a81ff71c918e7a82ccd6646351734ce74e8e4dd3 (commit)
from a1c46091ebd0cc17bcbe19be266dc2efa9f2d92b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a81ff71c918e7a82ccd6646351734ce74e8e4dd3
Author: Ivan Kohler <ivan at freeside.biz>
Date: Fri Dec 12 16:49:49 2014 -0800
fix agent bulk billing with quantities, RT#31610
diff --git a/FS/FS/part_pkg/agent.pm b/FS/FS/part_pkg/agent.pm
index 6391fc9..0e89f42 100644
--- a/FS/FS/part_pkg/agent.pm
+++ b/FS/FS/part_pkg/agent.pm
@@ -116,6 +116,8 @@ sub calc_recur {
my $pkg_charge = 0;
+ my $quantity = $cust_pkg->quantity || 1;
+
#option to not fallback? via options above
my $pkg_setup_fee =
$part_pkg->setup_cost || $part_pkg->option('setup_fee');
@@ -126,14 +128,18 @@ sub calc_recur {
if ( $pkg_start < $last_bill ) {
$pkg_start = $last_bill;
} elsif ( $pkg_setup_fee ) {
- $pkg_charge += $pkg_setup_fee;
- $pkg_details .= $money_char. sprintf('%.2f setup, ', $pkg_setup_fee );
+ $pkg_charge += $quantity * $pkg_setup_fee;
+ $pkg_details .= $money_char.
+ sprintf('%.2f setup', $quantity * $pkg_setup_fee );
+ $pkg_details .= sprintf(" ($quantity \@ $money_char". '%.2f)',
+ $pkg_setup_fee )
+ if $quantity > 1;
+ $pkg_details .= ', ';
}
my $pkg_end = $cust_pkg->get('cancel');
$pkg_end = ( !$pkg_end || $pkg_end > $$sdate ) ? $$sdate : $pkg_end;
-
my $pkg_recur_charge = $prorate_ratio * $pkg_base_recur;
$pkg_recur_charge *= ( $pkg_end - $pkg_start )
/ ( $$sdate - $last_bill )
@@ -141,12 +147,17 @@ sub calc_recur {
my $recur_charge += $pkg_recur_charge;
- $pkg_details .= $money_char. sprintf('%.2f', $recur_charge ).
- ' ('. time2str($date_format, $pkg_start).
- ' - '. time2str($date_format, $pkg_end ). ')'
- if $recur_charge;
+ if ( $recur_charge ) {
+ $pkg_details .= $money_char.
+ sprintf('%.2f', $quantity * $recur_charge );
+ $pkg_details .= sprintf(" ($quantity \@ $money_char". '%.2f)',
+ $recur_charge )
+ if $quantity > 1;
+ $pkg_details .= ' ('. time2str($date_format, $pkg_start).
+ ' - '. time2str($date_format, $pkg_end ). ')';
+ }
- $pkg_charge += $recur_charge;
+ $pkg_charge += $quantity * $recur_charge;
push @$details, $pkg_details
if $pkg_charge;
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_pkg/agent.pm | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
More information about the freeside-commits
mailing list