From 9e120a90dac851bec98c5bd597e690714ffd93ad Mon Sep 17 00:00:00 2001
From: Jonathan Prykop <jonathan@freeside.biz>
Date: Wed, 11 Feb 2015 16:07:58 -0600
Subject: [PATCH] RT#30586: Discounts for ACH

---
 FS/FS/part_event/Action/pkg_discount.pm | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/FS/FS/part_event/Action/pkg_discount.pm b/FS/FS/part_event/Action/pkg_discount.pm
index 04a3a0f40..592e04410 100644
--- a/FS/FS/part_event/Action/pkg_discount.pm
+++ b/FS/FS/part_event/Action/pkg_discount.pm
@@ -3,7 +3,7 @@ package FS::part_event::Action::pkg_discount;
 use strict;
 use base qw( FS::part_event::Action );
 
-sub description { "Discount active customer packages"; }
+sub description { "Discount unsuspended customer packages (monthly recurring only)"; }
 
 sub eventtable_hashref {
   { 'cust_main' => 1 };
@@ -41,10 +41,12 @@ sub do_action {
 
   my $cust_main = $self->cust_main($object);
   my %if_pkgpart = map { $_=>1 } split(/\s*,\s*/, $self->option('if_pkgpart') );
-  my @cust_pkg = grep { $if_pkgpart{ $_->pkgpart } && $_->part_pkg->freq
+  my $allpkgs = (keys %if_pkgpart) ? 0 : 1;
+  my @cust_pkg = grep { ( $allpkgs || $if_pkgpart{ $_->pkgpart } ) 
+                          && $_->part_pkg->freq
                           #can remove after fixing discount bug with non-monthly pkgs
                           && ( $_->part_pkg->freq =~ /^\d+$/) } 
-                      $cust_main->active_pkgs;
+                      $cust_main->unsuspended_pkgs;
   return 'No qualifying packages' unless @cust_pkg;
 
   my $gotit = 0;
-- 
2.20.1