diff options
author | Ivan Kohler <ivan@freeside.biz> | 2017-03-08 20:38:18 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2017-03-08 20:38:18 -0800 |
commit | dacdaebc0eeacb4705dd5d5f09563d711e81dfd3 (patch) | |
tree | 7e690842dff5fb4f82ea3ff7d156f6a0bcd786ed | |
parent | 492d9aec5230e9c562a7d1a78f4f24d7a27aceb8 (diff) |
fix upgrade for cust_msg when a customer was deleted, RT#74298
-rw-r--r-- | FS/FS/Upgrade.pm | 1 | ||||
-rw-r--r-- | FS/FS/cust_msg.pm | 23 |
2 files changed, 20 insertions, 4 deletions
diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index 628b6f2bb..727663893 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -567,6 +567,7 @@ sub upgrade_schema_data { #remove records referencing removed things with their FKs 'pkg_referral' => [], 'cust_bill_pkg_discount' => [], + 'cust_msg' => [], #update records referencing removed things with their FKs 'cust_pkg' => [], ; diff --git a/FS/FS/cust_msg.pm b/FS/FS/cust_msg.pm index 5309e2533..2f78f3945 100644 --- a/FS/FS/cust_msg.pm +++ b/FS/FS/cust_msg.pm @@ -1,10 +1,9 @@ package FS::cust_msg; +use base qw( FS::cust_main_Mixin FS::Record ); use strict; -use base qw( FS::cust_main_Mixin FS::Record ); -use FS::Record qw( qsearch qsearchs ); +use FS::Record qw( dbh ); use MIME::Parser; -use vars qw( @statuses ); =head1 NAME @@ -72,7 +71,7 @@ sub table { 'cust_msg'; } sub nohistory_fields { ('header', 'body'); } # history is kind of pointless on this table -@statuses = qw( prepared sent failed ); +our @statuses = qw( prepared sent failed ); =item insert @@ -225,6 +224,22 @@ sub process_send { die $error if $error; } +sub _upgrade_schema { + my ($class, %opts) = @_; + + my $sql = ' + DELETE FROM cust_msg WHERE NOT EXISTS + ( SELECT 1 FROM cust_main WHERE cust_main.custnum = cust_msg.custnum ) + '; + + my $sth = dbh->prepare($sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + ''; + +} + +=back + =head1 SEE ALSO L<FS::msg_template>, L<FS::cust_main>, L<FS::Record>. |