summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/UI/Web.pm36
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