Implement direction for billing fees.

remotes/svn/3.6
Andreas Granig 13 years ago
parent 4e2e6e45a5
commit dae8798465

@ -458,11 +458,13 @@ sub search_fees : Local {
$c->stash->{field_order} = join ', ', eval { @{$c->config->{fees_csv}{element_order}} };
my $bilprof = $c->request->params->{bilprof};
my $prof;
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_billing_profile',
{ handle => $bilprof },
\$c->stash->{bilprof}
\$prof
);
$c->stash->{bilprof} = $prof;
my $limit = 10;
my %filter;
@ -478,7 +480,7 @@ sub search_fees : Local {
delete $c->session->{feeerr};
}
} else {
foreach my $sf (qw(destination zone zone_detail)) {
foreach my $sf (qw(destination direction zone zone_detail)) {
if(( defined $c->request->params->{'search_'.$sf}
and length $c->request->params->{'search_'.$sf})
or $c->request->params->{'exact_'.$sf})
@ -491,12 +493,12 @@ sub search_fees : Local {
$c->session->{exact_filter} = { %exact };
}
foreach my $sf (qw(destination zone zone_detail)) {
foreach my $sf (qw(destination direction zone zone_detail)) {
# set values for webform
$c->stash->{'exact_'.$sf} = $exact{$sf};
$c->stash->{'search_'.$sf} = $filter{$sf};
next unless defined $filter{$sf};
next if !defined $filter{$sf} || $sf eq 'direction';
# alter filter for SOAP call
$filter{$sf} =~ s/\*/\%/g;
@ -593,6 +595,11 @@ sub set_fees : Local {
$c->session->{feeerr}{line} = $line;
last;
}
unless(defined $keyval{direction} && ($keyval{direction} eq 'in' || $keyval{direction} eq 'out')) {
$messages{feeerr} = 'Web.Fees.InvalidDirection';
$c->session->{feeerr}{line} = $line;
last;
}
for(qw(zone zone_detail)) {
if(length $keyval{$_}) {
eval { $keyval{$_} = decode("utf8", $keyval{$_}, Encode::FB_CROAK) };
@ -666,6 +673,7 @@ sub edit_fee : Local {
my $bilprof = $c->stash->{bilprof} = $c->request->params->{bilprof};
my $destination = $c->stash->{destination} = $c->request->params->{destination};
my $direction = $c->stash->{direction} = $c->request->params->{direction};
$c->stash->{offset} = $c->request->params->{offset} || 0;
$destination = $self->_normalize_destination($c, $destination) || $destination
@ -674,11 +682,14 @@ sub edit_fee : Local {
if(ref $c->session->{restore_fee_input} eq 'HASH') {
$c->stash->{fee} = $c->session->{restore_fee_input};
delete $c->session->{restore_fee_input};
} elsif(defined $destination) {
} elsif(defined $destination && defined $direction) {
my $fee_list;
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'search_billing_profile_fees',
{ handle => $bilprof,
filter => { destination => $destination },
filter => {
destination => $destination,
direction => $direction,
},
},
\$fee_list
);
@ -725,6 +736,13 @@ sub do_edit_fee : Local {
$messages{destination} = 'Web.Fees.InvalidDestination';
}
}
$settings{direction} = $c->request->params->{new_direction} || $c->request->params->{direction};
unless($settings{direction} &&
($settings{direction} eq 'in' || $settings{direction} eq 'out')) {
$messages{direction} = 'Web.Fees.InvalidDirection';
}
$settings{zone} = $c->request->params->{zone};
$messages{zone} = 'Web.Fees.InvalidZone' unless length $settings{zone};
$settings{zone_detail} = $c->request->params->{zone_detail};
@ -772,7 +790,7 @@ sub do_edit_fee : Local {
$settings{destination} = $self->_denormalize_destination($c, $settings{destination})
if defined $settings{destination};
$c->session->{restore_fee_input} = \%settings;
$c->response->redirect("/billing/edit_fee?bilprof=$bilprof&offset=$offset&destination=".uri_escape($settings{destination}));
$c->response->redirect("/billing/edit_fee?bilprof=$bilprof&offset=$offset&direction=".$settings{direction}."&destination=".uri_escape($settings{destination}));
return;
}
@ -787,13 +805,17 @@ sub do_delete_fee : Local {
my $bilprof = $c->request->params->{bilprof};
my $destination = $c->request->params->{destination};
my $direction = $c->request->params->{direction};
my $offset = $c->request->params->{offset};
$destination = $self->_normalize_destination($c, $destination) || $destination;
if($c->model('Provisioning')->call_prov( $c, 'billing', 'set_billing_profile_fees',
{ handle => $bilprof,
fees => [ { destination => $destination } ],
fees => [ {
destination => $destination,
direction => $direction,
} ],
purge_existing => 0,
},
undef))

@ -75,6 +75,19 @@
</div>
</li>
<li class="ui-state-default">
<div class="span-3">
<label class="search_label" for="search_by_direction">Direction:</label>
</div>
<div class="span-6 last">
<select id="search_by_direction" name="search_direction">
<option value=""></option>
<option value="out"[% IF search_direction == 'out' %] selected="selected"[% END %]>Outbound</option>
<option value="in"[% IF search_direction == 'in' %] selected="selected"[% END %]>Inbound</option>
</select>
</div>
</li>
<li class="ui-state-default">
<div class="span-3">
<label class="search_label" for="search_by_zone">Zone:</label>
@ -125,22 +138,24 @@
[% IF messages.stfeemsg %]<div class="success">[% messages.stfeemsg %]</div>[% END %]
<ul class="cleanlist">
<li class="ui-state-default">
<div class="span-7">Destination</div>
<div class="span-6">Destination</div>
<div class="span-1"><span class="ui-icon ui-icon-transfer-e-w"></span></div>
<div class="span-4">Zone</div>
<div class="span-4 last">Zone Detail</div>
</li>
[% FOREACH fee = fee_list %]
<li class="ui-state-default">
<div class="span-7" title="[% fee.destination %]" >[% fee.destination %]</div>
<div class="span-6" title="[% fee.destination %]" >[% fee.destination %]</div>
<div class="span-1" title="[% fee.direction%]" >[% fee.direction %]</div>
<div class="span-4" title="[% fee.zone %]" >[% fee.zone %]</div>
<div class="span-4" title="[% fee.zone_detail %]" >[% fee.zone_detail %]</div>
[% UNLESS Catalyst.session.admin.read_only %]
<div class="span-1">
<a href="/billing/edit_fee?bilprof=[% bilprof.handle %]&amp;destination=[% fee.urlenc_destination %]&amp;offset=[% offset %]"><span class="button-edit">Edit</span></a>
<a href="/billing/edit_fee?bilprof=[% bilprof.handle %]&amp;destination=[% fee.urlenc_destination %]&amp;direction=[% fee.direction %]&amp;offset=[% offset %]"><span class="button-edit">Edit</span></a>
</div>
<div class="span-1 last">
<a href="/billing/do_delete_fee?bilprof=[% bilprof.handle %]&amp;destination=[% fee.urlenc_destination %]&amp;offset=[% offset %][% IF last_one %]&amp;last_one=1[% END %]"><span class="button-delete">Delete</span></a>
<a href="/billing/do_delete_fee?bilprof=[% bilprof.handle %]&amp;destination=[% fee.urlenc_destination %]&amp;direction=[% fee.direction %]&amp;offset=[% offset %][% IF last_one %]&amp;last_one=1[% END %]"><span class="button-delete">Delete</span></a>
</div>
[% ELSE %]
<div class="span-1 last" />

@ -11,6 +11,7 @@
<form action="do_edit_fee" method="post">
<input type="hidden" name="bilprof" value="[% bilprof %]" />
<input type="hidden" name="destination" value="[% fee.destination %]" />
<input type="hidden" name="direction" value="[% fee.direction %]" />
<input type="hidden" name="offset" value="[% offset %]" />
<ul class="cleanlist">
@ -30,6 +31,25 @@
</li>
[% IF messages.destination %]<li class="error">[% messages.destination %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Direction:</div>
<div class="span-6">
[% IF direction %]
[% direction %]
[% ELSE %]
<select name="new_direction">
<option [% IF fee.direction == 'out' || !fee.direction %]selected="selected"[% END %] value="out">outbound</option>
<option [% IF fee.direction == 'in' %]selected="selected"[% END %] value="in">inbound</option>
</select>
[% END %]
</div>
<div class="span-5 last">
call direction to apply this fee for
</div>
</li>
[% IF messages.direction %]<li class="error">[% messages.direction%]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Zone:</div>
<div class="span-6">

Loading…
Cancel
Save