initial import for Open Source 🎉
This commit is contained in:
parent
1898c361f3
commit
9c0dd3b722
2048 changed files with 218743 additions and 0 deletions
45
tools/monthlyrevenue.py
Normal file
45
tools/monthlyrevenue.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
from app import billing
|
||||
from collections import defaultdict
|
||||
|
||||
offset = 0
|
||||
|
||||
def empty_tuple():
|
||||
return (0, 0)
|
||||
|
||||
plan_revenue = defaultdict(empty_tuple)
|
||||
|
||||
batch = billing.Customer.all(count=100, offset=offset)
|
||||
while batch.data:
|
||||
for cust in batch.data:
|
||||
if cust.subscription:
|
||||
sub = cust.subscription
|
||||
total_customer_revenue = sub.plan.amount * sub.quantity
|
||||
|
||||
if cust.discount and cust.discount.coupon:
|
||||
coupon = cust.discount.coupon
|
||||
|
||||
if coupon.percent_off:
|
||||
total_customer_revenue *= (1 - coupon.percent_off/100.0)
|
||||
|
||||
if coupon.amount_off:
|
||||
total_customer_revenue -= coupon.amount_off
|
||||
|
||||
subscribers, revenue = plan_revenue[sub.plan.id]
|
||||
plan_revenue[sub.plan.id] = (subscribers + 1,
|
||||
revenue + total_customer_revenue)
|
||||
offset += len(batch.data)
|
||||
batch = billing.Customer.all(count=100, offset=offset)
|
||||
|
||||
def format_money(total_cents):
|
||||
dollars = total_cents / 100
|
||||
cents = total_cents % 100
|
||||
return dollars, cents
|
||||
|
||||
total_monthly_revenue = 0
|
||||
for plan_id, (subs, rev) in plan_revenue.items():
|
||||
total_monthly_revenue += rev
|
||||
d, c = format_money(rev)
|
||||
print '%s: $%d.%02d(%s)' % (plan_id, d, c, subs)
|
||||
|
||||
d, c = format_money(total_monthly_revenue)
|
||||
print 'Monthly revenue: $%d.%02d' % (d, c)
|
Reference in a new issue