X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fcust_main.cgi;h=04516e9848f314a8f05f05eeb1e5970b06c3de21;hb=84bc64eeaa9650333fbbb79ecb03a1aff4a347fd;hp=a9f7cf4ac4b43f9b83fc044ebc440e88283f09ae;hpb=b2fd002f3285b70311642f8ff0025598d42bd16e;p=freeside.git diff --git a/httemplate/edit/process/cust_main.cgi b/httemplate/edit/process/cust_main.cgi index a9f7cf4ac..04516e984 100755 --- a/httemplate/edit/process/cust_main.cgi +++ b/httemplate/edit/process/cust_main.cgi @@ -76,8 +76,8 @@ if ( ($cgi->param('same') || '') eq 'Y' ) { # but explicitly avoid setting ship_ fields my $new = new FS::cust_main ( { - map { ( $_, scalar($cgi->param($_)) ) } (fields('cust_main')), - map { ( "ship_$_", '' ) } (FS::cust_main->location_fields) + (map { ( $_, scalar($cgi->param($_)) ) } (fields('cust_main'))), + (map { ( "ship_$_", '' ) } (FS::cust_main->location_fields)) } ); warn Dumper( $new ) if $DEBUG > 1; @@ -156,24 +156,23 @@ if ( $curuser->access_right('Edit customer tax exemptions') ) { }; } -$options{'contact_params'} = scalar($cgi->Vars); $options{'cust_payby_params'} = scalar($cgi->Vars); -my $email; - if ( $cgi->param('residential_commercial') eq 'Residential' ) { - $email = $cgi->param('invoice_email') || ''; + my $email = $cgi->param('invoice_email') || ''; if ( length($email) == 0 and $conf->exists('cust_main-require_invoicing_list_email', $agentnum) ) { $error = 'Email address required'; } + $options{'invoicing_list'} = [ split(/\s*,\s*/, $email) ]; # XXX really should include the phone numbers in here also } else { - # contact UI is enabled; everything will be passed through via - # contact_params + # contact UI is enabled + $options{'contact_params'} = scalar($cgi->Vars); + if ($conf->exists('cust_main-require_invoicing_list_email', $agentnum)) { my $has_email = 0; foreach my $prefix (grep /^contactnum\d+$/, $cgi->param) { @@ -189,6 +188,15 @@ if ( $cgi->param('residential_commercial') eq 'Residential' ) { } +# kind of a hack, but some tax data vendors require a status and others +# don't. +my $vendor = $conf->config('tax_data_vendor'); +if ( $vendor eq 'avalara' or $vendor eq 'suretax' ) { + if ( ! $cgi->param('taxstatusnum') ) { + $error ||= 'Tax status required'; + } +} + #perhaps this stuff should go to cust_main.pm if ( $new->custnum eq '' or $duplicate_of ) { @@ -296,7 +304,6 @@ if ( $new->custnum eq '' or $duplicate_of ) { else { # create the customer $error ||= $new->insert( \%hash, - [ $email ], %options, prospectnum => scalar($cgi->param('prospectnum')), ); @@ -334,9 +341,9 @@ if ( $new->custnum eq '' or $duplicate_of ) { local($FS::Record::DEBUG) = $DEBUG if $DEBUG; local($Data::Dumper::Sortkeys) = 1; - warn Dumper({ new => $new, old => $old }) if $DEBUG; + warn Dumper({ new => $new, old => $old, options => \%options}) if $DEBUG; - $error ||= $new->replace( $old, [ $email ], %options ); + $error ||= $new->replace( $old, %options ); warn "$me returned from replace" if $DEBUG;