disabled
-=item invoice_dest
-
-empty, or 'Y' if email invoices should be sent to this contact
-
=back
=head1 METHODS
- classnum
- comment
- selfservice_access
+- invoice_dest
=cut
$self->custnum('');
my %link_hash = ();
- for (qw( classnum comment selfservice_access )) {
+ for (qw( classnum comment selfservice_access invoice_dest )) {
$link_hash{$_} = $self->get($_);
$self->$_('');
}
}
}
- my $error = $self->SUPER::delete;
+ my $error = $self->delete_password_history
+ || $self->SUPER::delete;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return $error;
$self->custnum('');
my %link_hash = ();
- for (qw( classnum comment selfservice_access )) {
+ for (qw( classnum comment selfservice_access invoice_dest )) {
$link_hash{$_} = $self->get($_);
$self->$_('');
}
|| $self->ut_textn('_password')
|| $self->ut_enum('_password_encoding', [ '', 'bcrypt'])
|| $self->ut_enum('disabled', [ '', 'Y' ])
- || $self->ut_flag('invoice_dest')
;
return $error if $error;
# 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', {});
+ my %custnum_dest;
while (my $cust_main_invoice = $search->fetch) {
my $custnum = $cust_main_invoice->custnum;
my $dest = $cust_main_invoice->dest;
if !$svc_acct;
$dest = $svc_acct->email;
}
+ push @{ $custnum_dest{$custnum} ||= [] }, $dest;
- my $error = $cust_main->replace( [ $dest ] );
-
+ my $error = $cust_main_invoice->delete;
if ( $error ) {
- die "custnum $custnum, invoice destination $dest, creating contact: $error\n";
+ die "custnum $custnum, cleaning up cust_main_invoice: $error\n";
}
+ }
- $error = $cust_main_invoice->delete;
- die "custnum $custnum, cleaning up cust_main_invoice: $error\n" if $error;
+ foreach my $custnum (keys %custnum_dest) {
+ my $dests = $custnum_dest{$custnum};
+ my $cust_main = FS::cust_main->by_key($custnum);
+ my $error = $cust_main->replace( invoicing_list => $dests );
+ if ( $error ) {
+ die "custnum $custnum, creating contact: $error\n";
+ }
+ }
- } # while $search->fetch
+ unless ( FS::upgrade_journal->is_done('contact_invoice_dest') ) {
- unless ( FS::upgrade_journal->is_done('contact__DUPEMAIL') ) {
+ local($skip_fuzzyfiles) = 1;
foreach my $contact (qsearch('contact', {})) {
my $error = $contact->replace;
die $error if $error;
}
- FS::upgrade_journal->set_done('contact__DUPEMAIL');
+ FS::upgrade_journal->set_done('contact_invoice_dest');
}
}