diff --git a/lib/NGCP/Panel/Controller/API/SubscribersItem.pm b/lib/NGCP/Panel/Controller/API/SubscribersItem.pm index d2b4c69ca5..84bcef7926 100644 --- a/lib/NGCP/Panel/Controller/API/SubscribersItem.pm +++ b/lib/NGCP/Panel/Controller/API/SubscribersItem.pm @@ -261,7 +261,8 @@ sub DELETE :Allow { my $_resource = $self->resource_from_item($c, $subscriber, $_form); return $self->hal_from_item($c,$subscriber,$_resource,$_form); }); - NGCP::Panel::Utils::Subscriber::terminate(c => $c, subscriber => $subscriber); + NGCP::Panel::Utils::Subscriber::terminate(c => $c, subscriber => $subscriber, + skip_locked => ($c->request->header('X-Delay-Commit') ? 0 : 1),); $guard->commit; diff --git a/lib/NGCP/Panel/Utils/ProfilePackages.pm b/lib/NGCP/Panel/Utils/ProfilePackages.pm index 69e0444f6f..dbd809c476 100644 --- a/lib/NGCP/Panel/Utils/ProfilePackages.pm +++ b/lib/NGCP/Panel/Utils/ProfilePackages.pm @@ -55,12 +55,12 @@ use constant API_DEFAULT_TOPUP_REQUEST_TOKEN => 'api'; sub get_contract_balance { my %params = @_; - my($c,$contract,$now,$schema,$stime,$etime) = @params{qw/c contract now schema stime etime/}; + my($c,$contract,$now,$schema,$stime,$etime,$skip_locked) = @params{qw/c contract now schema stime etime skip_locked/}; #$schema //= $c->model('DB'); $now //= NGCP::Panel::Utils::DateTime::current_local; - my $balance = catchup_contract_balances(c => $c, contract => $contract, now => $now); + my $balance = catchup_contract_balances(c => $c, contract => $contract, now => $now, skip_locked => $skip_locked); if (defined $stime || defined $etime) { #supported for backward compat only $balance = $contract->contract_balances->search({ diff --git a/lib/NGCP/Panel/Utils/Subscriber.pm b/lib/NGCP/Panel/Utils/Subscriber.pm index e2cb4c400e..96b4c1051c 100644 --- a/lib/NGCP/Panel/Utils/Subscriber.pm +++ b/lib/NGCP/Panel/Utils/Subscriber.pm @@ -1796,7 +1796,7 @@ sub terminate { $schema->txn_do(sub { NGCP::Panel::Utils::Contract::acquire_contract_rowlocks( - c => $c, schema => $schema, contract_id => $subscriber->contract->id); + c => $c, schema => $schema, contract_id => $subscriber->contract->id, skip_locked => $params{skip_locked} ); my $prov_subscriber = $subscriber->provisioning_voip_subscriber;