diff --git a/lib/NGCP/Panel/Controller/Subscriber.pm b/lib/NGCP/Panel/Controller/Subscriber.pm index c2740fa074..6fa5eb135d 100644 --- a/lib/NGCP/Panel/Controller/Subscriber.pm +++ b/lib/NGCP/Panel/Controller/Subscriber.pm @@ -22,7 +22,6 @@ use NGCP::Panel::Utils::Fax; use NGCP::Panel::Utils::Kamailio; use NGCP::Panel::Utils::Events; use NGCP::Panel::Utils::ProfilePackages qw(); -use NGCP::Panel::Form::Subscriber; use NGCP::Panel::Form::SubscriberEdit; use NGCP::Panel::Form::CCMapEntries; use NGCP::Panel::Form::Customer::PbxSubscriberEdit; @@ -134,95 +133,6 @@ sub root :Chained('sub_list') :PathPart('') :Args(0) :Does(ACL) :ACLDetachTo('/d my ($self, $c) = @_; } - -sub create_list :Chained('sub_list') :PathPart('create') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { - my ($self, $c) = @_; - - my $posted = ($c->request->method eq 'POST'); - my $params = {}; - $params = merge($params, $c->session->{created_objects}); - my $form = NGCP::Panel::Form::Subscriber->new(ctx => $c); - $form->process( - posted => $posted, - params => $c->request->params, - item => $params, - ); - NGCP::Panel::Utils::Navigation::check_form_buttons( - c => $c, - form => $form, - fields => { - 'domain.create' => $c->uri_for('/domain/create'), - 'reseller.create' => $c->uri_for('/reseller/create'), - 'contract.create' => $c->uri_for('/customer/create'), - }, - back_uri => $c->req->uri, - ); - if($form->validated) { - my $schema = $c->model('DB'); - try { - $schema->set_transaction_isolation('READ COMMITTED'); - $schema->txn_do(sub { - my $preferences = {}; - my $contract_rs = NGCP::Panel::Utils::Contract::get_customer_rs(c => $c, contract_id => $form->params->{contract}{id} ); - my $contract = $contract_rs->find({ - 'me.id' => $form->params->{contract}{id}, - }); - - - my $billing_mapping = $contract->billing_mappings->find($contract->get_column('bmid')); - - if($contract->external_id) { - $preferences->{ext_contract_id} = $contract->external_id; - } - if(defined $form->params->{external_id}) { - $preferences->{ext_subscriber_id} = $form->params->{external_id}; - } - if($billing_mapping->billing_profile->prepaid) { - $preferences->{prepaid} = 1; - } - - my $billing_subscriber = NGCP::Panel::Utils::Subscriber::create_subscriber( - c => $c, - schema => $schema, - contract => $contract, - params => $form->params, - admin_default => 0, - preferences => $preferences, - ); #nested txn_do is ok. - $billing_subscriber->discard_changes; - - if($billing_subscriber->status eq 'locked') { - NGCP::Panel::Utils::Subscriber::lock_provisoning_voip_subscriber( - c => $c, - prov_subscriber => $billing_subscriber->provisioning_voip_subscriber, - level => 4, - ); - } else { - NGCP::Panel::Utils::ProfilePackages::underrun_lock_subscriber(c => $c, subscriber => $billing_subscriber); - } - - delete $c->session->{created_objects}->{reseller}; - delete $c->session->{created_objects}->{contract}; - delete $c->session->{created_objects}->{domain}; - }); - NGCP::Panel::Utils::Message::info( - c => $c, - desc => $c->loc('Subscriber successfully created!'), - ); - } catch($e) { - NGCP::Panel::Utils::Message::error( - c => $c, - error => $e, - desc => $c->loc('Failed to create subscriber'), - ); - } - NGCP::Panel::Utils::Navigation::back_or($c, $c->uri_for('/subscriber')); - } - - $c->stash(create_flag => 1); - $c->stash(form => $form) -} - sub base :Chained('sub_list') :PathPart('') :CaptureArgs(1) { my ($self, $c, $subscriber_id) = @_; diff --git a/share/templates/subscriber/list.tt b/share/templates/subscriber/list.tt index 3c448d5ddc..d49d1b8c5f 100644 --- a/share/templates/subscriber/list.tt +++ b/share/templates/subscriber/list.tt @@ -20,9 +20,6 @@ { name = c.loc('Details'), uri = "/subscriber/'+full.id+'/details", class = 'btn-small btn-tertiary', icon = 'icon-th-list', condition = 'full.status != "terminated"' }, { name = c.loc('Customer'), uri = "/customer/'+full.contract_id+'/details", class = 'btn-small btn-tertiary', icon = 'icon-user' }, ]; - helper.top_buttons = [ - { name = c.loc('Create Subscriber'), uri = c.uri_for_action('/subscriber/create_list'), icon = 'icon-star' }, - ]; ELSE; helper.dt_buttons = [ { name = c.loc('Details'), uri = "/subscriber/'+full.id+'/details", class = 'btn-small btn-tertiary', icon = 'icon-th-list', condition = 'full.status != "terminated"' },