correctly choose a default locationnum for prospects, #32489, #25343
authorMark Wells <mark@freeside.biz>
Tue, 10 Mar 2015 20:10:07 +0000 (13:10 -0700)
committerMark Wells <mark@freeside.biz>
Tue, 10 Mar 2015 20:10:07 +0000 (13:10 -0700)
FS/FS/Template_Mixin.pm
FS/FS/quotation_pkg.pm

index fce1a3f..a5fb557 100644 (file)
@@ -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
index dae459e..dcd68c9 100644 (file)
@@ -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
   }