Change where the last payment date is pulled from

fixes #190 #156
This commit is contained in:
Oly 2018-10-10 14:06:27 +01:00 committed by Oliver Marks
parent 5ba01ee7d3
commit 5e2c2edfd1
2 changed files with 26 additions and 18 deletions

View File

@ -9,33 +9,41 @@ from mhackspace.subscriptions.models import Payments
class Command(BaseCommand): class Command(BaseCommand):
help = 'Update user subscriptions' help = "Update user subscriptions"
def handle(self, *args, **options): def handle(self, *args, **options):
provider = select_provider('gocardless') provider = select_provider("gocardless")
self.stdout.write( self.stdout.write(
self.style.NOTICE( self.style.NOTICE("== Gocardless customer payments ==")
'== Gocardless customer payments ==')) )
Payments.objects.all().delete() Payments.objects.all().delete()
payment_objects = [] payment_objects = []
# TODO create a user if they do not exist
for customer in provider.fetch_customers(): for customer in provider.fetch_customers():
user = User.objects.get(email=customer.get('email')) user = User.objects.get(email=customer.get("email"))
payment_objects.append(Payments( payment_type = customer.get("payment_type")
payment_objects.append(
Payments(
user=user, user=user,
user_reference=customer.get('user_reference'), user_reference=customer.get("user_reference"),
user_email=customer.get('email'), user_email=customer.get("email"),
reference=customer.get('payment_id'), reference=customer.get("payment_id"),
amount=customer.get('amount'), amount=customer.get("amount"),
type=Payments.lookup_payment_type(customer.get('payment_type')), type=Payments.lookup_payment_type(payment_type),
date=customer.get('payment_date') date=customer.get("payment_date"),
)) )
)
md = model_to_dict(payment_objects[-1])
md["payment_type"] = payment_type
self.stdout.write( self.stdout.write(
self.style.SUCCESS( self.style.SUCCESS(
'\t{reference} - {amount} - {type} - {user_email}'.format(**model_to_dict(payment_objects[-1])))) "\t{reference} - {amount} - {date} - {payment_type} - {user_email}".format(
**md
)
)
)
Payments.objects.bulk_create(payment_objects) Payments.objects.bulk_create(payment_objects)

View File

@ -43,7 +43,7 @@ class gocardless_provider:
'status': payment.status, 'status': payment.status,
'payment_id': payment.links.subscription, 'payment_id': payment.links.subscription,
'payment_type': 'subscription' if payment.links.subscription else 'payment', 'payment_type': 'subscription' if payment.links.subscription else 'payment',
'payment_date': payment.created_at, 'payment_date': payment.charge_date,
'amount': payment.amount 'amount': payment.amount
} }