Postgres#query_one Helper for queries that only return a single row.
Merge branch 'insert-settled-after' * insert-settled-after: Credit card transactions settle after 90 days, bills instantly
Merge branch 'bill-with-note' * bill-with-note: Add a note when billing account
Add a note when billing account
Credit card transactions settle after 90 days, bills instantly
Merge branch 'activate-with-balance' * activate-with-balance: If customer already has enough balance, just bill them and finish New BillPay registration step Save plan to DB as soon as it is selected Move credit_to lookup into relevant class
Save plan to DB as soon as it is selected Customer will appear as instantly expired (having been active for 1 second in the immediate past). This can replace the pending_plan key for BTC activations. It also serves as a record for mail-in activation of what plan they had selected. Once the account is really activated the tiny row is removed.
Represent plan limit details as a useful object
Default to 0, even if constructed with nil
Merge branch 'overage-limit' * overage-limit: auto_top_up_amount and monthly_overage_limit from CustomerRepo Move Bandwidth Tn remote operations to BandwidthTnRepo Use value_semantics to DRY up CustomerRepo Use NotFound exception for all customer not found cases
auto_top_up_amount and monthly_overage_limit from CustomerRepo Move load of auto_top_up_amount to the repo, and load monthly_overage_limit in the same operation.
Customer Info Forms and More Info There's a bit extra info I wanted about users, so since I was doing this anyway I figured I may as well port the existing forms to the new form renderer. Then, in order to fit within the guidelines I needed subforms, so partials were added.
Merge branch 'rubocop' * rubocop: Additional fixes for rubocop 1.10.1 Switch to rubocop 0.89.1
Switch to rubocop 0.89.1 This is the rubocop in new Debian stable
Customer Visible Plan Info We moved some of the currently private things to be public, like currency, and then included things like how much the monthly price is as well.
Customer always has a JID
Merge branch 'low-balance-auto-top-up' * low-balance-auto-top-up: Some people have exactly 5 who don't need to be told On low balance, top-up or notify ExpiringLock helper
On low balance, top-up or notify On start up, check for users with low balance and NOTIFY about them. LISTEN for such notifications and process by either sending a low-balance warning message or else attempting an auto-top-up as configured. Using NOTIFY/LISTEN because then we can NOTIFY after any INSERT that leaves the balance too low (using a trigger). Doing the sync on start-up in case we missed a NOTIFY during any downtime. Using the Redis lock to prevent spamming a low-balance user in case of many restarts or if they have many small transactions happen in one day.
When no plan, all plan attributes are nil
Merge branch 'create_customer_id' * create_customer_id: Create customer_id if it does not exist before we start registration Break out CustomerPlan Inject BackendSgx per customer