X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcontact.pm;h=b025892eb6c8607cddc5ad66a35c4eab618c4061;hb=ecb3c59b93784914764d5b73ed1f5ab53dd165d3;hp=5c3981bdb97413fd0451865a88943893b4eb7da6;hpb=7785677b084c8d3d5b0aa61d1dff965ac28e2746;p=freeside.git diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm index 5c3981bdb..b025892eb 100644 --- a/FS/FS/contact.pm +++ b/FS/FS/contact.pm @@ -2,6 +2,7 @@ package FS::contact; use base qw( FS::Record ); use strict; +use vars qw( $skip_fuzzyfiles ); use Scalar::Util qw( blessed ); use FS::Record qw( qsearch qsearchs dbh ); use FS::prospect_main; @@ -11,6 +12,9 @@ use FS::cust_location; use FS::contact_phone; use FS::contact_email; use FS::queue; +use FS::cust_pkg; + +$skip_fuzzyfiles = 0; =head1 NAME @@ -165,7 +169,7 @@ sub insert { } - #unless ( $import || $skip_fuzzyfiles ) { + unless ( $skip_fuzzyfiles ) { #unless ( $import || $skip_fuzzyfiles ) { #warn " queueing fuzzyfiles update\n" # if $DEBUG > 1; $error = $self->queue_fuzzyfiles_update; @@ -173,7 +177,7 @@ sub insert { $dbh->rollback if $oldAutoCommit; return "updating fuzzy search cache: $error"; } - #} + } if ( $self->selfservice_access ) { my $error = $self->send_reset_email( queue=>1 ); @@ -211,6 +215,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 ) { @@ -313,7 +326,7 @@ sub replace { } - #unless ( $import || $skip_fuzzyfiles ) { + unless ( $skip_fuzzyfiles ) { #unless ( $import || $skip_fuzzyfiles ) { #warn " queueing fuzzyfiles update\n" # if $DEBUG > 1; $error = $self->queue_fuzzyfiles_update; @@ -321,7 +334,7 @@ sub replace { $dbh->rollback if $oldAutoCommit; return "updating fuzzy search cache: $error"; } - #} + } if ( ( $old->selfservice_access eq '' && $self->selfservice_access && ! $self->_password @@ -491,6 +504,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) = @_;