- my $svcdb = shift;
-
- if ($self->def_svcpart) {
- if ((not $svcdb) or qsearchs('part_svc', { svcpart => $self->def_svcpart,
- svcdb => $svcdb })) {
- return $self->def_svcpart;
- }
- }
-
- 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;