summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2015-03-10 13:10:07 -0700
committerMark Wells <mark@freeside.biz>2015-03-10 13:10:07 -0700
commitc70ef4f4ec2a61b32c7e6aee40b3130cfd4381e5 (patch)
treefdca7e1f183cccbe88a9e50dc8db58926f718f81
parentc2e5e744cf218f9a388bc3073bfe5d9cc86b5ff3 (diff)
correctly choose a default locationnum for prospects, #32489, #25343
-rw-r--r--FS/FS/Template_Mixin.pm5
-rw-r--r--FS/FS/quotation_pkg.pm6
2 files changed, 9 insertions, 2 deletions
diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index fce1a3ffe..a5fb5579f 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -3026,7 +3026,10 @@ sub _items_cust_bill_pkg {
}) || $cust_main;
$default_locationnum = $h_cust_main->ship_locationnum;
} elsif ( $self->prospectnum ) {
- $default_locationnum = $self->prospect_main->cust_location->locationnum;
+ my $cust_location = qsearchs('cust_location',
+ { prospectnum => $self->prospectnum,
+ disabled => '' });
+ $default_locationnum = $cust_location->locationnum if $cust_location;
}
my @b = (); # accumulator for the line item hashes that we'll return
diff --git a/FS/FS/quotation_pkg.pm b/FS/FS/quotation_pkg.pm
index dae459e29..dcd68c95d 100644
--- a/FS/FS/quotation_pkg.pm
+++ b/FS/FS/quotation_pkg.pm
@@ -199,7 +199,11 @@ sub check {
if ($quotation->custnum) {
$self->set('locationnum', $quotation->cust_main->ship_locationnum);
} elsif ($quotation->prospectnum) {
- $self->set('locationnum', $quotation->prospect_main->locationnum);
+ # use the first non-disabled location for that prospect
+ my $cust_location = qsearchs('cust_location',
+ { prospectnum => $quotation->prospectnum,
+ disabled => '' });
+ $self->set('locationnum', $cust_location->locationnum) if $cust_location;
} # else the quotation is invalid
}