summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/contact.pm16
1 files changed, 16 insertions, 0 deletions
diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm
index 5c3981bdb..4a1fb39ba 100644
--- a/FS/FS/contact.pm
+++ b/FS/FS/contact.pm
@@ -11,6 +11,7 @@ use FS::cust_location;
use FS::contact_phone;
use FS::contact_email;
use FS::queue;
+use FS::cust_pkg;
=head1 NAME
@@ -211,6 +212,15 @@ sub delete {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
+ foreach my $cust_pkg ( $self->cust_pkg ) {
+ $cust_pkg->contactnum('');
+ my $error = $cust_pkg->replace;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+
foreach my $object ( $self->contact_phone, $self->contact_email ) {
my $error = $object->delete;
if ( $error ) {
@@ -491,6 +501,12 @@ sub cust_main {
qsearchs('cust_main', { 'custnum' => $self->custnum } );
}
+sub cust_pkg {
+ my $self = shift;
+ qsearch('cust_pkg', { 'contactnum' => $self->contactnum } );
+}
+
+
sub by_selfservice_email {
my($class, $email) = @_;