diff options
author | Ivan Kohler <ivan@freeside.biz> | 2014-11-13 14:26:08 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2014-11-13 14:26:08 -0800 |
commit | d353c1f9bbfee93e96219851af27a78f56837c50 (patch) | |
tree | 0fe8d6792865534c1ec73a9f0304c837c3181aac /FS | |
parent | eb496e0e972cdaa94f894d232c5cc6dfa250e9ad (diff) |
status labels
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/ClientAPI/Agent.pm | 2 | ||||
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 3 | ||||
-rw-r--r-- | FS/FS/UI/Web.pm | 2 | ||||
-rw-r--r-- | FS/FS/UI/Web/small_custview.pm | 2 | ||||
-rw-r--r-- | FS/FS/Upgrade.pm | 2 | ||||
-rw-r--r-- | FS/FS/cust_main.pm | 73 | ||||
-rw-r--r-- | FS/FS/cust_main/Status.pm | 15 | ||||
-rw-r--r-- | FS/FS/cust_main_Mixin.pm | 13 | ||||
-rw-r--r-- | FS/FS/msg_template.pm | 2 |
9 files changed, 84 insertions, 30 deletions
diff --git a/FS/FS/ClientAPI/Agent.pm b/FS/FS/ClientAPI/Agent.pm index 923920d..baa05ca 100644 --- a/FS/FS/ClientAPI/Agent.pm +++ b/FS/FS/ClientAPI/Agent.pm @@ -140,7 +140,7 @@ sub agent_list_customers { my $cust_main = $_; my $hashref = $cust_main->hashref; $hashref->{$_} = $cust_main->$_() - foreach qw(name status statuscolor); + foreach qw(name status statuscolor status_label); delete $hashref->{$_} foreach qw( payinfo paycvv ); $hashref; } @cust_main diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index bcfe35c..ec114ff 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -464,8 +464,9 @@ sub customer_info { ); $return{has_ship_address} = $cust_main->has_ship_address; - $return{status} = $cust_main->status; + $return{status} = $cust_main->status_label; #$cust_main->status; #better to break anyone obscurely testing for strings in self-service than to have to upgrade every front-end to get the new status to display $return{statuscolor} = $cust_main->statuscolor; + $return{status_label} = $cust_main->status_label; # compatibility: some places in selfservice use this to determine # if there's a ship address diff --git a/FS/FS/UI/Web.pm b/FS/FS/UI/Web.pm index bab7e30..99c3560 100644 --- a/FS/FS/UI/Web.pm +++ b/FS/FS/UI/Web.pm @@ -225,7 +225,7 @@ sub cust_header { my %header2method = ( 'Customer' => 'name', - 'Cust. Status' => 'ucfirst_cust_status', + 'Cust. Status' => 'cust_status_label', 'Cust#' => 'custnum', 'Name' => 'contact', 'Company' => 'company', diff --git a/FS/FS/UI/Web/small_custview.pm b/FS/FS/UI/Web/small_custview.pm index 2290ba3..d7cede6 100644 --- a/FS/FS/UI/Web/small_custview.pm +++ b/FS/FS/UI/Web/small_custview.pm @@ -36,7 +36,7 @@ sub small_custview { $html .= 'Customer #<B>'. $cust_main->display_custnum. '</B></A>'. ' - <B><FONT COLOR="#'. $cust_main->statuscolor. '">'. - ucfirst($cust_main->status). '</FONT></B>'; + $cust_main->status_label. '</FONT></B>'; my @part_tag = $cust_main->part_tag; if ( @part_tag ) { diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index d76379f..7aa7ce3 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -236,7 +236,7 @@ sub upgrade { } local($FS::cust_main::ignore_expired_card) = 1; - local($FS::cust_main::ignore_illegal_zip) = 1; + #this is long-gone... would need to set an equivalent in cust_location #local($FS::cust_main::ignore_illegal_zip) = 1; local($FS::cust_main::ignore_banned_card) = 1; local($FS::cust_main::skip_fuzzyfiles) = 1; diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index e5982a9..b2949a5 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -17,14 +17,6 @@ use base qw( FS::cust_main::Packages require 5.006; use strict; -use vars qw( $DEBUG $me $conf - @encrypted_fields - $import - $ignore_expired_card $ignore_banned_card $ignore_illegal_zip - $ignore_invalid_card - $skip_fuzzyfiles - @paytypes - ); use Carp; use Scalar::Util qw( blessed ); use Time::Local qw(timelocal); @@ -86,21 +78,24 @@ use FS::cust_payby; # 1 is mostly method/subroutine entry and options # 2 traces progress of some operations # 3 is even more information including possibly sensitive data -$DEBUG = 0; -$me = '[FS::cust_main]'; +our $DEBUG = 0; +our $me = '[FS::cust_main]'; + +our $import = 0; +our $ignore_expired_card = 0; +our $ignore_banned_card = 0; +our $ignore_invalid_card = 0; -$import = 0; -$ignore_expired_card = 0; -$ignore_banned_card = 0; -$ignore_invalid_card = 0; +our $skip_fuzzyfiles = 0; -$skip_fuzzyfiles = 0; +our $ucfirst_nowarn = 0; -@encrypted_fields = ('payinfo', 'paycvv'); +our @encrypted_fields = ('payinfo', 'paycvv'); sub nohistory_fields { ('payinfo', 'paycvv'); } -@paytypes = ('', 'Personal checking', 'Personal savings', 'Business checking', 'Business savings'); +our @paytypes = ('', 'Personal checking', 'Personal savings', 'Business checking', 'Business savings'); +our $conf; #ask FS::UID to run this stuff for us later #$FS::UID::callback{'FS::cust_main'} = sub { install_callback FS::UID sub { @@ -4230,17 +4225,29 @@ Returns a status string for this customer, currently: =over 4 -=item prospect - No packages have ever been ordered +=item prospect + +No packages have ever been ordered. Displayed as "No packages". + +=item ordered + +Recurring packages all are new (not yet billed). -=item ordered - Recurring packages all are new (not yet billed). +=item active -=item active - One or more recurring packages is active +One or more recurring packages is active. -=item inactive - No active recurring packages, but otherwise unsuspended/uncancelled (the inactive status is new - previously inactive customers were mis-identified as cancelled) +=item inactive -=item suspended - All non-cancelled recurring packages are suspended +No active recurring packages, but otherwise unsuspended/uncancelled (the inactive status is new - previously inactive customers were mis-identified as cancelled). -=item cancelled - All recurring packages are cancelled +=item suspended + +All non-cancelled recurring packages are suspended. + +=item cancelled + +All recurring packages are cancelled. =back @@ -4267,17 +4274,35 @@ sub cust_status { =item ucfirst_status +Deprecated, use the cust_status_label method instead. + Returns the status with the first character capitalized. =cut -sub ucfirst_status { shift->ucfirst_cust_status(@_); } +sub ucfirst_status { + carp "ucfirst_status deprecated, use cust_status_label" unless $ucfirst_nowarn; + local($ucfirst_nowarn) = 1; + shift->ucfirst_cust_status(@_); +} sub ucfirst_cust_status { + carp "ucfirst_cust_status deprecated, use cust_status_label" unless $ucfirst_nowarn; my $self = shift; ucfirst($self->cust_status); } +=item cust_status_label + +Returns the display label for this status. + +=cut + +sub cust_status_label { + my $self = shift; + __PACKAGE__->statuslabels->{$self->cust_status}; +} + =item statuscolor Returns a hex triplet color string for this customer's status. diff --git a/FS/FS/cust_main/Status.pm b/FS/FS/cust_main/Status.pm index f84ff0f..c17bb57 100644 --- a/FS/FS/cust_main/Status.pm +++ b/FS/FS/cust_main/Status.pm @@ -68,6 +68,21 @@ sub statuscolors { } +sub statuslabels { + #my $self = shift; #i guess i'm a class method + + my %statuslabels = ( + 'prospect' => 'No packages', + 'active' => 'Active', + 'ordered' => 'Ordered', + 'inactive' => 'Inactive', + 'suspended' => 'Suspended', + 'cancelled' => 'Cancelled', + ); + + \%statuslabels; +} + =item cancelled_sql =cut diff --git a/FS/FS/cust_main_Mixin.pm b/FS/FS/cust_main_Mixin.pm index 4b151e7..ded6cc6 100644 --- a/FS/FS/cust_main_Mixin.pm +++ b/FS/FS/cust_main_Mixin.pm @@ -235,12 +235,25 @@ linked to a customer. =cut sub ucfirst_cust_status { + carp "ucfirst_cust_status deprecated, use cust_status_label"; my $self = shift; $self->cust_linked ? ucfirst( $self->cust_status(@_) ) : $self->cust_unlinked_msg; } +=item cust_status_label + +=cut + +sub cust_status_label { + my $self = shift; + + $self->cust_linked + ? FS::cust_main::cust_status_label($self) + : $self->cust_unlinked_msg; +} + =item cust_statuscolor Given an object that contains fields from cust_main (say, from a JOINed diff --git a/FS/FS/msg_template.pm b/FS/FS/msg_template.pm index 2fc66b4..08f0ada 100644 --- a/FS/FS/msg_template.pm +++ b/FS/FS/msg_template.pm @@ -528,7 +528,7 @@ sub substitutions { balance credit_limit invoicing_list_emailonly - cust_status ucfirst_cust_status cust_statuscolor + cust_status ucfirst_cust_status cust_statuscolor cust_status_label signupdate dundate packages recurdates |