search for / get by external ID for subscribers, accounts, customers

3.2
Daniel Tiefnig 15 years ago
parent 11ea48cdba
commit 30a0357b6f

@ -28,6 +28,10 @@ sub index : Private {
$c->stash->{refill_account_id} = $c->session->{refill_account_id};
delete $c->session->{refill_account_id};
}
if(defined $c->session->{refill_external_id}) {
$c->stash->{refill_external_id} = $c->session->{refill_external_id};
delete $c->session->{refill_external_id};
}
return 1;
}
@ -65,6 +69,39 @@ sub getbyid : Local {
return;
}
=head2 getbyextid
Search for entered external ID and redirect.
=cut
sub getbyextid : Local {
my ( $self, $c ) = @_;
my $external_id = $c->request->params->{external_id};
if(length $external_id) {
if($c->model('Provisioning')->call_prov( $c, 'billing', 'get_voip_account_by_external_id',
{ external_id => $external_id },
\$c->session->{voip_account}
))
{
$c->response->redirect("/account/detail?account_id=". $c->session->{voip_account}{id});
return;
}
delete $c->session->{prov_error} if $c->session->{prov_error} eq 'Client.Voip.NoSuchAccount';
$c->session->{messages} = { extidsearcherr => 'Client.Voip.NoSuchAccount' };
} else {
$c->session->{messages} = { extidsearcherr => 'Web.Syntax.MissingExternalID' };
}
$c->session->{refill_external_id} = $external_id;
$c->response->redirect("/account");
return;
}
=head2 detail
Show account details.

@ -38,6 +38,7 @@ sub search : Local {
$c->stash->{template} = 'tt/customer.tt';
my $filter;
my $extid_filter;
my $limit = 10;
my $offset = $c->request->params->{offset} || 0;
$offset = 0 if $offset !~ /^\d+$/;
@ -45,18 +46,27 @@ sub search : Local {
if($c->request->params->{use_session}) {
$filter = $c->session->{search_filter}
if defined $c->session->{search_filter};
$extid_filter = $c->session->{extid_search_filter}
if defined $c->session->{extid_search_filter};
} else {
$filter = $c->request->params->{search_string} || '';
$c->session->{search_filter} = $filter;
$extid_filter = $c->request->params->{extid_search_string} || '';
$c->session->{extid_search_filter} = $extid_filter;
}
$c->stash->{search_string} = $filter;
$filter =~ s/\*/\%/;
$filter =~ s/\?/\_/;
$c->stash->{extid_search_string} = $extid_filter;
$extid_filter =~ s/\*/\%/;
$extid_filter =~ s/\?/\_/;
my $customer_list;
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'search_customers',
{ filter => { anything => '%'.$filter.'%',
{ filter => {
length $filter ? (anything => '%'.$filter.'%')
: (external_id => '%'.$extid_filter.'%'),
limit => $limit,
offset => $limit * $offset,
} },

@ -49,7 +49,7 @@ sub search : Local {
%exact = %{ $c->session->{exact_filter} }
if defined $c->session->{exact_filter};
} else {
foreach my $sf (qw(username domain number uuid)) {
foreach my $sf (qw(username domain number uuid external_id)) {
if(( defined $c->request->params->{'search_'.$sf}
and length $c->request->params->{'search_'.$sf})
or $c->request->params->{'exact_'.$sf})
@ -63,7 +63,7 @@ sub search : Local {
$c->session->{exact_filter} = { %exact };
}
foreach my $sf (qw(username domain number uuid)) {
foreach my $sf (qw(username domain number uuid external_id)) {
# set values for webform
$c->stash->{'exact_'.$sf} = $exact{$sf};
$c->stash->{'search_'.$sf} = $filter{$sf};

@ -5,6 +5,13 @@
</form>
[% IF messages.accsearcherr %]<div class="error">[% messages.accsearcherr %]</div>[% END %]
<h3>Get by External ID</h3>
<form action="/account/getbyextid" method="GET">
<input type="text" id="external_id" name="external_id" value="[% refill_external_id %]" />
<button class="button-search" name="submit">Search</button>
</form>
[% IF messages.extidsearcherr %]<div class="error">[% messages.extidsearcherr %]</div>[% END %]
<h3>Search by subscriber</h3>
<form action="/subscriber/search" method="post">
<input type="text" id="search_subscriber" name="search_username" value="[% search_string %]" />

@ -7,6 +7,14 @@
[% IF messages.accgeterr %]<div class="error">[% messages.accgeterr %]</div>[% END %]
</div>
<h3>Search by external ID</h3>
<div class="p1">
<form action="/customer/search" method="post">
<input type="text" id="extid_search_string" name="extid_search_string" value="[% extid_search_string %]" />
<input type="submit" value="Search &#187;" class="but ui-corner-all" />
</form>
</div>
<h3>Search by contacts</h3>
<div class="p1">
<form action="/customer/search" method="post">

@ -57,6 +57,20 @@
</div>
<br/>
<div class="span-3">
<label class="search_label" for="search_by_external_id">External ID:</label>
</div>
<div class="span-5">
<input type="text" id="search_by_external_id" name="search_external_id" value="[% search_external_id %]"
title="search by the subscriber's external ID, wildcards allowed" />
</div>
<div class="span-3 last">
<input type="checkbox" class="checkbox" id="exact_external_id" name="exact_external_id" [% IF exact_external_id %]checked="checked"[% END %]
title="if checked, the search string will not be surrounded by wildcards" />
<label for="exact_external_id">exact match</label>
</div>
<br/>
<div class="span-6 append-5 last">
<input type="checkbox" class="checkbox" id="include_terminated" name="terminated" [% IF terminated %]checked="checked"[% END %]
title="if checked, the search result will include terminated subscribers" />

Loading…
Cancel
Save