Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

wushaodong před 4 roky
rodič
revize
84cd2698fb
1 změnil soubory, kde provedl 44 přidání a 0 odebrání
  1. 44 0
      apps/customer/views.py

+ 44 - 0
apps/customer/views.py

@@ -375,6 +375,50 @@ class NewCustomerViewSet(CustomModelViewSet):
             return response_error(str(e))
         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):
     permission_classes = [isLogin]