# coding=utf-8 from celery.task import periodic_task from datetime import timedelta, datetime from django.db.models import Q from finance.models import Price, Bill, ServiceRequest from courses.models import CourseMap @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() @periodic_task(run_every=timedelta(minutes=1)) def sent_service_request_to_amo(): sr = ServiceRequest.objects.filter(send=False, send_date__lt=datetime.now()).exclude(Q(name='TEST')| Q(status='E')).first() if sr: sr.sent_to_amo()