diff --git a/lib/NGCP/Panel/Form/Expand.pm b/lib/NGCP/Panel/Form/Expand.pm index e13965758d..2dc39dcd7d 100644 --- a/lib/NGCP/Panel/Form/Expand.pm +++ b/lib/NGCP/Panel/Form/Expand.pm @@ -98,4 +98,74 @@ has_field 'subscriber_id' => ( }, ); +has_field 'package_after_id' => ( + type => 'PosInteger', + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::ProfilePackages', + allowed_roles => [qw(admin reseller)], + }, + }, +); + +has_field 'package_before_id' => ( + type => 'PosInteger', + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::ProfilePackages', + allowed_roles => [qw(admin reseller)], + }, + }, +); + +has_field 'profile_after_id' => ( + type => 'PosInteger', + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::SubscriberProfiles', + allowed_roles => [qw(admin reseller ccareadmin ccare subscriberadmin subscriber)], + }, + }, +); + +has_field 'profile_before_id' => ( + type => 'PosInteger', + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::SubscriberProfiles', + allowed_roles => [qw(admin reseller ccareadmin ccare subscriberadmin subscriber)], + }, + }, +); + +has_field 'contract_balance_after_id' => ( + type => 'PosInteger', + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::CustomerBalances', + allowed_roles => [qw(admin reseller ccareadmin ccare)], + }, + }, +); + +has_field 'contract_balance_before_id' => ( + type => 'PosInteger', + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::CustomerBalances', + allowed_roles => [qw(admin reseller ccareadmin ccare)], + }, + }, +); + +has_field 'voucher_id' => ( + type => 'PosInteger', + element_attr => { + expand => { + class => 'NGCP::Panel::Role::API::Vouchers', + allowed_roles => [qw(admin reseller)], + }, + }, +); + 1; diff --git a/lib/NGCP/Panel/Role/API/Vouchers.pm b/lib/NGCP/Panel/Role/API/Vouchers.pm index 4cd326ec55..7b81ae4a99 100644 --- a/lib/NGCP/Panel/Role/API/Vouchers.pm +++ b/lib/NGCP/Panel/Role/API/Vouchers.pm @@ -74,6 +74,16 @@ sub hal_from_item { return $hal; } +sub resource_from_item { + my($self, $c, $item) = @_; + + if (ref $item eq 'HASH') { + return $item; + } + + return { $item->to_hash }; +} + sub item_by_id { my ($self, $c, $id) = @_; my $item_rs = $self->item_rs($c); diff --git a/lib/NGCP/Panel/Utils/Subscriber.pm b/lib/NGCP/Panel/Utils/Subscriber.pm index 9af1bf799a..79bccdbf9e 100644 --- a/lib/NGCP/Panel/Utils/Subscriber.pm +++ b/lib/NGCP/Panel/Utils/Subscriber.pm @@ -1005,13 +1005,17 @@ sub update_preferences { my $prov_subscriber = $params{prov_subscriber}; my $preferences = $params{preferences}; - foreach my $k(keys %{ $preferences } ) { + foreach my $k (keys %{ $preferences } ) { my $pref = NGCP::Panel::Utils::Preferences::get_usr_preference_rs( c => $c, attribute => $k, prov_subscriber => $prov_subscriber); if($pref->first && $pref->first->attribute->max_occur == 1) { unless(defined $preferences->{$k}) { $pref->first->delete; } else { + # # contract_sound_set + # if ($k eq 'contract_sound_set') { + # next if $pref->first->value; + # } $pref->first->update({ 'value' => $preferences->{$k}, });