summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
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/Conf.pm2
-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
10 files changed, 85 insertions, 31 deletions
diff --git a/FS/FS/ClientAPI/Agent.pm b/FS/FS/ClientAPI/Agent.pm
index 923920d7f..baa05caaf 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 bcfe35c2a..ec114ff09 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/Conf.pm b/FS/FS/Conf.pm
index b1ef9017f..cb4274f39 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -4951,7 +4951,7 @@ and customer address. Include units.',
{
'key' => 'default_phone_countrycode',
'section' => '',
- 'description' => 'Default countrcode',
+ 'description' => 'Default countrycode',
'type' => 'text',
},
diff --git a/FS/FS/UI/Web.pm b/FS/FS/UI/Web.pm
index bab7e30c6..99c35609e 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 2290ba3e1..d7cede62a 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 d76379f3e..7aa7ce37e 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 e5982a9e3..b2949a5d8 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 b5e8986ef..9a3fe1bbe 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 4b151e7dd..ded6cc697 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 2fc66b478..08f0ada68 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