diff --git a/lib/NGCP/Panel/Form/Topup/Log.pm b/lib/NGCP/Panel/Form/Topup/Log.pm index 23814450fe..62a9f2e9c9 100644 --- a/lib/NGCP/Panel/Form/Topup/Log.pm +++ b/lib/NGCP/Panel/Form/Topup/Log.pm @@ -56,6 +56,12 @@ has_field 'contract_id' => ( type => 'PosInteger', label => 'The subscriber\'s customer contract.', required => 0, + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::Customers', + allowed_roles => [qw(admin reseller)], + }, + }, ); has_field 'amount' => ( diff --git a/lib/NGCP/Panel/Role/API.pm b/lib/NGCP/Panel/Role/API.pm index 82f39efab4..43d0b2823f 100644 --- a/lib/NGCP/Panel/Role/API.pm +++ b/lib/NGCP/Panel/Role/API.pm @@ -1361,6 +1361,7 @@ sub expand_field { my $form = $class->get_form($c) // return; my $item = $class->item_by_id($c, $id) // return; + my $item_res = $class->resource_from_item($c, $item, $form); my $data = $class->post_process_hal_resource($c, $item, $item_res, $form); diff --git a/lib/NGCP/Panel/Role/API/Contracts.pm b/lib/NGCP/Panel/Role/API/Contracts.pm index ff46322bd2..5ec8130a87 100644 --- a/lib/NGCP/Panel/Role/API/Contracts.pm +++ b/lib/NGCP/Panel/Role/API/Contracts.pm @@ -118,6 +118,8 @@ sub contract_by_id { return $item_rs->find($id); } +sub item_by_id { shift->contract_by_id(@_) } + sub update_contract { my ($self, $c, $contract, $old_resource, $resource, $form, $now) = @_; diff --git a/lib/NGCP/Panel/Utils/ProfilePackages.pm b/lib/NGCP/Panel/Utils/ProfilePackages.pm index dbdd603cf6..dd40cbd2cc 100644 --- a/lib/NGCP/Panel/Utils/ProfilePackages.pm +++ b/lib/NGCP/Panel/Utils/ProfilePackages.pm @@ -216,6 +216,8 @@ sub catchup_contract_balances { my %params = @_; my($c,$contract,$old_package,$now,$suppress_underrun,$is_create_next,$last_notopup_discard_intervals,$last_carry_over_mode,$topup_amount,$profiles_added) = @params{qw/c contract old_package now suppress_underrun is_create_next last_notopup_discard_intervals last_carry_over_mode topup_amount profiles_added/}; + return unless $contract; + my $schema = $c->model('DB'); $contract = NGCP::Panel::Utils::Contract::acquire_contract_rowlocks(schema => $schema, contract_id => $contract->id); $now //= NGCP::Panel::Utils::DateTime::set_local_tz($contract->modify_timestamp);