[freeside-commits] branch master updated. dacdaebc0eeacb4705dd5d5f09563d711e81dfd3

Ivan ivan at 420.am
Wed Mar 8 20:38:19 PST 2017


The branch, master has been updated
       via  dacdaebc0eeacb4705dd5d5f09563d711e81dfd3 (commit)
      from  492d9aec5230e9c562a7d1a78f4f24d7a27aceb8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit dacdaebc0eeacb4705dd5d5f09563d711e81dfd3
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Mar 8 20:38:18 2017 -0800

    fix upgrade for cust_msg when a customer was deleted, RT#74298

diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm
index 628b6f2..7276638 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 5309e25..2f78f39 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
 
- at 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>.

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Upgrade.pm  |    1 +
 FS/FS/cust_msg.pm |   23 +++++++++++++++++++----
 2 files changed, 20 insertions(+), 4 deletions(-)




More information about the freeside-commits mailing list