From fba356dc9cb7e1083671f84edf2519db240831a3 Mon Sep 17 00:00:00 2001 From: gzbender Date: Fri, 31 Aug 2018 00:20:05 +0500 Subject: [PATCH] =?UTF-8?q?LIL-633=20=D0=9A=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D0=BE=20=D1=81=D1=87=D0=B8=D1=82=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20=D0=B7=D0=B0=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=BF=D0=BE=D0=B4=D0=B0=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F=20=D0=B2=20=D0=B5=D0=B3=D0=BE=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=84=D0=B8=D0=BB=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commands/payment_fix_amounts.py | 22 +++++++++++++++++++ apps/payment/views.py | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 apps/payment/management/commands/payment_fix_amounts.py diff --git a/apps/payment/management/commands/payment_fix_amounts.py b/apps/payment/management/commands/payment_fix_amounts.py new file mode 100644 index 00000000..e4ca313e --- /dev/null +++ b/apps/payment/management/commands/payment_fix_amounts.py @@ -0,0 +1,22 @@ +from decimal import Decimal +from django.core.management.base import BaseCommand +from django.db.models import F + +from apps.payment.models import Payment, AuthorBalance + + +class Command(BaseCommand): + help = 'Fix payment and author balance amount based on payment.data.effective_price_amount' + + def handle(self, *args, **options): + + for payment in Payment.objects.exclude(data__effective_price_amount=''): + if payment.data.get('effective_price_amount'): + payment.amount = Decimal(payment.data.get('effective_price_amount')) + payment.save() + + for ab in AuthorBalance.objects.exclude(payment__amount=F('amount')).select_related('payment'): + ab.amount = ab.payment.amount + ab.save() + + diff --git a/apps/payment/views.py b/apps/payment/views.py index 1c705609..846b5a4a 100644 --- a/apps/payment/views.py +++ b/apps/payment/views.py @@ -201,7 +201,7 @@ class PaymentwallCallbackView(View): payment.status = pingback.get_type() payment.data = payment_raw_data if pingback.is_deliverable(): - effective_amount = pingback.get_parameter('effective_price_amount') + effective_amount = payment_raw_data.get('effective_price_amount') if effective_amount: payment.amount = effective_amount