X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_pkg.pm;h=4dced54619957651d6110569777e38ea811d6dd7;hp=d8b6e699e6a86922d63042b5358892204e14d839;hb=63973c641c4be00765fa27e55c57cc5b9aa4da19;hpb=51d26d73eb99d9f7f45591fa6a4b99c3a3429565 diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index d8b6e699e..4dced5461 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -11,7 +11,7 @@ use List::Util qw(min max); use Tie::IxHash; use Time::Local qw( timelocal timelocal_nocheck ); use MIME::Entity; -use FS::UID qw( getotaker dbh driver_name ); +use FS::UID qw( dbh driver_name ); use FS::Misc qw( send_email ); use FS::Record qw( qsearch qsearchs fields ); use FS::CurrentUser; @@ -1773,19 +1773,13 @@ sub change { $hash{"change_$_"} = $self->$_() foreach qw( pkgnum pkgpart locationnum ); - if ( $opt->{'cust_location'} && - ( ! $opt->{'locationnum'} || $opt->{'locationnum'} == -1 ) ) { - - if ( ! $opt->{'cust_location'}->locationnum ) { - # not inserted yet - $error = $opt->{'cust_location'}->insert; - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return "inserting cust_location (transaction rolled back): $error"; - } + if ( $opt->{'cust_location'} ) { + $error = $opt->{'cust_location'}->find_or_insert; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return "inserting cust_location (transaction rolled back): $error"; } $opt->{'locationnum'} = $opt->{'cust_location'}->locationnum; - } # whether to override pkgpart checking on the new package @@ -1827,7 +1821,7 @@ sub change { my $custnum = $self->custnum; if ( $opt->{cust_main} ) { my $cust_main = $opt->{cust_main}; - unless ( $cust_main->custnum) { + unless ( $cust_main->custnum ) { my $error = $cust_main->insert; if ( $error ) { $dbh->rollback if $oldAutoCommit; @@ -1837,6 +1831,8 @@ sub change { $custnum = $cust_main->custnum; } + $hash{'contactnum'} = $opt->{'contactnum'} if $opt->{'contactnum'}; + # Create the new package. my $cust_pkg = new FS::cust_pkg { custnum => $custnum,