summaryrefslogtreecommitdiff
path: root/FS/FS
diff options
context:
space:
mode:
authormark <mark>2010-04-01 04:43:55 +0000
committermark <mark>2010-04-01 04:43:55 +0000
commit35cff72e48d004b309409cac03e667463a558022 (patch)
treea8118d3d1ae4fb5e69dc0aa1c989ccc26cbf9122 /FS/FS
parent65f0f73df04de553919ee50145376955da20b315 (diff)
RT#866: links to process payments from aging report
Diffstat (limited to 'FS/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