optimize CDR rating after timed rate perf regression, RT#15739
[freeside.git] / httemplate / edit / prospect_main.html
index eb3e4d6..c8c8e98 100644 (file)
        { 'field'       => 'agentnum',
          'type'        => 'select-agent',
          'empty_label' => 'Select agent',
+         'colspan'     => 6,
        },
-       { 'field'   => 'company',
-         'type'   => 'text',
-         'size'    => 50,
+       { 'field'    => 'residential_commercial',
+         'type'     => 'radio',
+         'options'  => [ 'Residential', 'Commercial', ],
+         'onchange' => 'rescom_changed',
+       },
+       { 'field'    => 'company',
+         'type'     => 'text',
+         'size'     => 50,
+         'colspan'  => 6,
        },
        { 'field'             => 'contactnum',
          'type'              => 'contact',
          '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,
      'edit_callback'   => $edit_callback,
-     'error_callbacck' => $error_callback,
+     'error_callback'  => $error_callback,
      'agent_virt'      => 1,
+     'html_bottom'     => $javascript,
+     'body_etc'        => 'onLoad="rescom_changed()"',
    )
 %>
 <%init>
@@ -100,6 +110,9 @@ my $new_callback = sub {
 
   }
 
+  #config to default to commercial and/or disable residential when someone needs
+  $prospect_main->set('residential_commercial', 'Residential');
+
 };
 
 my $edit_callback = sub {
@@ -112,6 +125,12 @@ my $edit_callback = sub {
   $prospect_main->set('locationnum', $cust_location[0]->locationnum)
     if scalar(@cust_location);
   #warn 'prospect_main.locationnum '.$prospect_main->get('locationnum');
+
+  $prospect_main->set('residential_commercial',
+    length($prospect_main->company)
+      ? 'Commercial'
+      : 'Residential'
+  );
 };
 
 my $error_callback = sub {
@@ -121,6 +140,13 @@ my $error_callback = sub {
     or die 'illegal locationnum '. $cgi->param('locationnum');
   my $locationnum = $1;
   $prospect_main->set('locationnum', $locationnum);
+
+  $prospect_main->set('residential_commercial',
+    ($cgi->param('residential_commercial') eq 'Commercial')
+      ? 'Commercial'
+      : 'Residential'
+  );
+
 };
 
 my $m2_error_callback = sub {
@@ -151,4 +177,20 @@ my $m2_error_callback = sub {
 
 #my @agentnums = $FS::CurrentUser::CurrentUser->agentnums;
 
+my $javascript = <<END;
+  <SCRIPT TYPE="text/javascript">
+    function rescom_changed() {
+      var f = document.edit_topform;
+      var c = f.company;
+      if        ( f.residential_commercial_Residential.checked ) {
+        c.disabled = true;
+        c.style.backgroundColor = '#dddddd';
+      } else if ( f.residential_commercial_Commercial.checked ) {
+        c.disabled = false;
+        c.style.backgroundColor = '#ffffff';
+      }
+    }
+  </SCRIPT>
+END
+
 </%init>