summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/Conf.pm7
-rw-r--r--httemplate/edit/prospect_main.html9
-rw-r--r--httemplate/elements/location.html6
-rw-r--r--httemplate/elements/tr-select-cust_location.html7
4 files changed, 20 insertions, 9 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index d8f37e5e7..a6feffe5c 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -4246,6 +4246,13 @@ and customer address. Include units.',
},
{
+ 'key' => 'prospect_main-location_required',
+ 'section' => 'UI',
+ 'description' => 'Require an address for prospects. Recommended if the main use of propects is for qualifications.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'note-classes',
'section' => 'UI',
'description' => 'Use customer note classes',
diff --git a/httemplate/edit/prospect_main.html b/httemplate/edit/prospect_main.html
index 7473cc209..4495cab29 100644
--- a/httemplate/edit/prospect_main.html
+++ b/httemplate/edit/prospect_main.html
@@ -26,10 +26,11 @@
'm2_error_callback' => $m2_error_callback,
},
- { 'field' => 'locationnum',
- 'type' => 'select-cust_location',
- 'empty_label' => 'No address',
- 'alt_format' => $conf->exists('prospect_main-alt_address_format'),
+ { 'field' => 'locationnum',
+ 'type' => 'select-cust_location',
+ 'empty_label' => 'No address',
+ 'disable_empty' => $conf->exists('prospect_main-location_required'),
+ 'alt_format' => $conf->exists('prospect_main-alt_address_format'),
},
],
'new_callback' => $new_callback,
diff --git a/httemplate/elements/location.html b/httemplate/elements/location.html
index f36f2c4cd..0ff119009 100644
--- a/httemplate/elements/location.html
+++ b/httemplate/elements/location.html
@@ -27,7 +27,7 @@ Example:
'field' => 'location_kind',
'id' => 'location_kind',
'disabled' => $disabled,
- 'style' => \@style,
+ #'style' => \@style,
'options' => \@location_kind_options,
'labels' => $location_kind_labels,
'curr_value' => scalar($cgi->param('location_kind'))
@@ -98,7 +98,7 @@ Example:
'field' => 'location_type',
'id' => 'location_type',
'disabled' => $disabled,
- 'style' => \@style,
+ #'style' => \@style,
'options' => [ keys %location_types ],
'labels' => \%location_types,
'curr_value' => $location_type,
@@ -252,7 +252,7 @@ my %select_hash = (
'prefix' => $pre,
'onchange' => $onchange,
'disabled' => $disabled,
- 'style' => \@style,
+ #'style' => \@style,
);
my $th = $opt{'no_bold'} ? 'TD' : 'TH';
diff --git a/httemplate/elements/tr-select-cust_location.html b/httemplate/elements/tr-select-cust_location.html
index d17e4dfee..d7566262e 100644
--- a/httemplate/elements/tr-select-cust_location.html
+++ b/httemplate/elements/tr-select-cust_location.html
@@ -11,6 +11,7 @@ Example:
#optional
'empty_label' => '(default service address)',
+ 'disable_empty' => 0, #1 to disable
)
</%doc>
@@ -159,7 +160,7 @@ Example:
<<%$th%> ALIGN="right"><% $opt{'label'} || 'Service&nbsp;location' %></<%$th%>>
<TD COLSPAN=7>
<SELECT NAME="locationnum" onChange="locationnum_changed(this);">
-% if ( !$prospect_main ) {
+% if ( !$prospect_main && !$opt{'disable_empty'} ) {
<OPTION VALUE=""><% $opt{'empty_label'} || '(default service address)' |h %>
% }
% if ( $opt{'is_optional'} ) {
@@ -267,7 +268,9 @@ push @cust_location, $cust_location
my $disabled =
( $locationnum < 0
|| ( $editable && $locationnum )
- || ( $prospect_main && !$opt{'is_optional'} && !@cust_location && $addnew )
+ || ( ( $prospect_main || $opt{'disable_empty'} )
+ && !$opt{'is_optional'} && !@cust_location && $addnew
+ )
)
? ''
: 'DISABLED';