From: ivan Date: Fri, 13 Aug 2010 19:53:52 +0000 (+0000) Subject: slightly better customer delete; remove links to tickets, RT#9626 X-Git-Tag: freeside_2_1_1^2~148 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=e79d507abfc9edacbc24e19753493974c9f1661a;p=freeside.git slightly better customer delete; remove links to tickets, RT#9626 --- diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 6b34712e9..f7f8facb4 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -1434,6 +1434,41 @@ sub delete { return $errstr; }; + #tickets + + my $ticket_dbh = ''; + if ($conf->config('ticket_system') eq 'RT_Internal') { + $ticket_dbh = $dbh; + } elsif ($conf->config('ticket_system') eq 'RT_External') { + my ($datasrc, $user, $pass) = $conf->config('ticket_system-rt_external_datasrc'); + $ticket_dbh = DBI->connect($datasrc, $user, $pass, { 'ChopBlanks' => 1 }); + #or die "RT_External DBI->connect error: $DBI::errstr\n"; + } + + if ( $ticket_dbh ) { + + my $ticket_sth = $ticket_dbh->prepare( + 'DELETE FROM Links WHERE Target = ?' + ) or do { + my $errstr = $ticket_dbh->errstr; + $dbh->rollback if $oldAutoCommit; + return $errstr; + }; + $ticket_sth->execute('freeside://freeside/cust_main/'.$self->custnum) + or do { + my $errstr = $ticket_sth->errstr; + $dbh->rollback if $oldAutoCommit; + return $errstr; + }; + + #check and see if the customer is the only link on the ticket, and + #if so, set the ticket to deleted status in RT? + #maybe someday, for now this will at least fix tickets not displaying + + } + + #delete the customer record + my $error = $self->SUPER::delete; if ( $error ) { $dbh->rollback if $oldAutoCommit;