summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-11-13 14:26:08 -0800
committerIvan Kohler <ivan@freeside.biz>2014-11-13 14:26:08 -0800
commitd353c1f9bbfee93e96219851af27a78f56837c50 (patch)
tree0fe8d6792865534c1ec73a9f0304c837c3181aac /FS
parenteb496e0e972cdaa94f894d232c5cc6dfa250e9ad (diff)
status labels
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/ClientAPI/Agent.pm2
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm3
-rw-r--r--FS/FS/UI/Web.pm2
-rw-r--r--FS/FS/UI/Web/small_custview.pm2
-rw-r--r--FS/FS/Upgrade.pm2
-rw-r--r--FS/FS/cust_main.pm73
-rw-r--r--FS/FS/cust_main/Status.pm15
-rw-r--r--FS/FS/cust_main_Mixin.pm13
-rw-r--r--FS/FS/msg_template.pm2
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