diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/UI/Web.pm | 36 | 
1 files changed, 35 insertions, 1 deletions
| diff --git a/FS/FS/UI/Web.pm b/FS/FS/UI/Web.pm index 5e987429c..c9264a044 100644 --- a/FS/FS/UI/Web.pm +++ b/FS/FS/UI/Web.pm @@ -362,6 +362,7 @@ setting is supplied, the <B>cust-fields</B> configuration value.  =cut +  sub cust_fields {    my $record = shift;    warn "FS::UI::Web::cust_fields called for $record ". @@ -370,8 +371,9 @@ sub cust_fields {    #cust_header(@_) unless @cust_fields; #now need to cache to keep cust_fields    #                                     #override incase we were passed as a sub - +      my $seen_unlinked = 0; +    map {       if ( $record->custnum ) {        warn "  $record -> $_" if $DEBUG > 1; @@ -383,6 +385,38 @@ sub cust_fields {    } @cust_fields;  } +=item cust_fields_subs + +Returns an array of subroutine references for returning customer field values. +This is similar to cust_fields, but returns each field's sub as a distinct  +element. + +=cut + +sub cust_fields_subs { +  my $unlinked_warn = 0; +  return map {  +    my $f = $_; +    if( $unlinked_warn++ ) { +      sub { +        my $record = shift; +        if( $record->custnum ) { +          $record->$f(@_); +        } +        else { +          '(unlinked)' +        }; +      } +    }  +    else { +      sub { +        my $record = shift; +        $record->$f(@_) if $record->custnum; +      } +    } +  } @cust_fields; +} +  =item cust_colors  Returns an array of subroutine references (or empty strings) for returning | 
