Отключение отправки заявок с ошибками в содержинии

remotes/origin/pm_task_31703
bigboy 9 years ago
parent a4c944864d
commit eb9d82d25a
  1. 11
      finance/models.py
  2. 5
      finance/tasks.py

@ -2,6 +2,8 @@
import json import json
import urllib import urllib
import datetime import datetime
from json import JSONDecodeError
from django.db import models from django.db import models
import django.utils.timezone import django.utils.timezone
from access.models import User, TrafHistory from access.models import User, TrafHistory
@ -304,6 +306,7 @@ class Bill(models.Model):
class ServiceRequest(models.Model): class ServiceRequest(models.Model):
SERVICE_REQUEST_STATUS = ( SERVICE_REQUEST_STATUS = (
('S', u'Не обработан'), ('S', u'Не обработан'),
('E', u'Ошибка контекста'),
('W', u'В работе'), ('W', u'В работе'),
('F', u'Продан'), ('F', u'Продан'),
('B', u'Не продал') ('B', u'Не продал')
@ -367,7 +370,11 @@ class ServiceRequest(models.Model):
def sent_to_amo(self): def sent_to_amo(self):
if self.data: if self.data:
data = json.loads(self.data.replace("'", "\"")) try:
data = json.loads(self.data.replace("'", "\""))
except JSONDecodeError:
self.status = "E"
else: else:
name = '' name = ''
phone = '' phone = ''
@ -399,7 +406,7 @@ class ServiceRequest(models.Model):
data['name'] = 'empty' data['name'] = 'empty'
urllib.request.urlopen(out_uri('https://skill-box.ru/amocrm/CreateLead.php', data)) urllib.request.urlopen(out_uri('https://skill-box.ru/amocrm/CreateLead.php', data))
if not self.send: if not self.send and self.status != 'E':
data['host'] = self.host data['host'] = self.host
self.send = True self.send = True
self.save() self.save()

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

Loading…
Cancel
Save