Backported fraud limits to billing intervals.

2.1
Andreas Granig 14 years ago
parent d86c808683
commit 2fe035d4ce

6
debian/changelog vendored

@ -1,3 +1,9 @@
sipwise-www-admin (2.1.2) unstable; urgency=low
* Backported fraud limits to billing intervals.
-- Andreas Granig <agranig@sipwise.com> Wed, 06 Feb 2013 11:45:10 +0100
sipwise-www-admin (2.1.1) unstable; urgency=low
* Added support for block_out_override_pin settings

@ -219,6 +219,14 @@ sub edit_bilprof : Local {
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_charge} /= 100;
$c->stash->{bilprof}{data}{interval_free_cash} =
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_free_cash} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_limit} =
sprintf "%.2f", $c->stash->{bilprof}{data}{fraud_interval_limit} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_notify} =
eval { join ', ', @{$c->stash->{bilprof}{data}{fraud_interval_notify}} };
$c->stash->{bilprof}{data}{fraud_daily_limit} =
sprintf "%.2f", $c->stash->{bilprof}{data}{fraud_daily_limit} /= 100;
$c->stash->{bilprof}{data}{fraud_daily_notify} =
eval { join ', ', @{$c->stash->{bilprof}{data}{fraud_daily_notify}} };
} elsif($bilprof) {
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_billing_profile',
{ handle => $bilprof },
@ -228,6 +236,14 @@ sub edit_bilprof : Local {
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_charge} /= 100;
$c->stash->{bilprof}{data}{interval_free_cash} =
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_free_cash} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_limit} =
sprintf "%.2f", $c->stash->{bilprof}{data}{fraud_interval_limit} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_notify} =
eval { join ', ', @{$c->stash->{bilprof}{data}{fraud_interval_notify}} };
$c->stash->{bilprof}{data}{fraud_daily_limit} =
sprintf "%.2f", $c->stash->{bilprof}{data}{fraud_daily_limit} /= 100;
$c->stash->{bilprof}{data}{fraud_daily_notify} =
eval { join ', ', @{$c->stash->{bilprof}{data}{fraud_daily_notify}} };
}
$c->stash->{handle} = $bilprof if $bilprof;
@ -291,6 +307,50 @@ sub do_edit_bilprof : Local {
$settings{interval_free_cash} = 0;
}
$settings{fraud_interval_limit} = $c->request->params->{fraud_interval_limit};
if(length $settings{fraud_interval_limit}) {
if($settings{fraud_interval_limit} =~ /^[+]?\d+(?:[.,]\d\d?)?$/) {
$settings{fraud_interval_limit} =~ s/^\+//;
$settings{fraud_interval_limit} =~ s/,/./;
$settings{fraud_interval_limit} *= 100;
} else {
$messages{fraud_interval_limit} = 'Client.Syntax.CashValue';
}
} else {
delete $settings{fraud_interval_limit};
}
$settings{fraud_interval_lock} = $c->request->params->{fraud_interval_lock}
if $c->request->params->{fraud_interval_lock};
if(length $c->request->params->{fraud_interval_notify}) {
@{$settings{fraud_interval_notify}} = split /\s*,\s*/, $c->request->params->{fraud_interval_notify};
} else {
$settings{fraud_interval_notify} = [];
}
$settings{fraud_daily_limit} = $c->request->params->{fraud_daily_limit};
if(length $settings{fraud_daily_limit}) {
if($settings{fraud_daily_limit} =~ /^[+]?\d+(?:[.,]\d\d?)?$/) {
$settings{fraud_daily_limit} =~ s/^\+//;
$settings{fraud_daily_limit} =~ s/,/./;
$settings{fraud_daily_limit} *= 100;
} else {
$messages{fraud_daily_limit} = 'Client.Syntax.CashValue';
}
} else {
delete $settings{fraud_daily_limit};
}
$settings{fraud_daily_lock} = $c->request->params->{fraud_daily_lock}
if $c->request->params->{fraud_daily_lock};
if(length $c->request->params->{fraud_daily_notify}) {
@{$settings{fraud_daily_notify}} = split /\s*,\s*/, $c->request->params->{fraud_daily_notify};
} else {
$settings{fraud_daily_notify} = [];
}
$settings{currency} = $c->request->params->{currency} || '';
$settings{vat_rate} = $c->request->params->{vat_rate};
@ -316,6 +376,10 @@ sub do_edit_bilprof : Local {
$c->response->redirect("/billing#bilprof");
return;
}
$c->session->{messages}{fraud_interval_notify} = $c->session->{prov_error}
if $c->session->{prov_error} eq 'Client.Syntax.Email';
$c->session->{messages}{fraud_daily_notify} = $c->session->{prov_error}
if $c->session->{prov_error} eq 'Client.Syntax.Email';
$c->session->{restore_bilprof_input} = \%settings;
$c->response->redirect("/billing/edit_bilprof?bilprof=$bilprof");
return;

