X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_svc.pm;h=d68a4618113d0211fa01bffef76d4c2a59f70412;hp=49854f7ca20831afa6c5784a0b41352ad8e8c415;hb=dc83512c36dc6bea2585abada4f88d714c600e55;hpb=772656864b377bbd2ef2febd40891ef1206b5be0 diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index 49854f7ca..d68a46181 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -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,