From: Ivan Kohler Date: Thu, 14 Nov 2013 01:41:43 +0000 (-0800) Subject: email addresses on detach customer, RT#25954, RT#22185 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=4600f6ce1fa697de8d015c83e49ff61b534ba09d email addresses on detach customer, RT#25954, RT#22185 --- diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index 98f8a3789..dd4d11c5f 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -1860,7 +1860,7 @@ sub change { if ( $opt->{cust_main} ) { my $cust_main = $opt->{cust_main}; unless ( $cust_main->custnum ) { - my $error = $cust_main->insert; + my $error = $cust_main->insert( @{ $opt->{cust_main_insert_args}||[] } ); if ( $error ) { $dbh->rollback if $oldAutoCommit; return "inserting cust_main (transaction rolled back): $error"; diff --git a/httemplate/edit/process/detach-cust_pkg.html b/httemplate/edit/process/detach-cust_pkg.html index ab87eb536..782ffa5e0 100644 --- a/httemplate/edit/process/detach-cust_pkg.html +++ b/httemplate/edit/process/detach-cust_pkg.html @@ -30,16 +30,23 @@ my $cust_location = new FS::cust_location { map { $_ => scalar($cgi->param($_)) } FS::cust_main->location_fields }; +#false laziness w/process/cust_main.cgi +my @invoicing_list = split( /\s*\,\s*/, $cgi->param('invoicing_list') ); +push @invoicing_list, 'POST' if $cgi->param('invoicing_list_POST'); +push @invoicing_list, 'FAX' if $cgi->param('invoicing_list_FAX'); +$cgi->param('invoicing_list', join(',', @invoicing_list) ); + my $cust_main = new FS::cust_main { ( map { ( $_, scalar($cgi->param($_)) ) } fields('cust_main') ), ( map { ( "ship_$_", '' ) } FS::cust_main->location_fields ), - 'bill_location' => $cust_location, - 'ship_location' => $cust_location, + 'bill_location' => $cust_location, + 'ship_location' => $cust_location, }; my $pkg_or_error = $cust_pkg->change( { - 'keep_dates' => 1, - 'cust_main' => $cust_main, + 'keep_dates' => 1, + 'cust_main' => $cust_main, + 'cust_main_insert_args' => [ {}, \@invoicing_list ], } ); my $error = ref($pkg_or_error) ? '' : $pkg_or_error;