@ -85,6 +85,70 @@
</td>
</tr>
[% IF messages.free_cash %]<tr><td /><td><div class="errormsg">[% messages.free_cash %]</div></td></tr>[% END %]
<tr>
<td class="tdkey">fraud monthly limit:</td>
<td>
<input type="text" name="fraud_interval_limit" title="float, specifying Euro"
value="[% bilprof.data.fraud_interval_limit%]" />
fraud detection threshold, per month
</td>
</tr>
[% IF messages.fraud_interval_limit %]<tr><td /><td><div class="errormsg">[% messages.fraud_interval_limit %]</div></td></tr>[% END %]
<tr>
<td class="tdkey">fraud monthly lock:</td>
<td>
<select size="1" name="fraud_interval_lock" title="the lock level">
<option value="none" [% IF bilprof.data.fraud_interval_lock == 'none' %]selected="selected"[% END %]>none</option>
<option value="foreign" [% IF bilprof.data.fraud_interval_lock == 'foreign' %]selected="selected"[% END %]>foreign calls</option>
<option value="outgoing" [% IF bilprof.data.fraud_interval_lock == 'outgoing' %]selected="selected"[% END %]>all outgoing calls</option>
<option value="incoming" [% IF bilprof.data.fraud_interval_lock == 'incoming' %]selected="selected"[% END %]>incoming and outgoing</option>
<option value="global" [% IF bilprof.data.fraud_interval_lock == 'global' %]selected="selected"[% END %]>global (including CSC)</option>
</select>
lock accounts if the monthly limit is exceeded
</td>
</tr>
[% IF messages.fraud_interval_lock %]<tr><td /><td><div class="errormsg">[% messages.fraud_interval_lock %]</div></td></tr>[% END %]
<tr>
<td class="tdkey">fraud monthly notify:</td>
<td>
<input type="text" name="fraud_interval_notify" title="string, a list of e-mail addreses separated by comma"
value="[% bilprof.data.fraud_interval_notify %]" />
where e-mail notifications are sent
</td>
</tr>
[% IF messages.fraud_interval_notify %]<tr><td /><td><div class="errormsg">[% messages.fraud_interval_notify %]</div></td></tr>[% END %]
<tr>
<td class="tdkey">fraud daily limit:</td>
<td>
<input type="text" name="fraud_daily_limit" title="float, specifying Euro"
value="[% bilprof.data.fraud_daily_limit%]" />
fraud detection threshold, per day
</td>
</tr>
[% IF messages.fraud_daily_limit %]<tr><td /><td><div class="errormsg">[% messages.fraud_daily_limit %]</div></td></tr>[% END %]
<tr>
<td class="tdkey">fraud daily lock:</td>
<td>
<select size="1" name="fraud_daily_lock" title="the lock level">
<option value="none" [% IF bilprof.data.fraud_daily_lock == 'none' %]selected="selected"[% END %]>none</option>
<option value="foreign" [% IF bilprof.data.fraud_daily_lock == 'foreign' %]selected="selected"[% END %]>foreign calls</option>
<option value="outgoing" [% IF bilprof.data.fraud_daily_lock == 'outgoing' %]selected="selected"[% END %]>all outgoing calls</option>
<option value="incoming" [% IF bilprof.data.fraud_daily_lock == 'incoming' %]selected="selected"[% END %]>incoming and outgoing</option>
<option value="global" [% IF bilprof.data.fraud_daily_lock == 'global' %]selected="selected"[% END %]>global (including CSC)</option>
</select>
lock accounts if the daily limit is exceeded
</td>
</tr>
[% IF messages.fraud_daily_lock %]<tr><td /><td><div class="errormsg">[% messages.fraud_daily_lock %]</div></td></tr>[% END %]
<tr>
<td class="tdkey">fraud daily notify:</td>
<td>
<input type="text" name="fraud_daily_notify" title="string, a list of e-mail addreses separated by comma"
value="[% bilprof.data.fraud_daily_notify %]" />
where e-mail notifications are sent
</td>
</tr>
[% IF messages.fraud_daily_notify %]<tr><td /><td><div class="errormsg">[% messages.fraud_daily_notify %]</div></td></tr>[% END %]
<tr>
<td class="tdkey">currency:</td>
<td>

Loading…
Cancel
Save