relaxed "first package" restrictions; will find any appropriate service with
authorivan <ivan>
Wed, 2 Jul 2003 12:56:04 +0000 (12:56 +0000)
committerivan <ivan>
Wed, 2 Jul 2003 12:56:04 +0000 (12:56 +0000)
quantity 1

FS/FS/part_pkg.pm
fs_signup/fs_signup_server

index 60b0e01..6571c52 100644 (file)
@@ -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
index 36af40a..d6eb4a8 100755 (executable)
@@ -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,