summaryrefslogtreecommitdiff
path: root/FS/FS/part_pkg
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-07-24 01:18:35 -0700
committerIvan Kohler <ivan@freeside.biz>2013-07-24 01:18:35 -0700
commit116ae6107240a49c854de2662678abb4fbb8acab (patch)
treefc436621822ee698f6da6b040a79761c4dc69e2a /FS/FS/part_pkg
parent288a1a44dd09ebed51e0a5800624b4ed49ecdf9f (diff)
omit charging for some services in bulk price plans, RT#24053
Diffstat (limited to 'FS/FS/part_pkg')
-rw-r--r--FS/FS/part_pkg/bulk_Common.pm6
1 files changed, 6 insertions, 0 deletions
diff --git a/FS/FS/part_pkg/bulk_Common.pm b/FS/FS/part_pkg/bulk_Common.pm
index 67a683a12..26550df70 100644
--- a/FS/FS/part_pkg/bulk_Common.pm
+++ b/FS/FS/part_pkg/bulk_Common.pm
@@ -58,11 +58,17 @@ sub calc_recur {
my %n_setup = ();
my %n_recur = ();
my %part_svc_label = ();
+ my %pkg_svc = ();
my $summarize = $self->option('summarize_svcs',1);
foreach my $cust_svc ( $self->_bulk_cust_svc( $cust_pkg, $sdate ) ) {
+ my $pkg_svc = $pkg_svc{ $cust_pkg->pkgpart. '_'. $cust_svc->svcpart }
+ ||= qsearchs('pkg_svc', { 'pkgpart' => $cust_pkg->pkgpart,
+ 'svcpart' => $cust_svc->svcpart});
+ next if $pkg_svc->bulk_skip;
+
my @label = $cust_svc->label_long( $$sdate, $last_bill );
die "fatal: no label found, wtf?" unless scalar(@label); #?
my $svc_details = $label[0]. ': '. $label[1]. ': ';