LIL-278. Add day_discount field to SchoolSchedule & fix calc SchoolPayment amount

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 8a1a51b4f7
commit 6e204263a5
  1. 10
      apps/payment/models.py
  2. 18
      apps/school/migrations/0005_schoolschedule_day_discount.py
  3. 1
      apps/school/models.py

@ -95,11 +95,13 @@ class SchoolPayment(Payment):
verbose_name_plural = 'Платежи за школу'
def save(self, *args, **kwargs):
month_price_sum = SchoolSchedule.objects.filter(
aggregate = SchoolSchedule.objects.filter(
weekday__in=self.weekdays,
).aggregate(
models.Sum('month_price'),
).get('month_price__sum', 0)
self.amount = month_price_sum
models.Sum('day_discount'),
)
month_price_sum = aggregate.get('month_price__sum', 0)
day_discount_sum = aggregate.get('day_discount__sum', 0) if len(self.weekdays) == 7 else 0
self.amount = month_price_sum - day_discount_sum
super().save(*args, **kwargs)
author_balance = getattr(self, 'authorbalance', None)

@ -0,0 +1,18 @@
# Generated by Django 2.0.2 on 2018-02-22 10:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('school', '0004_auto_20180221_1120'),
]
operations = [
migrations.AddField(
model_name='schoolschedule',
name='day_discount',
field=models.DecimalField(decimal_places=2, default=0, max_digits=8, verbose_name='Скидка, в валюте'),
),
]

@ -17,6 +17,7 @@ class SchoolSchedule(models.Model):
materials = models.TextField('Материалы')
age = models.PositiveSmallIntegerField('Возраст', default=0)
month_price = models.DecimalField('Цена', max_digits=8, decimal_places=2, default=0)
day_discount = models.DecimalField('Скидка, в валюте', max_digits=8, decimal_places=2, default=0)
class Meta:
ordering = ('weekday',)

Loading…
Cancel
Save