qualification address handling changes, RT#7111
authorivan <ivan>
Mon, 14 Mar 2011 03:53:29 +0000 (03:53 +0000)
committerivan <ivan>
Mon, 14 Mar 2011 03:53:29 +0000 (03:53 +0000)
FS/FS/Conf.pm
httemplate/edit/prospect_main.html
httemplate/elements/location.html
httemplate/elements/tr-select-cust_location.html

index d8f37e5..a6feffe 100644 (file)
@@ -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',
index 7473cc2..4495cab 100644 (file)
          '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,
index f36f2c4..0ff1190 100644 (file)
@@ -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';
index d17e4df..d756626 100644 (file)
@@ -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';