summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorMitch Jackson <mitch@freeside.biz>2019-01-08 17:13:15 -0500
committerMitch Jackson <mitch@freeside.biz>2019-01-08 17:28:16 -0500
commit4e95ac939f2b22719b854de1f20d67d8bc6e0803 (patch)
treed78ba498435cc335c4bfcdd97030c985948484a4 /FS
parentda863bce6c626f566e5e33e5a8896f6ae4aba470 (diff)
RT# 38217 Log context list includes all contexts, not just predefined
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/log_context.pm25
1 files changed, 22 insertions, 3 deletions
diff --git a/FS/FS/log_context.pm b/FS/FS/log_context.pm
index 74038fc..6b69a80 100644
--- a/FS/FS/log_context.pm
+++ b/FS/FS/log_context.pm
@@ -4,7 +4,9 @@ use strict;
use base qw( FS::Record );
use FS::Record qw( qsearch qsearchs );
-my @contexts = ( qw(
+# Items in @default_contexts will always be included in the
+# output of contexts() method
+my @default_contexts = ( qw(
bill_and_collect
FS::cust_main::Billing::bill_and_collect
FS::cust_main::Billing::bill
@@ -31,6 +33,9 @@ my @contexts = ( qw(
freeside-paymentech-download
test
FS::TaxEngine::billsoft
+ wa_sales
+ wa_tax_rate_update
+ tax_rate_update
) );
=head1 NAME
@@ -127,11 +132,25 @@ sub check {
=item contexts
-Returns a list of all valid contexts.
+Returns a list of all log contexts, by combining @default_contexts
+with all context values seen in the log_context table
=cut
-sub contexts { @contexts }
+sub contexts {
+ my $self = shift;
+
+ my %contexts = map { $_ => 1 } @default_contexts;
+
+ $contexts{ $_->context } = 1
+ for qsearch({
+ select => 'DISTINCT context AS context',
+ table => 'log_context',
+ hashref => {},
+ });
+
+ sort { lc $a cmp lc $b } keys %contexts;
+}
=back