+failed txn due to to binding a row object instead of value
+remove warning with topup voucher validation
+remove warning when preparing topup log row data
Change-Id: I3a08b6ef297f9b197f30731d886e9d07686336dd
any *attempt* of a top-up request should be
logged.
+create top-up log records for api
in order to record failed top-up requests as well,
the somewhat tricky thing is to have two
separate transactions here
+propery casting of topup request json field
values to numbers etc., so the transaction for
creating the log entry cannot fail and e.g.
requests with subscriber_id='blah' are recorded
correctly
+new "request_token" parameter for /api/topupvoucher
and /api/topupcash, to identify and filter for
particular requests.
+topup log api resource
+topup log api tests
+fix to correctly reject used vouchers
+topup log panel UI
+fix for balanceintervals.t threaded tests
Change-Id: I86eb845f6173803705b12cc7e5cdbac9a3153a0a
in short: whenever the contract_balances "cash_balance" is
about to decrease, it might drop below thresholds defined
by a contract's profile package. in that case, subscribers
are to be locked and/or underrun billing profile sets are
to be applied. this commit also contains some minor fixes:
+when creating/editing profile packages, all billing
profiles of initial, topup, underrun sets must show the
same interval_free_cash and interval_free_time values.
there was also a problem with adding profile sets to
packages that use profile with prepaid = 1 (see ticket
14301)
+when editing packages using the panel UI, the validation
was not properly invoked (!) +the frequency of topups has
to be limited to 1 per second.
+updating the "lock" subscriber prior to editing or viewing
it in the panel UI was added.
+topup cash and topup voucher panel UI added
+when aquiring multiple contract row locks at once, no
joined tables are used any mure. the number of row locks
is therefore minimal now (see ticket 14903)
+rework of updating prepaid subscriber preference
Change-Id: Ideb0fec2404ca10b3ac5d8735f53620d0c3a24ed
- Properly call localization functions on error when changing
peering contract.
- Properly handle preference update in case of empty value.
Reported by Marc Storck on spce-users.
If a sound set is contract default and you create another default one,
the old gets non-default.
Properly handle contract default setting also when editing sound sets.
And while at it, set np-display as outbound-from-display-name dom-pref
when creating a PBX domain.
If a new contract sound set is marked as contract_default, use this
for every existing subscriber in contract_sound_set prefs if no
other set is specified yet.
If a new subscriber is created and such a sound set exists, also
use this one.
This prevents having to go over each single subscriber to assign
the contract_sound_set preference.
The preferences rewrite_rule_sets, ncos_levels, and sound_sets
on a domain should be restricted to ones, that have the same reseller
as the domain itself.
In addition we have to make sure, the preference view does not die,
if an invalid preference had already been selected, for example when
the respective *set/*level had been deleted or had been one, with a wrong
reseller, because of this bug, we just fixed.
Mantis: 4127
when a preference with empty value is saved, this row was just
deleted from the db. This is not true for enums, because an empty string
is not always the default value. Therefore we only delete enum preferences
when their value matches the one of the enum, configured as default.
This can be checked, by setting the domain preference outbound_pai_user
to None, which resulted in wrong behaviour before.
Mantis: 3769