X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FBilling_Discount.pm;h=ec2bf077eaa93eddf77afb9fd90288511f59420f;hb=4171d4440a6bf042f342095f13439a5f9d27487d;hp=d437740e3612d979b63cc35d07db597715b6712a;hpb=d4b8e45c3589f3c6489442798f5fba439d5a29c9;p=freeside.git diff --git a/FS/FS/cust_main/Billing_Discount.pm b/FS/FS/cust_main/Billing_Discount.pm index d437740e3..ec2bf077e 100644 --- a/FS/FS/cust_main/Billing_Discount.pm +++ b/FS/FS/cust_main/Billing_Discount.pm @@ -47,7 +47,7 @@ sub _discount_pkgs_and_bill { push @where, "NOT EXISTS ( SELECT 1 FROM cust_bill_pkg_discount - WHERE cust_bill_pkg.billpkgnum = cust_bill_pkg_discount.billpkgnu: + WHERE cust_bill_pkg.billpkgnum = cust_bill_pkg_discount.billpkgnum )"; my $extra_sql = 'WHERE '. join(' AND ', @where); @@ -92,8 +92,11 @@ sub discount_terms { my @discount_pkgs = $self->_discount_pkgs_and_bill; shift @discount_pkgs; #discard bill; - - map { $terms{$_->months} = 1 } + + # convert @discount_pkgs (the list of packages that have available discounts) + # to a list of distinct term lengths in months, and strip any decimal places + # from the number of months, not that it should have any + map { $terms{sprintf('%.0f', $_->months)} = 1 } grep { $_->months && $_->months > 1 } map { $_->discount } map { $_->part_pkg->part_pkg_discount } @@ -110,6 +113,9 @@ by prepaying the most recent invoice for MONTHS. =cut +# XXX this should work by creating a quotation; then we can finally retire +# the "no_commit" option, which doesn't work with modern tax calculation + sub discount_term_values { my $self = shift; my $term = shift;