<% include('elements/edit.html',
'name_singular' => 'prospect',
'table' => 'prospect_main',
+ 'html_table_class'=> 'fsinnerbox',
'labels' => { 'prospectnum' => 'Prospect',
'agentnum' => 'Agent',
+ 'refnum' => 'Advertising source',
'company' => 'Company',
'contactnum' => 'Contact',
+ 'locationnum' => ' ',
+ 'taxstatusnum'=> 'Tax status',
},
'fields' => [
{ 'field' => 'agentnum',
'type' => 'select-agent',
'empty_label' => 'Select agent',
+ 'colspan' => 7,
},
- { 'field' => 'company',
- 'type' => 'text',
- 'size' => 50,
+ { 'field' => 'refnum',
+ 'type' => 'select-part_referral',
+ 'empty_label' => 'Select advertising source',
+ 'colspan' => 7,
+ },
+ { 'field' => 'residential_commercial',
+ 'type' => 'radio',
+ 'options' => [ 'Residential', 'Commercial', ],
+ 'onchange' => 'rescom_changed',
+ },
+ { 'field' => 'company',
+ 'type' => 'text',
+ 'size' => 50,
+ 'colspan' => 7,
},
{ 'field' => 'contactnum',
'type' => 'contact',
- 'colspan' => 6,
- ##actually o2m, but this seems to be working for edit so far
- #'m2name_table' => 'contact',
- #'m2name_namecol' => 'contactnum',
- #'m2_label' => 'Contact',
- #'m2_error_callback' => $m2_error_callback,
-
+ 'colspan' => 7,
'o2m_table' => 'contact',
'm2_label' => 'Contact',
'm2_error_callback' => $m2_error_callback,
},
- { 'field' => 'locationnum',
- 'type' => 'select-cust_location',
- 'empty_label' => 'No address',
+ { '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'),
+ 'include_opt_callback' => sub {
+ 'prospect_main' => shift
+ },
+ },
+ { 'field' => 'taxstatusnum',
+ 'type' => 'select-tax_status',
+ 'empty_label' => ' ',
},
],
+ '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>
my $curuser = $FS::CurrentUser::CurrentUser;
+my $conf = new FS::Conf;
my $prospectnum;
if ( $cgi->param('error') ) {
}
+my $new_callback = sub {
+ my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_;
+
+ if ( $cgi->param('session') =~ /^(\w+)$/ ) {
+ my $session = $1;
+
+ #add a link to the image.cgi for this card
+ $opt_hashref->{'html_bottom'} .=
+ qq(<BR><IMG SRC="${p}view/image.cgi?type=png;prefname=bizcard$session" ).
+ ' WIDTH=604 HEIGHT=328><BR>';
+
+ #fill in the incoming params: name, address1/address2, city_state_zip
+ foreach my $param ( grep /^sel\d+$/, $cgi->param ) {
+ $param =~ /^sel(\d+)$/ or die 'again, wtf (daily)';
+ my $num = $1;
+ my $field = $cgi->param($param);
+ my $value = $cgi->param("val$num");
+ $cgi->param($field => $value);
+ }
+
+ if ( $cgi->param('company') ) {
+ $prospect_main->company( $cgi->param('company') );
+ }
+
+ if ( $cgi->param('name') =~ /^(.*\S+)\s+(\w+)\s*$/ ) {
+ $cgi->param('contactnum0_first' => $1);
+ $cgi->param('contactnum0_last' => $2);
+ }
+
+ if ( grep $cgi->param($_), qw( address1 address2 city_state_zip ) ) {
+ $cgi->param('locationnum', -1);
+ if ( $cgi->param('city_state_zip') =~ /^(\s*)([\w\s]+)[\., ]+(\w{2})[, ]+(\d{5}(-\d{4})?)/ ) {
+ $cgi->param('city' => $2);
+ $cgi->param('state' => $3);
+ $cgi->param('zip' => $4);
+ }
+ }
+
+ }
+
+ #config to default to commercial and/or disable residential when someone needs
+ $prospect_main->set('residential_commercial', 'Residential');
+
+};
+
my $edit_callback = sub {
#my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_;
my( $cgi, $prospect_main ) = @_;
$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 {
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 {
my $num = $1;
if ( grep $cgi->param("contactnum$num$_"), @gfields ) {
my $x = new FS::contact {
- 'contactnum' => $cgi->param("contactnum$num"),
+ 'contactnum' => scalar($cgi->param("contactnum$num")),
map { $_ => scalar($cgi->param("contactnum${num}_$_")) } @fields,
};
$x;
$cgi->param;
};
-my @agentnums = $FS::CurrentUser::CurrentUser->agentnums;
+#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>