<% include('elements/process.html', 'table' => 'prospect_main', 'precheck_callback' => $precheck, 'args_callback' => $args_callback, 'agent_virt' => 1, 'process_o2m' => { 'table' => 'contact', 'fields' => \@contact_fields, }, 'redirect' => popurl(3). 'view/prospect_main.html?', ) %> <%init> my $precheck = sub { my $cgi = shift; my $vendor = FS::Conf->new->config('tax_data_vendor'); if ( $vendor eq 'avalara' or $vendor eq 'suretax' ) { if ( ! $cgi->param('taxstatusnum') ) { return 'Tax status required'; } } }; my $args_callback = sub { my( $cgi, $object ) = @_; $cgi->param('locationnum') =~ /^(\-?\d*)$/ or die 'illegal locationnum '. $cgi->param('locationnum'); my $locationnum = $1; return ( 'cust_location' => '' ) unless $locationnum; my $cust_location = new FS::cust_location { map { $_ => scalar($cgi->param($_)) } qw( address1 address2 city county state zip country latitude longitude location_kind location_type location_number ) }; $cust_location->locationnum($locationnum) unless $locationnum == -1; ( 'cust_location' => $cust_location ); }; my @contact_fields = qw( classnum first last title comment emailaddress ); foreach my $phone_type ( qsearch({table=>'phone_type', order_by=>'weight'}) ) { push @contact_fields, 'phonetypenum'.$phone_type->phonetypenum; }