} 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);
'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,
'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";