|
@@ -375,6 +375,50 @@ class NewCustomerViewSet(CustomModelViewSet):
|
|
return response_error(str(e))
|
|
return response_error(str(e))
|
|
return response_ok()
|
|
return response_ok()
|
|
|
|
|
|
|
|
+ @action(methods=['post'], detail=True)
|
|
|
|
+ def add_projects(self, request, pk):
|
|
|
|
+
|
|
|
|
+ projects = request.POST.get('projects')
|
|
|
|
+ projects = projects.split(',')
|
|
|
|
+ try:
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ instance = NewCustomer.objects.filter(id=pk).first()
|
|
|
|
+ if not instance:
|
|
|
|
+ raise CustomError('当前客户信息有误,请刷新重试!')
|
|
|
|
+ stage_progress = Option.objects.filter(type=Option.STAGE_PROGRESS, enable=True).order_by('sort').first()
|
|
|
|
+ if not stage_progress.track_day:
|
|
|
|
+ raise CustomError('当前阶段,没有设置跟踪天数!')
|
|
|
|
+ next_time = (timezone.now() + datetime.timedelta(days=stage_progress.track_day)).strftime('%Y-%m-%d')
|
|
|
|
+ projects = Option.objects.filter(id__in=projects)
|
|
|
|
+ for project in projects:
|
|
|
|
+ customer = NewCustomer.objects.create(report_customer=instance.report_customer, gender=instance.gender,
|
|
|
|
+ track_user=instance.track_user, stage_progress=stage_progress,
|
|
|
|
+ create_user=instance.create_user, store=instance.store,
|
|
|
|
+ name=instance.name, tel=instance.tel, village=instance.village,
|
|
|
|
+ address=instance.address, source=instance.source,
|
|
|
|
+ notes=instance.notes,next_time=next_time,
|
|
|
|
+ )
|
|
|
|
+ customer.project.add(project.id)
|
|
|
|
+
|
|
|
|
+ NewCustomerRemind.objects.create(customer=customer, store=customer.store, next_time=next_time,
|
|
|
|
+ remind_user_id=instance.track_user_id,)
|
|
|
|
+ # 根据分配人所在店面,创建内部跟踪提醒
|
|
|
|
+ remind_users = request.user.get_remind_users()
|
|
|
|
+ track_user = instance.track_user
|
|
|
|
+ # 跟踪人和提醒人是同一个人的,不需要在加提醒
|
|
|
|
+ if track_user in remind_users:
|
|
|
|
+ remind_users.remove(track_user)
|
|
|
|
+ # 把next_time用当前日期加上5天
|
|
|
|
+ next_time = (timezone.now() + datetime.timedelta(days=5)).strftime('%Y-%m-%d')
|
|
|
|
+ for remind_user in remind_users:
|
|
|
|
+ NewCustomerRemind.objects.create(customer=customer, next_time=next_time, remind_user_id=remind_user,
|
|
|
|
+ is_employee=False, store=instance.store)
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response_error(str(e))
|
|
|
|
+ return response_ok()
|
|
|
|
+
|
|
|
|
|
|
class StageCountView(APIView):
|
|
class StageCountView(APIView):
|
|
permission_classes = [isLogin]
|
|
permission_classes = [isLogin]
|