use base qw( FS::Record );
use FS::Record qw( qsearch qsearchs );
-my @contexts = ( qw(
- test
+# 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
+ FS::cust_main::Billing_Realtime::realtime_bop
+ FS::cust_main::Billing_Realtime::realtime_tokenize
+ FS::cust_main::Billing_Realtime::realtime_verify_bop
+ FS::cust_main::Billing_Realtime::token_check
+ FS::pay_batch::import_from_gateway
+ FS::part_pkg
+ FS::Misc::Geo::standardize_uscensus
+ FS::saved_search::send
+ FS::saved_search::render
+ FS::cust_location::process_district_update
Cron::bill
+ Cron::backup
Cron::upload
spool_upload
daily
queue
+ upgrade
+ upgrade_taxable_billpkgnum
+ freeside-ipifony-download
+ freeside-paymentech-upload
+ freeside-paymentech-download
+ test
+ FS::TaxEngine::billsoft
+ wa_sales
+ wa_tax_rate_update
+ tax_rate_update
) );
=head1 NAME
=cut
-# the new method can be inherited from FS::Record, if a table method is defined
-
sub table { 'log_context'; }
=item insert
Adds this record to the database. If there is an error, returns the error,
otherwise returns false.
-=cut
-
-# the insert method can be inherited from FS::Record
-
=item delete
Delete this record from the database.
-=cut
-
-# the delete method can be inherited from FS::Record
-
=item replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
-=cut
-
-# the replace method can be inherited from FS::Record
-
=item check
Checks all fields to make sure this is a valid example. If there is
=cut
-# the check method should currently be supplied - FS::Record contains some
-# data checking routines
-
sub check {
my $self = shift;
my $error =
$self->ut_numbern('logcontextnum')
|| $self->ut_number('lognum')
- || $self->ut_enum('context', \@contexts)
+ || $self->ut_text('context') #|| $self->ut_enum('context', \@contexts)
;
return $error if $error;
=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