projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
65b6390
)
on 4.x upgrade, migrate existing customer-contact links before assigning them as...
author
Mark Wells
<mark@freeside.biz>
Mon, 6 Jun 2016 23:27:01 +0000
(16:27 -0700)
committer
Mark Wells
<mark@freeside.biz>
Mon, 6 Jun 2016 23:39:39 +0000
(16:39 -0700)
FS/FS/contact.pm
patch
|
blob
|
history
diff --git
a/FS/FS/contact.pm
b/FS/FS/contact.pm
index
f6d9d03
..
fd3e9d7
100644
(file)
--- a/
FS/FS/contact.pm
+++ b/
FS/FS/contact.pm
@@
-112,10
+112,10
@@
sub table { 'contact'; }
Adds this record to the database. If there is an error, returns the error,
otherwise returns false.
Adds this record to the database. If there is an error, returns the error,
otherwise returns false.
-If the object has an C<emailaddress> field, L<FS::contact_email> records
will
-
be created for each (comma-separated) email address in that field. If any o
f
-these coincide with an existing email address, this contact will be merged with
-the contact with that address.
+If the object has an C<emailaddress> field, L<FS::contact_email> records
+
will be created for each (comma-separated) email address in that field. I
f
+any of these coincide with an existing email address, this contact will be
+
merged with
the contact with that address.
Then, if the object has any fields named C<phonetypenumN> an
L<FS::contact_phone> record will be created for each of them. Those fields
Then, if the object has any fields named C<phonetypenumN> an
L<FS::contact_phone> record will be created for each of them. Those fields
@@
-206,6
+206,10
@@
sub insert {
}
my $cust_contact = '';
}
my $cust_contact = '';
+ # if $self->custnum was set, then the customer-specific properties
+ # (custnum, classnum, invoice_dest, selfservice_access, comment) are in
+ # pseudo-fields, and are now in %link_hash. otherwise, ignore all those
+ # fields.
if ( $custnum ) {
my %hash = ( 'contactnum' => $self->contactnum,
'custnum' => $custnum,
if ( $custnum ) {
my %hash = ( 'contactnum' => $self->contactnum,
'custnum' => $custnum,
@@
-337,6
+341,8
@@
sub delete {
}
}
}
}
+ # if $self->custnum was set, then we're removing the contact from this
+ # customer.
if ( $self->custnum ) {
my $cust_contact = qsearchs('cust_contact', {
'contactnum' => $self->contactnum,
if ( $self->custnum ) {
my $cust_contact = qsearchs('cust_contact', {
'contactnum' => $self->contactnum,
@@
-438,6
+444,10
@@
sub replace {
}
my $cust_contact = '';
}
my $cust_contact = '';
+ # if $self->custnum was set, then the customer-specific properties
+ # (custnum, classnum, invoice_dest, selfservice_access, comment) are in
+ # pseudo-fields, and are now in %link_hash. otherwise, ignore all those
+ # fields.
if ( $custnum ) {
my %hash = ( 'contactnum' => $self->contactnum,
'custnum' => $custnum,
if ( $custnum ) {
my %hash = ( 'contactnum' => $self->contactnum,
'custnum' => $custnum,
@@
-943,6
+953,20
@@
use FS::upgrade_journal;
sub _upgrade_data { #class method
my ($class, %opts) = @_;
sub _upgrade_data { #class method
my ($class, %opts) = @_;
+ # before anything else, migrate contact.custnum to cust_contact records
+ unless ( FS::upgrade_journal->is_done('contact_invoice_dest') ) {
+
+ local($skip_fuzzyfiles) = 1;
+
+ foreach my $contact (qsearch('contact', {})) {
+ my $error = $contact->replace;
+ die $error if $error;
+ }
+
+ FS::upgrade_journal->set_done('contact_invoice_dest');
+ }
+
+
# always migrate cust_main_invoice records over
local $FS::cust_main::import = 1; # override require_phone and such
my $search = FS::Cursor->new('cust_main_invoice', {});
# always migrate cust_main_invoice records over
local $FS::cust_main::import = 1; # override require_phone and such
my $search = FS::Cursor->new('cust_main_invoice', {});
@@
-975,18
+999,6
@@
sub _upgrade_data { #class method
}
}
}
}
- unless ( FS::upgrade_journal->is_done('contact_invoice_dest') ) {
-
- local($skip_fuzzyfiles) = 1;
-
- foreach my $contact (qsearch('contact', {})) {
- my $error = $contact->replace;
- die $error if $error;
- }
-
- FS::upgrade_journal->set_done('contact_invoice_dest');
- }
-
}
=back
}
=back