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

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()