diff --git a/apps/payment/models.py b/apps/payment/models.py index 4f498d9b..25aa9e79 100644 --- a/apps/payment/models.py +++ b/apps/payment/models.py @@ -124,22 +124,6 @@ class Payment(PolymorphicModel): verbose_name_plural = 'Платежи' ordering = ('created_at',) - @classmethod - def add_months(cls, sourcedate, months=1, is_camp=False): - # Лагерь всегда до коонца месяца покупается - if is_camp: - return arrow.get(sourcedate.replace(day=1), settings.TIME_ZONE).shift(months=months).date() - timedelta(1) - # FIXME после мая 2019 убрать? - # Если хотят купить школу в мае, то оплатить ее можно только до 31 мая, потом школа закроется - if sourcedate.month == 5: - return sourcedate.replace(day=31) - result = arrow.get(sourcedate, settings.TIME_ZONE).shift(months=months) - if months == 1: - if (sourcedate.month == 2 and sourcedate.day >= 28) or (sourcedate.day == 31 and result.day <= 30) \ - or (sourcedate.month == 1 and sourcedate.day >= 29 and result.day == 28): - result = result.replace(day=1, month=result.month + 1) - return result.datetime - @classmethod def get_date_range(cls, date_start=None, days=0, months=0, is_camp=False): school_start = date(now().year, 9, 1) @@ -152,6 +136,8 @@ class Payment(PolymorphicModel): if is_camp: if date_start < camp_start: date_start = camp_start + if date_start.month == 6 and date_start.day > 16: + date_start = date_start.replace(month=7, day=1) elif school_end < date_start < school_start: date_start = school_start date_end = arrow.get(date_start + timedelta(days=days), settings.TIME_ZONE).shift(months=months).date() - timedelta(1) diff --git a/project/settings.py b/project/settings.py index 2cd1afd3..88f9749d 100644 --- a/project/settings.py +++ b/project/settings.py @@ -277,6 +277,11 @@ CELERY_BEAT_SCHEDULE = { 'schedule': crontab(0, 9, day_of_month='1', month_of_year='8'), 'kwargs': {'certificate_number': 2}, }, + 'send_august_camp_certificates': { + 'task': 'apps.notification.tasks.send_camp_certificates', + 'schedule': crontab(0, 9, day_of_month='1', month_of_year='9'), + 'kwargs': {'certificate_number': 3}, + }, } try: