projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
be03a0f
)
handle census tract properly in location upgrade, #23422
author
Mark Wells
<mark@freeside.biz>
Wed, 5 Jun 2013 02:03:08 +0000
(19:03 -0700)
committer
Mark Wells
<mark@freeside.biz>
Wed, 5 Jun 2013 02:03:08 +0000
(19:03 -0700)
FS/FS/cust_main/Location.pm
patch
|
blob
|
history
diff --git
a/FS/FS/cust_main/Location.pm
b/FS/FS/cust_main/Location.pm
index
bd0af53
..
22feaf9
100644
(file)
--- a/
FS/FS/cust_main/Location.pm
+++ b/
FS/FS/cust_main/Location.pm
@@
-157,19
+157,15
@@
sub _upgrade_data {
my $bill_location = FS::cust_location->new(
{
custnum => $custnum,
my $bill_location = FS::cust_location->new(
{
custnum => $custnum,
- map { $_ => $cust_main->get($_) } location_fields()
+ map { $_ => $cust_main->get($_) } location_fields()
,
}
);
}
);
- $error = $bill_location->insert;
- die "error migrating billing address for customer $custnum: $error"
- if $error;
-
- $cust_main->set(bill_locationnum => $bill_location->locationnum);
+ $bill_location->set('censustract', ''); # properly goes with ship_location
+ my $ship_location = $bill_location; # until proven otherwise
if ( $cust_main->get('ship_address1') ) {
# detect duplicates
my $same = 1;
if ( $cust_main->get('ship_address1') ) {
# detect duplicates
my $same = 1;
- my $ship_location;
foreach (location_fields()) {
if ( length($cust_main->get("ship_$_")) and
$cust_main->get($_) ne $cust_main->get("ship_$_") ) {
foreach (location_fields()) {
if ( length($cust_main->get("ship_$_")) and
$cust_main->get($_) ne $cust_main->get("ship_$_") ) {
@@
-177,21
+173,16
@@
sub _upgrade_data {
}
}
}
}
- if ( $same ) {
- $ship_location = $bill_location;
- } else {
+ if ( !$same ) {
$ship_location = FS::cust_location->new(
{
custnum => $custnum,
map { $_ => $cust_main->get("ship_$_") } location_fields()
}
);
$ship_location = FS::cust_location->new(
{
custnum => $custnum,
map { $_ => $cust_main->get("ship_$_") } location_fields()
}
);
- $error = $ship_location->insert;
- die "error migrating service address for customer $custnum: $error"
- if $error;
- }
+ } # else it stays equal to $bill_location
- $
cust_main->set(ship_locationnum => $ship_location->locationnum
);
+ $
ship_location->set('censustract', $cust_main->get('censustract')
);
# Step 2: Extract shipping address contact fields into contact
my %unlike = map { $_ => 1 }
# Step 2: Extract shipping address contact fields into contact
my %unlike = map { $_ => 1 }
@@
-233,10
+224,20
@@
sub _upgrade_data {
$cust_main->set("ship_$_" => '') foreach qw(last first company);
} #if %unlike
} #if ship_address1
$cust_main->set("ship_$_" => '') foreach qw(last first company);
} #if %unlike
} #if ship_address1
- else {
- $cust_main->set(ship_locationnum => $bill_location->locationnum);
+ $error = $bill_location->insert;
+ die "error migrating billing address for customer $custnum: $error"
+ if $error;
+
+ $cust_main->set(bill_locationnum => $bill_location->locationnum);
+
+ if (!$ship_location->locationnum) {
+ $error = $ship_location->insert;
+ die "error migrating service address for customer $custnum: $error"
+ if $error;
}
}
+ $cust_main->set(ship_locationnum => $ship_location->locationnum);
+
# Step 3: Wipe the migrated fields and update the cust_main
$cust_main->set("ship_$_" => '') foreach location_fields();
# Step 3: Wipe the migrated fields and update the cust_main
$cust_main->set("ship_$_" => '') foreach location_fields();