projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ce86623
)
when a service is deleted, transfer its tickets to the owning customer, #25180
author
Mark Wells
<mark@freeside.biz>
Tue, 1 Oct 2013 19:30:58 +0000
(12:30 -0700)
committer
Mark Wells
<mark@freeside.biz>
Tue, 1 Oct 2013 19:32:33 +0000
(12:32 -0700)
FS/FS/cust_svc.pm
patch
|
blob
|
history
diff --git
a/FS/FS/cust_svc.pm
b/FS/FS/cust_svc.pm
index
d6d7d4c
..
9582090
100644
(file)
--- a/
FS/FS/cust_svc.pm
+++ b/
FS/FS/cust_svc.pm
@@
-113,6
+113,10
@@
my $rt_session;
sub delete {
my $self = shift;
sub delete {
my $self = shift;
+
+ my $cust_pkg = $self->cust_pkg;
+ my $custnum = $cust_pkg->custnum if $cust_pkg;
+
my $error = $self->SUPER::delete;
return $error if $error;
my $error = $self->SUPER::delete;
return $error if $error;
@@
-126,7
+130,15
@@
sub delete {
$links->Limit(FIELD => 'Target',
VALUE => 'freeside://freeside/cust_svc/'.$svcnum);
while ( my $l = $links->Next ) {
$links->Limit(FIELD => 'Target',
VALUE => 'freeside://freeside/cust_svc/'.$svcnum);
while ( my $l = $links->Next ) {
- my ($val, $msg) = $l->Delete;
+ my ($val, $msg);
+ if ( $custnum ) {
+ # re-link to point to the customer instead
+ ($val, $msg) =
+ $l->SetTarget('freeside://freeside/cust_main/'.$custnum);
+ } else {
+ # unlinked service
+ ($val, $msg) = $l->Delete;
+ }
# can't do anything useful on error
warn "error unlinking ticket $svcnum: $msg\n" if !$val;
}
# can't do anything useful on error
warn "error unlinking ticket $svcnum: $msg\n" if !$val;
}