mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Better payment reports.
This commit is contained in:
parent
d8295a53b4
commit
0c3fd2e07c
2 changed files with 12 additions and 8 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
import time
|
import time
|
||||||
import datetime
|
import datetime
|
||||||
|
import dateutil
|
||||||
import stripe
|
import stripe
|
||||||
import hashlib
|
import hashlib
|
||||||
import redis
|
import redis
|
||||||
|
|
@ -822,20 +823,23 @@ class PaymentHistory(models.Model):
|
||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def report(cls, months=12):
|
def report(cls, months=24):
|
||||||
total = cls.objects.all().aggregate(sum=Sum('payment_amount'))
|
total = cls.objects.all().aggregate(sum=Sum('payment_amount'))
|
||||||
print "Total: $%s" % total['sum']
|
print "Total: $%s" % total['sum']
|
||||||
|
|
||||||
for m in range(months):
|
for m in reversed(range(months)):
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
start_date = now - datetime.timedelta(days=(m+1)*30)
|
start_date = datetime.datetime(now.year, now.month, 1) - dateutil.relativedelta.relativedelta(months=m)
|
||||||
end_date = now - datetime.timedelta(days=m*30)
|
end_time = start_date + datetime.timedelta(days=31)
|
||||||
payments = cls.objects.filter(payment_date__gte=start_date, payment_date__lte=end_date)
|
end_date = datetime.datetime(end_time.year, end_time.month, 1) - datetime.timedelta(seconds=1)
|
||||||
|
payments = PaymentHistory.objects.filter(payment_date__gte=start_date, payment_date__lte=end_date)
|
||||||
payments = payments.aggregate(avg=Avg('payment_amount'),
|
payments = payments.aggregate(avg=Avg('payment_amount'),
|
||||||
sum=Sum('payment_amount'),
|
sum=Sum('payment_amount'),
|
||||||
count=Count('user'))
|
count=Count('user'))
|
||||||
print "%s months ago: avg=$%s sum=$%s users=%s" % (
|
print "%s-%02d-%02d - %s-%02d-%02d:\t$%.2f\t$%-6s\t%-4s" % (
|
||||||
m, payments['avg'], payments['sum'], payments['count'])
|
start_date.year, start_date.month, start_date.day,
|
||||||
|
end_date.year, end_date.month, end_date.day,
|
||||||
|
round(payments['avg'], 2), payments['sum'], payments['count'])
|
||||||
|
|
||||||
|
|
||||||
class MRedeemedCode(mongo.Document):
|
class MRedeemedCode(mongo.Document):
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
.changelog {
|
.changelog {
|
||||||
margin: 24px 48px;
|
margin: 24px 24px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue