From: Ivan Kohler Date: Thu, 13 Nov 2014 22:26:08 +0000 (-0800) Subject: status labels X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=d353c1f9bbfee93e96219851af27a78f56837c50 status labels --- 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/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 #'. $cust_main->display_custnum. ''. ' - '. - ucfirst($cust_main->status). ''; + $cust_main->status_label. ''; 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 f84ff0f0e..c17bb5711 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 diff --git a/fs_selfservice/FS-SelfService/cgi/list_customers.html b/fs_selfservice/FS-SelfService/cgi/list_customers.html index 974634729..b30262439 100644 --- a/fs_selfservice/FS-SelfService/cgi/list_customers.html +++ b/fs_selfservice/FS-SelfService/cgi/list_customers.html @@ -20,7 +20,7 @@ $OUT .= ''. "$td{'statuscolor'}. '">'. - ucfirst($customer->{'status'}). "". "$td". + $customer->{'status_label'}. "". "$td". "$td$a". $customer->{'name'}. "". ''; #"$td". diff --git a/fs_selfservice/FS-SelfService/cgi/small_custview.html b/fs_selfservice/FS-SelfService/cgi/small_custview.html index 308eae928..919df5631 100644 --- a/fs_selfservice/FS-SelfService/cgi/small_custview.html +++ b/fs_selfservice/FS-SelfService/cgi/small_custview.html @@ -1,7 +1,7 @@
Customer #<%= $display_custnum %> - - <%= ucfirst($status)%> + - <%= $status_label %> diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi index ae5085e11..353ae1799 100755 --- a/httemplate/edit/cust_main.cgi +++ b/httemplate/edit/cust_main.cgi @@ -17,7 +17,7 @@ % if ( $custnum ) { <% mt('Customer #') |h %><% $cust_main->display_custnum %> - - <% ucfirst($cust_main->status) %> + <% $cust_main->status_label %>

% } diff --git a/httemplate/edit/msg_template.html b/httemplate/edit/msg_template.html index 6c9d2f414..aac4cd4fd 100644 --- a/httemplate/edit/msg_template.html +++ b/httemplate/edit/msg_template.html @@ -203,9 +203,9 @@ my %substitutions = ( '$balance' => 'Current balance', '$credit_limit' => 'Credit limit', '$invoicing_list_emailonly' => 'Billing email address', - '$cust_status' => 'Status', - '$ucfirst_cust_status' => 'Status, capitalized', - '$cust_statuscolor' => 'Status color code', + #'$cust_status' => 'Status (raw internal label)', + '$cust_status_label' => 'Status (display label)', + '$cust_statuscolor' => 'Status color code', '$company_name' => 'Our company name', '$company_address'=> 'Our company address', '$company_phonenum' => 'Our phone number', diff --git a/httemplate/misc/xmlhttp-cust_main-duplicates.html b/httemplate/misc/xmlhttp-cust_main-duplicates.html index 7cd463371..eac396df7 100644 --- a/httemplate/misc/xmlhttp-cust_main-duplicates.html +++ b/httemplate/misc/xmlhttp-cust_main-duplicates.html @@ -8,7 +8,7 @@ Choose an existing customer diff --git a/httemplate/misc/xmlhttp-cust_main-search.cgi b/httemplate/misc/xmlhttp-cust_main-search.cgi index b3bf4681b..f40df5623 100644 --- a/httemplate/misc/xmlhttp-cust_main-search.cgi +++ b/httemplate/misc/xmlhttp-cust_main-search.cgi @@ -15,7 +15,7 @@ % my $return = [ map [ $_->custnum, % $_->name, % $_->balance, -% $_->ucfirst_status, +% $_->status_label, % $_->statuscolor, % scalar($_->open_cust_bill), % $_->display_custnum, @@ -65,7 +65,7 @@ sub findbycustnum { [ $c->custnum, $c->name, $c->balance, - $c->ucfirst_status, + $c->status_label, $c->statuscolor, scalar($c->open_cust_bill), $c->display_custnum, @@ -93,7 +93,7 @@ sub findbycustnum_or_agent_custid { [ map [ $_->custnum, $_->name, $_->balance, - $_->ucfirst_status, + $_->status_label, $_->statuscolor, scalar($_->open_cust_bill), $_->display_custnum, diff --git a/httemplate/search/cust_bill_pkg_referral.html b/httemplate/search/cust_bill_pkg_referral.html index f8e2ea72d..1bc3b1038 100644 --- a/httemplate/search/cust_bill_pkg_referral.html +++ b/httemplate/search/cust_bill_pkg_referral.html @@ -100,7 +100,7 @@ 'color' => [ ('') x (5 + $x), sub { my $cust_pkg = shift->cust_pkg; - $cust_pkg ? ucfirst($cust_pkg->statuscolor) : ''; + $cust_pkg ? $cust_pkg->statuscolor : ''; }, ('') x 6, ], diff --git a/httemplate/search/cust_main.cgi b/httemplate/search/cust_main.cgi index 0b0dd4ffe..f48ea3fb0 100755 --- a/httemplate/search/cust_main.cgi +++ b/httemplate/search/cust_main.cgi @@ -150,15 +150,15 @@ % ? qq!!. encode_entities($company). '' % : ' '; % -% my $status = $cust_main->status; -% my $statuscol = $cust_main->statuscolor; +% my $status_label = $cust_main->status_label; +% my $statuscolor = $cust_main->statuscolor; - + % my @part_tag = $cust_main->part_tag;
<% $custnum %>: - <% $_->name |h %>—<%$_->ucfirst_cust_status%>
+ <% $_->name |h %>—<%$_->cust_status_label%>
<% $_->address1 |h %>
<% $_->city |h %>, <% $_->state %>  <% $_->zip %>
> <% $cust_main->display_custnum %> > - <% ucfirst($status) %> + <% $status_label %> > <% "$last, $first" |h %> diff --git a/httemplate/view/cust_main/misc.html b/httemplate/view/cust_main/misc.html index 0d011f6eb..15def3283 100644 --- a/httemplate/view/cust_main/misc.html +++ b/httemplate/view/cust_main/misc.html @@ -7,7 +7,7 @@
<% mt('Status') |h %><% ucfirst($cust_main->status) %><% $cust_main->status_label %>