svc_hardware: better error messages for bad hw_addr when not validating as a MAC...
[freeside.git] / FS / FS / part_svc.pm
index 49854f7..d68a461 100644 (file)
@@ -707,6 +707,11 @@ sub _svc_defs {
         warn "skipping disabled service FS::$mod" if $DEBUG;
         next;
       }
+
+      foreach ("FS::$mod"->virtual_fields_hash) {
+        $info->{'fields'}->{$_->{'name'}} = $_->{'label'};
+      }
+
       $info{$mod} = $info;
 
       # all svc_* modules are required to have h_svc_* modules for invoice
@@ -898,6 +903,18 @@ sub process {
       $exportnums{$exportnum} = $role;
     }
   }
+
+  ## make sure export required fields are marked required.
+  my @required_fields;
+  foreach (keys %exportnums) {
+    my $export = qsearchs('part_export', { 'exportnum' => $_ })
+      if $exportnums{$_};
+    if ($export) {
+      push @required_fields, $export->required_fields if $export->can('required_fields');
+    }
+  }
+  foreach (@required_fields) { $new->set($_, 'Y'); }
+
   my $error;
   if ( $param->{'svcpart'} ) {
     $error = $new->replace( $old,