示例#1
0
 def single_view(self,request):
     """
     单条录入客户信息
     :param request:
     :return:
     """
     from .casual import single
     if request.method=="GET":
         form=SingleModelForm()
         return render(request,"single.html",{"form":form})
     else:
         form=SingleModelForm(request.POST)
         if form.is_valid():
             current_time=datetime.datetime.now().date()
             sale_id=single.get_sale_id()
             if not sale_id:
                 return HttpResponse("分配错误,无销售顾问")
             try:
                 with transaction.atomic():
                     form.instance.consultant_id=sale_id
                     form.instance.recv_date=current_time
                     form.instance. last_consult_date=current_time
                     customer_obj=form.save()
                     models.CustomerDistribution.objects.create(user_id=sale_id,
                                                                customer=customer_obj,
                                                               ctime=current_time)
                     message.send_message("第一次发邮件","嘻嘻","*****@*****.**","小海")
                     print("发完了")
             except Exception as e:
                 single.rollback(sale_id)
                 return HttpResponse("录入异常!!!")
             return HttpResponse("录入成功!")
         else:
             return render(request, "single.html", {"form": form})
示例#2
0
    def single_view(self, request):
        if request.method == "GET":
            # message.send_message('*****@*****.**', '放哨', '你别走了', '三个月工资太多了')
            forms = SingleModelForm()

            return render(request, "single_view.html", {"forms": forms})
        else:
            # 这里是添加客户的处理机智
            from utils.qndy import CNM

            forms = SingleModelForm(request.POST)
            if forms.is_valid():
                sale_id = CNM.get_sale_id()  #获取销售ID
                ctime = datetime.datetime.now().date()  #获取到当前时间
                if not sale_id:
                    return HttpResponse("你没有资格添加")
                try:
                    with transaction.atomic():
                        forms.instance.consultant_id = sale_id
                        forms.instance.recv_date = ctime
                        forms.instance.last_consult_date = ctime
                        new_form = forms.save()
                        models.CustomerDistrbution.objects.create(
                            user_id=sale_id, customer=new_form, ctime=ctime)

                        # 要发送的目标地址
                        message.send_message('*****@*****.**', '放哨', '你别走了',
                                             '三个月工资太多了')

                except Exception:
                    return HttpResponse("添加数据异常")

                return redirect(self.get_list_url())
        return render(request, "single_view.html", {"forms": forms})
示例#3
0
    def single_view(self, request):
        """
        单条录入客户信息
        :param request:
        :return:
        """
        if request.method == "GET":
            # 录入的信息表需要排除一些字段,在SingleModelForm中有体现
            form = SingleModelForm()
            return render(request, "single_view.html", {'form': form})
        else:
            # 提交录入数据
            from crm05.salerole import Salerole
            form = SingleModelForm(request.POST)
            if form.is_valid():
                sale_id = Salerole.get_sale_id()
                if not sale_id:
                    return HttpResponse("无销售顾问,无法进行分配")
                # try:
                with transaction.atomic():
                    # data = form.cleaned_data
                    # data['consultant_id'] = int(sale_id)
                    # course_list = request.POST.getlist("course")
                    # data.pop('course')
                    ctime = datetime.datetime.now().date()
                    # customer_obj = models.Customer.objects.create(**data)
                    # customer_obj.course.add(*[models.Course.objects.get(id=i) for i in course_list])
                    form.instance.consultant_id = sale_id
                    form.instance.recv_date = ctime
                    form.instance.last_consult_date = ctime
                    # 创建客户表
                    customer_obj = form.save()
                    """客户表新增数据:
                        - 获取该分配的课程顾问id
                        - 当前时间
                    客户分配表中新增数|}
                        - 获取新创建的客户ID
                        - 顾问ID
                    """
                    # 客户分配表
                    models.CustomerDistribution.objects.create(user_id=sale_id, customer=customer_obj, ctime=ctime)

                    # 发送消息
                    message.send_message('*****@*****.**', '名字', '主题', '内容')

                # except Exception as e:
                #     # 创建客户表和客户分配表异常
                #     # 回滚从iter中取出的id到失误表里
                #     Salerole.rollback(sale_id)
                #     return HttpResponse("录入异常")
                return HttpResponse('录入成功')

            else:
                return render(request, 'single_view.html', {'form': form})
示例#4
0
    def single_view(self, request):
        """
        单条录入客户信息
        :param request:
        :return:
        """

        if request.method == "GET":
            form = SingleModelForm()
            return render(request, 'single_view.html', {'form': form})
        else:
            """单条导入,request.POST所有导入的数据
              一、数据校验
              二、获取销售ID
              三、写入数据库
            """
            form = SingleModelForm(request.POST)
            # 数据校验
            if form.is_valid():
                from xxxxxx import AutoSale
                ctime = datetime.datetime.now().date()

                # 获取销售ID
                sale_id = AutoSale.get_sale_id()
                if not sale_id:
                    return HttpResponse("无销售顾问,无法进行自动分配")

                try:
                    with transaction.atomic():
                        # 创建客户表
                        form.instance.consultant_id = sale_id
                        form.instance.recv_date = ctime
                        form.instance.last_consult_date = ctime
                        new_customer = form.save()

                        # 创建客户分配表
                        models.CustomerDistribution.objects.create(
                            customer=new_customer,
                            user_id=sale_id,
                            ctime=ctime)

                        # 发送消息
                        message.send_message('*****@*****.**', '骚峰', '你别走了',
                                             '来solo')

                except Exception as e:
                    # 创建客户和分配销售异常
                    AutoSale.rollback(sale_id)
                    return HttpResponse('录入异常')

                return HttpResponse('录入成功')

            else:
                return render(request, 'single_view.html', {'form': form})
示例#5
0
    def single_view(self, request):
        """
        单条录入客户信息
        :param request: 
        :return: 
        """

        if request.method == "GET":
            form = SingleModelForm()
            return render(request, 'single_view.html', {'form': form})
        else:
            from auto_distribute import AutoDistribute
            from django.db import transaction
            form = SingleModelForm(request.POST)
            if form.is_valid():
                current_time = datetime.datetime.now().date()
                print(current_time)
                # 获取销售ID
                sale_id = AutoDistribute.get_sale_id()
                if not sale_id:
                    return HttpResponse("目前无空闲销售,无法进行自动分配")

                try:
                    with transaction.atomic():  #事务
                        # 创建客户表,form中缺少我们需要的必要信息,用以下方式补足
                        form.instance.consultant_id = sale_id
                        form.instance.recv_date = current_time
                        form.instance.last_consult_date = current_time
                        new_customer = form.save()

                        # 创建客户分配表
                        models.CustomerDistribution.objects.create(
                            customer=new_customer,
                            user_id=sale_id,
                            ctime=current_time)

                        # 分配完后,发送消息
                        message.send_message('*****@*****.**', '放哨', '你别走了',
                                             '三个月工资太多了')
                        # 收件人邮箱         收件人    主题       邮件内容

                        # for i in range(5):
                        #     message.send_message('*****@*****.**', '小可爱', '爱你哦', '宝贝辛苦啦,明天见呀,%s'%(i))
                except Exception as e:
                    # 创建客户和分配销售异常
                    AutoDistribute.rollback(sale_id)
                    return HttpResponse('录入异常')

                return HttpResponse('录入成功')

            else:
                return render(request, 'single_view.html', {'form': form})
示例#6
0
 def multi(self, request):
     if request.method == 'GET':
         return render(request, 'multi_view.html')
     else:
         ctime = datetime.datetime.now().date()
         from django.db import transaction
         from io import BytesIO
         file_obj = request.FILES.get('exfile')
         f = BytesIO()
         for chunk in file_obj:
             f.write(chunk)
         import xlrd
         work_hold = xlrd.open_workbook(file_contents=f.getvalue())
         sheet = work_hold.sheet_by_index(0)
         maps = {
             0: 'qq',
             1: 'name',
             2: 'gender',
             3: 'education',
             4: 'graduation_school',
             5: 'major',
             6: 'experience',
             7: 'work_status',
             8: 'course',
         }
         print('sheet.nrows', sheet.nrows)
         for index in range(1, sheet.nrows):  # 这个是获取的行数
             sale_id = XXX.get_sale_id()
             if not sale_id:
                 return HttpResponse("没有客户顾问无法分配")
             row = sheet.row(index)  # 这是通过行数获取行的内容
             dict_obj = {}  # 字典
             for i in range(len(maps)):  # 这是获取列的数量
                 key = maps[i]  # 这是键
                 cell = row[i]  # 这是获取空格的对象
                 dict_obj[key] = cell.value
             try:
                 with transaction.atomic():
                     dict_obj['consultant_id'] = int(
                         sale_id.decode('utf-8'))
                     course_list = []
                     course_list.extend(dict_obj.pop('course').split(','))
                     obj = models.Customer.objects.create(**dict_obj)
                     obj.course = course_list
                     models.CustomerDistribution.objects.create(
                         user_id=sale_id, customer=obj, ctime=ctime)
             except Exception as e:
                 print(e)
                 XXX.rollback(sale_id)
             message.send_message('自动发送', '很,兴奋代码自动发送邮件,',
                                  '*****@*****.**', '大毛')
         return HttpResponse('保存成功')
示例#7
0
    def single(self, request):
        if request.method == "GET":
            form = SingleModelForm()
            return render(request, 'single_form.html', {'form': form})
        else:

            form = SingleModelForm(request.POST)
            if form.is_valid():
                sale_id = XXX.get_sale_id()
                if not sale_id:
                    return HttpResponse("没有客户顾问无法分配")
                ctime = datetime.datetime.now().date()
                from django.db import transaction
                try:
                    with transaction.atomic():
                        #方法一
                        # form.instance.consultant_id = sale_id
                        # form.instance.recv_date = ctime
                        # form.instance.last_consult_date = ctime
                        # obj = form.save()
                        #方法二
                        form.cleaned_data['consultant_id'] = sale_id
                        form.cleaned_data['recv_date'] = ctime
                        form.cleaned_data['last_consult_date'] = ctime
                        course_list = form.cleaned_data.pop('course')
                        print('course_list', course_list)
                        obj = models.Customer.objects.create(
                            **form.cleaned_data)
                        obj.course.add(*course_list)
                        models.CustomerDistribution.objects.create(
                            user_id=sale_id, customer=obj, ctime=ctime)
                        #发短信
                except Exception as e:
                    XXX.rollback(sale_id)
                message.send_message('自动发送', '很,兴奋代码自动发送邮件,',
                                     '*****@*****.**', '大毛')
                return HttpResponse('保存成功')
            else:
                return render(request, 'single_form.html', {'form': form})