summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/part_pkg.pm12
-rwxr-xr-xfs_signup/fs_signup_server2
2 files changed, 8 insertions, 6 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index 60b0e01f9..6571c529b 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -267,12 +267,14 @@ SVCDB is specified and does not match the svcdb of the service definition,
sub svcpart {
my $self = shift;
- my $svcdb = shift;
- my @pkg_svc = $self->pkg_svc;
- return '' if scalar(@pkg_svc) != 1
- || $pkg_svc[0]->quantity != 1
- || ( $svcdb && $pkg_svc[0]->part_svc->svcdb ne $svcdb );
+ my $svcdb = scalar(@_) ? shift : '';
+ my @pkg_svc = grep {
+ $_->quantity == 1
+ && ( $svcdb eq $_->part_svc->svcdb || !$svcdb )
+ } $self->pkg_svc;
+ return '' if scalar(@pkg_svc) != 1;
$pkg_svc[0]->svcpart;
+
}
=item payby
diff --git a/fs_signup/fs_signup_server b/fs_signup/fs_signup_server
index 36af40a57..d6eb4a8d5 100755
--- a/fs_signup/fs_signup_server
+++ b/fs_signup/fs_signup_server
@@ -162,7 +162,7 @@ while (1) {
my $part_pkg =
qsearchs( 'part_pkg', { 'pkgpart' => $pkgpart } )
or $error ||= "WARNING: unknown pkgpart: $pkgpart";
- my $svcpart = $part_pkg->svcpart unless $error;
+ my $svcpart = $part_pkg->svcpart('svc_acct') unless $error;
my $cust_pkg = new FS::cust_pkg ( {
#later#'custnum' => $custnum,