diff --git a/lib/NGCP/Panel/Controller/Subscriber.pm b/lib/NGCP/Panel/Controller/Subscriber.pm index 8295ded3b6..21db6e2a94 100644 --- a/lib/NGCP/Panel/Controller/Subscriber.pm +++ b/lib/NGCP/Panel/Controller/Subscriber.pm @@ -324,7 +324,10 @@ sub terminate :Chained('base') :PathPart('terminate') :Args(0) :Does(ACL) :ACLDe ) if($prov_subscriber->voip_pbx_group); $prov_subscriber->delete; } - $subscriber->voip_numbers->delete_all; + $subscriber->voip_numbers->update_all({ + subscriber_id => undef, + reseller_id => undef, + }); $subscriber->update({ status => 'terminated' }); }); $c->flash(messages => [{type => 'success', text => 'Successfully terminated subscriber'}]); diff --git a/lib/NGCP/Panel/Utils/Contract.pm b/lib/NGCP/Panel/Utils/Contract.pm index 7434f06c76..3b5cdd7c32 100644 --- a/lib/NGCP/Panel/Utils/Contract.pm +++ b/lib/NGCP/Panel/Utils/Contract.pm @@ -72,6 +72,10 @@ sub recursively_lock_contract { if($status eq 'terminated') { $subscriber->provisioning_voip_subscriber->delete if($subscriber->provisioning_voip_subscriber); + $subscriber->voip_numbers->update_all({ + reseller_id => undef, + subscriber_id => undef, + }); } elsif($status eq 'locked') { NGCP::Panel::Utils::Subscriber::lock_provisoning_voip_subscriber( c => $c, @@ -123,6 +127,10 @@ sub recursively_lock_contract { if($status eq 'terminated') { $subscriber->provisioning_voip_subscriber->delete if($subscriber->provisioning_voip_subscriber); + $subscriber->voip_numbers->update_all({ + reseller_id => undef, + subscriber_id => undef, + }); } elsif($status eq 'locked') { NGCP::Panel::Utils::Subscriber::lock_provisoning_voip_subscriber( c => $c,