summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/Setup.pm15
-rw-r--r--FS/FS/cust_main.pm12
-rw-r--r--FS/FS/cust_main/Location.pm4
3 files changed, 19 insertions, 12 deletions
diff --git a/FS/FS/Setup.pm b/FS/FS/Setup.pm
index e2c5a5a2c..e27b66fc5 100644
--- a/FS/FS/Setup.pm
+++ b/FS/FS/Setup.pm
@@ -209,6 +209,14 @@ sub populate_initial_data {
sub initial_data {
my %opt = @_;
+ my $cust_location = FS::cust_location->new({
+ 'address1' => '1234 System Lane',
+ 'city' => 'Systemtown',
+ 'state' => 'CA',
+ 'zip' => '54321',
+ 'country' => 'US',
+ });
+
#tie my %hash, 'Tie::DxHash',
tie my %hash, 'Tie::IxHash',
@@ -351,14 +359,11 @@ sub initial_data {
'refnum' => 1, #XXX
'first' => 'System',
'last' => 'Accounts',
- 'address1' => '1234 System Lane',
- 'city' => 'Systemtown',
- 'state' => 'CA',
- 'zip' => '54321',
- 'country' => 'US',
'payby' => 'COMP',
'payinfo' => 'system', #or something
'paydate' => '1/2037',
+ 'bill_location' => $cust_location,
+ 'ship_location' => $cust_location,
},
],
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 62cb837a2..d4ddacc23 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -400,6 +400,9 @@ sub insert {
foreach my $l (qw(bill_location ship_location)) {
my $loc = delete $self->hashref->{$l};
# XXX if we're moving a prospect's locations, do that here
+ if ( !$loc ) {
+ return "$l not set";
+ }
if ( !$loc->locationnum ) {
# warn the location that we're going to insert it with no custnum
@@ -413,8 +416,8 @@ sub insert {
return "$error (in $label location)";
}
}
- elsif ( $loc->custnum != $self->custnum or $loc->prospectnum > 0 ) {
- # this shouldn't happen
+ elsif ( ($loc->custnum || 0) > 0 or $loc->prospectnum ) {
+ # then it somehow belongs to another customer--shouldn't happen
$dbh->rollback if $oldAutoCommit;
return "$l belongs to customer ".$loc->custnum;
}
@@ -1783,8 +1786,6 @@ sub check {
|| $self->ut_textn('stateid')
|| $self->ut_textn('stateid_state')
|| $self->ut_textn('invoice_terms')
- || $self->ut_alphan('geocode')
- || $self->ut_alphan('district')
|| $self->ut_floatn('cdr_termination_percentage')
|| $self->ut_floatn('credit_limit')
|| $self->ut_numbern('billday')
@@ -2123,7 +2124,8 @@ Returns all locations (see L<FS::cust_location>) for this customer.
sub cust_location {
my $self = shift;
- qsearch('cust_location', { 'custnum' => $self->custnum } );
+ qsearch('cust_location', { 'custnum' => $self->custnum,
+ 'prospectnum' => '' } );
}
=item cust_contact
diff --git a/FS/FS/cust_main/Location.pm b/FS/FS/cust_main/Location.pm
index d1d6d67ff..8e30bb65b 100644
--- a/FS/FS/cust_main/Location.pm
+++ b/FS/FS/cust_main/Location.pm
@@ -8,7 +8,7 @@ use FS::cust_location;
use Carp qw(carp);
-$DEBUG = 1;
+$DEBUG = 0;
$me = '[FS::cust_main::Location]';
my $init = 0;
@@ -146,7 +146,7 @@ sub _upgrade_data {
# just in case someone still doesn't have these
if ( !$phone_type{$_}->phonetypenum ) {
$error = $phone_type{$_}->insert;
- die "error creating phone type '$_': $error";
+ die "error creating phone type '$_': $error" if $error;
}
}