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

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 urllib
import datetime
from json import JSONDecodeError
from django.db import models
import django.utils.timezone
from access.models import User, TrafHistory
@ -304,6 +306,7 @@ class Bill(models.Model):
class ServiceRequest(models.Model):
SERVICE_REQUEST_STATUS = (
('S', u'Не обработан'),
('E', u'Ошибка контекста'),
('W', u'В работе'),
('F', u'Продан'),
('B', u'Не продал')
@ -367,7 +370,11 @@ class ServiceRequest(models.Model):
def sent_to_amo(self):
if self.data:
data = json.loads(self.data.replace("'", "\""))
try:
data = json.loads(self.data.replace("'", "\""))
except JSONDecodeError:
self.status = "E"
else:
name = ''
phone = ''
@ -399,7 +406,7 @@ class ServiceRequest(models.Model):
data['name'] = 'empty'
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
self.send = True
self.save()

@ -1,6 +1,9 @@
# 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
@ -32,6 +35,6 @@ def price_map_migrator():
@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(name='TEST').first()
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()

Loading…
Cancel
Save