X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FBilling_Discount.pm;h=117bf311a3614e0e461ffcabcd751452b7c0c5fc;hb=536c3720cb3820d7806d2e672463b5b3d06be078;hp=9dda389f6a88f6fd3f82488ded9ca4bdf08a820d;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984;p=freeside.git diff --git a/FS/FS/cust_main/Billing_Discount.pm b/FS/FS/cust_main/Billing_Discount.pm index 9dda389f6..117bf311a 100644 --- a/FS/FS/cust_main/Billing_Discount.pm +++ b/FS/FS/cust_main/Billing_Discount.pm @@ -42,11 +42,13 @@ sub _discount_pkgs_and_bill { push @where, "part_pkg.freq = '1'"; push @where, "(cust_pkg.cancel IS NULL OR cust_pkg.cancel = 0)"; push @where, "(cust_pkg.susp IS NULL OR cust_pkg.susp = 0)"; - push @where, "0<(SELECT count(*) FROM part_pkg_discount - WHERE part_pkg.pkgpart = part_pkg_discount.pkgpart)"; + push @where, "EXISTS( SELECT 1 FROM part_pkg_discount + WHERE part_pkg.pkgpart = part_pkg_discount.pkgpart )"; push @where, - "0=(SELECT count(*) FROM cust_bill_pkg_discount - WHERE cust_bill_pkg.billpkgnum = cust_bill_pkg_discount.billpkgnum)"; + "NOT EXISTS ( + SELECT 1 FROM cust_bill_pkg_discount + WHERE cust_bill_pkg.billpkgnum = cust_bill_pkg_discount.billpkgnum + )"; my $extra_sql = 'WHERE '. join(' AND ', @where); @@ -108,6 +110,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;