X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FPackages.pm;h=152c496d18c3ddc05ef61d64bc3d7e4814fc045c;hb=3d0a1bb06b895c5be6e3f0517d355442a6b1e125;hp=41ef2289422a8d002fc57331ad962b03292f00ec;hpb=1daf1a670d3cdfb307271fb7c7c98c83fb1fb464;p=freeside.git diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm index 41ef22894..152c496d1 100644 --- a/FS/FS/cust_main/Packages.pm +++ b/FS/FS/cust_main/Packages.pm @@ -130,13 +130,10 @@ sub order_pkg { } elsif ( $opt->{'cust_location'} ) { - if ( ! $opt->{'cust_location'}->locationnum ) { - # not inserted yet - my $error = $opt->{'cust_location'}->insert; - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return "inserting cust_location (transaction rolled back): $error"; - } + my $error = $opt->{'cust_location'}->find_or_insert; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return "inserting cust_location (transaction rolled back): $error"; } $cust_pkg->locationnum($opt->{'cust_location'}->locationnum); @@ -186,7 +183,6 @@ sub order_pkg { 'pkglinknum' => $link->pkglinknum, 'custnum' => $self->custnum, 'main_pkgnum' => $cust_pkg->pkgnum, - 'locationnum' => $cust_pkg->locationnum, # try to prevent as many surprises as possible 'pkgbatch' => $cust_pkg->pkgbatch, 'start_date' => $cust_pkg->start_date, @@ -199,7 +195,8 @@ sub order_pkg { 'waive_setup' => $cust_pkg->waive_setup, 'allow_pkgpart' => $opt->{'allow_pkgpart'}, }); - $error = $self->order_pkg('cust_pkg' => $pkg); + $error = $self->order_pkg('cust_pkg' => $pkg, + 'locationnum' => $cust_pkg->locationnum); if ( $error ) { $dbh->rollback if $oldAutoCommit; return "inserting supplemental package: $error";