summaryrefslogtreecommitdiff
path: root/FS/FS/part_pkg.pm
diff options
context:
space:
mode:
authorivan <ivan>2003-07-02 12:56:04 +0000
committerivan <ivan>2003-07-02 12:56:04 +0000
commit035d0767d78b76853a8804a67325de10165df220 (patch)
treeaa55650085c87db4feebd7e1dae6c6426dffcabf /FS/FS/part_pkg.pm
parent4f4ba96481821fb7e9c25e7258737d4a0de7c26b (diff)
relaxed "first package" restrictions; will find any appropriate service with
quantity 1
Diffstat (limited to 'FS/FS/part_pkg.pm')
-rw-r--r--FS/FS/part_pkg.pm12
1 files changed, 7 insertions, 5 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index 60b0e01..6571c52 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