You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
762 B
22 lines
762 B
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()
|
|
|
|
|
|
|