X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_main.cgi;h=cf32324f08f27993de34fb0ceb1afa9a72fb736e;hp=39cddc02198c0cd3f19924ffd79faa92775ae7aa;hb=0a82a991ededecdc099a6a169b41a4d952a53f3b;hpb=74cf17d7e822d75cbf51098c7e337ba4174b18aa diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi index 39cddc021..cf32324f0 100755 --- a/httemplate/edit/cust_main.cgi +++ b/httemplate/edit/cust_main.cgi @@ -111,7 +111,7 @@ function samechanged(what) { -<& cust_main/contacts_new.html, 'cust_main'=>$cust_main, &> +<& cust_main/contacts_new.html, 'cust_main'=>$cust_main, 'submit_id'=>'submitButton', &> %# billing info <& cust_main/billing.html, $cust_main, @@ -203,12 +203,19 @@ if ( $cgi->param('error') ) { my %locations; for my $pre (qw(bill ship)) { my %hash; - foreach ( FS::cust_main->location_fields ) { - $hash{$_} = scalar($cgi->param($pre.'_'.$_)); + foreach my $locfield ( FS::cust_main->location_fields ) { + # don't search on lat/long, string values can cause qsearchs to die + next if grep {$_ eq $locfield} qw(latitude longitude); + $hash{$locfield} = scalar($cgi->param($pre.'_'.$locfield)); } $hash{'custnum'} = $cgi->param('custnum'); $locations{$pre} = qsearchs('cust_location', \%hash) || FS::cust_location->new( \%hash ); + # now set lat/long, for redisplay of entered values + foreach my $locfield ( qw(latitude longitude) ) { + my $locvalue = scalar($cgi->param($pre.'_'.$locfield)); + $locations{$pre}->set($locfield,$locvalue); + } } if ( $same ) { $locations{ship} = $locations{bill}; @@ -230,7 +237,8 @@ if ( $cgi->param('error') ) { unless $curuser->access_right($custnum ? 'Edit customer' : 'New customer'); @invoicing_list = split( /\s*,\s*/, $cgi->param('invoicing_list') ); - $cust_main->setfield('paid' => $cgi->param('paid')) if $cgi->param('paid'); + $cust_main->setfield( 'paid' => scalar($cgi->param('paid')) ) + if $cgi->param('paid'); $ss = $cust_main->ss; # don't mask an entered value on errors $stateid = $cust_main->stateid; # don't mask an entered value on errors @@ -278,7 +286,7 @@ if ( $cgi->param('error') ) { $cust_main->paycvv($paycvv); } @invoicing_list = $cust_main->invoicing_list; - $ss = $conf->exists('unmask_ss') ? $cust_main->ss : $cust_main->masked('ss'); + $ss = $cust_main->masked('ss'); $stateid = $cust_main->masked('stateid'); } else { #new customer @@ -288,16 +296,19 @@ if ( $cgi->param('error') ) { $custnum=''; $cust_main = new FS::cust_main ( {} ); + + my @agentnums = $curuser->agentnums; + $cust_main->agentnum( $agentnums[0] ) + if scalar(@agentnums) == 1; $cust_main->agentnum( $conf->config('default_agentnum') ) if $conf->exists('default_agentnum'); - $cust_main->referral_custnum( $cgi->param('referral_custnum') ); + + $cust_main->referral_custnum( scalar($cgi->param('referral_custnum')) ); $cust_main->set('postal_invoice', 'Y') unless $conf->exists('disablepostalinvoicedefault'); $ss = ''; $stateid = ''; - $cgi->param('tagnum', FS::part_tag->default_tags); - if ( $cgi->param('qualnum') =~ /^(\d+)$/ ) { my $qualnum = $1; my $qual = qsearchs('qual', { 'qualnum' => $qualnum } )