summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/Conf.pm7
-rw-r--r--FS/FS/cust_main.pm4
-rw-r--r--httemplate/edit/cust_main/basics.html7
3 files changed, 16 insertions, 2 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index d12a86e..a4eba60 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -4176,6 +4176,13 @@ and customer address. Include units.',
},
{
+ 'key' => 'cust_main-require_classnum',
+ 'section' => 'customer_fields',
+ 'description' => 'Customer class is required: require customer class for all customer records.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'cust_main-check_unique',
'section' => 'customer_fields',
'description' => 'Warn before creating a customer record where these fields duplicate another customer.',
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 25b3d08..e2332aa 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -2100,6 +2100,10 @@ sub check {
&& ! $self->custnum
&& $conf->exists('cust_main-require_locale');
+ return "Please select a customer class"
+ if ! $self->classnum
+ && $conf->exists('cust_main-require_classnum');
+
foreach my $flag (qw( tax spool_cdr squelch_cdr archived email_csv_cdr )) {
$self->$flag() =~ /^(Y?)$/ or return "Illegal $flag: ". $self->$flag();
$self->$flag($1);
diff --git a/httemplate/edit/cust_main/basics.html b/httemplate/edit/cust_main/basics.html
index a30d7f8..3290756 100644
--- a/httemplate/edit/cust_main/basics.html
+++ b/httemplate/edit/cust_main/basics.html
@@ -169,9 +169,12 @@
% }
%# class
+% my $rclass = $conf->exists('cust_main-require_classnum') ? $r : '';
<& /elements/tr-select-cust_class.html,
- 'curr_value' => $cust_main->classnum,
- 'label' => emt("Class"),
+ 'curr_value' => $cust_main->classnum,
+ 'label' => $rclass . emt("Class"),
+ 'empty_label' => $rclass ? 'Select class' : '(none)',
+ 'disable_empty' => ($rclass && $cust_main->classnum) ? 1 : 0,
&>
%# tax status