check_and_rebuild_fuzzyfiles();
foreach my $field ( keys %$fuzzy ) {
+
+ my $all = $self->all_X($field);
+ next unless scalar(@$all);
+
my %match = ();
- $match{$_}=1 foreach ( amatch( $fuzzy->{$field},
- ['i'],
- @{ $self->all_X($field) }
- )
- );
+ $match{$_}=1 foreach ( amatch( $fuzzy->{$field}, ['i'], @$all ) );
my @fcust = ();
foreach ( keys %match ) {
my @svc_acct = ();
if ( $svc_acct{'username'} ) {
- $svc_acct{svcpart} = $cust_pkg->part_pkg->svcpart( 'svc_acct' );
+ my $part_pkg = $cust_pkg->part_pkg;
+ unless ( $part_pkg ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "unknown pkgnum ". $cust_pkg{'pkgpart'};
+ }
+ $svc_acct{svcpart} = $part_pkg->svcpart( 'svc_acct' );
push @svc_acct, new FS::svc_acct ( \%svc_acct )
}