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.
33 lines
1.1 KiB
33 lines
1.1 KiB
# coding=utf-8
|
|
from celery.task import periodic_task
|
|
from datetime import timedelta, datetime
|
|
from finance.models import Price, Bill
|
|
from courses.models import CourseMap
|
|
from access.models import User
|
|
from management.letters import free_week_end
|
|
|
|
|
|
@periodic_task(run_every=timedelta(minutes=1))
|
|
def price_map_migrator():
|
|
for price in Price.objects.filter(included=None).exclude(course=None):
|
|
if not price.included.exists():
|
|
inc_type = []
|
|
|
|
if price.m_type == 'B':
|
|
inc_type = ['B']
|
|
elif price.m_type == 'E':
|
|
inc_type = ['B', 'E']
|
|
elif price.m_type == 'P':
|
|
inc_type = ['B', 'E', 'P']
|
|
for m in CourseMap.objects.filter(course=price.course):
|
|
if m.get_obj().theme.price_type in inc_type:
|
|
price.included.add(m)
|
|
|
|
|
|
@periodic_task(run_every=timedelta(hours=1))
|
|
def price_map_migrator():
|
|
for price in Price.objects.exclude(by_time=None):
|
|
for bill in Bill.objects.filter(service=price, fire_date__lt=datetime.now()):
|
|
bill.status = 'H'
|
|
bill.save()
|
|
|
|
|