def enrollment(request,customer_id): customer_obj = models.Customer.objects.get(id=customer_id) msgs = {} if request.method == "POST": enroll_form = forms.EnrollmentForm(request.POST) if enroll_form.is_valid(): msg = '''请将此链接发送给客户进行填写: http://localhost:8000/crm/customer/registration/{enroll_obj_id}/{random_str}/''' try: print("cleandata ",enroll_form.cleaned_data) enroll_form.cleaned_data["customer"] = customer_obj enroll_obj = models.Enrollment.objects.create(**enroll_form.cleaned_data) msgs["msg"] = msg.format(enroll_obj_id=enroll_obj.id) except IntegrityError as e : enroll_obj = models.Enrollment.objects.get(customer_id=customer_obj.id, enrolled_class_id=enroll_form.cleaned_data["enrolled_class"].id) if enroll_obj.contract_agreed: #学生已经同意了 return redirect("/crm/contract_review/%s/"%enroll_obj.id) enroll_form.add_error("__all__","该用户的此条报名信息已存在,不能重复创建") random_str = "".join(random.sample(string.ascii_lowercase+string.digits, 8)) #cache.set(enroll_obj.id, random_str,3000) msgs["msg"] = msg.format(enroll_obj_id=enroll_obj.id,random_str=random_str) else: enroll_form = forms.EnrollmentForm() return render(request,"sales/enrollment.html",{"enroll_form":enroll_form, "customer_obj":customer_obj, "msgs":msgs})
def contract_audit(request, enrollment_id): enrollment_obj = models.StudentEnrollment.objects.get(id=enrollment_id) if request.method == 'POST': # print(request.POST) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj, data=request.POST) if enrollment_form.is_valid(): enrollment_form.save() stu_obj = models.Student.objects.get_or_create( customer=enrollment_obj.customer)[0] stu_obj.class_grade.add(enrollment_obj.class_grade_id) stu_obj.save() enrollment_obj.customer.status = 1 enrollment_obj.save() user_obj = User.objects.get_or_create( username=enrollment_obj.customer.contact, password=make_password('feifan@123', None, 'pbkdf2_sha256'), email=enrollment_obj.eamil_address)[0] user_profile_obj = models.UserProfile.objects.get_or_create( user=user_obj, name=enrollment_obj.customer.name, student_id=stu_obj.id)[0] role_obj = models.Role.objects.get(name='students') user_profile_obj.role.add(role_obj) user_profile_obj.save() send_status = send_qq_mail(user_obj) return redirect('kingadmin:table_obj_change', 'crm', 'student', stu_obj.id) else: customer_form = forms.CustomerForm(instance=enrollment_obj.customer) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj) return render(request, 'crm/contract_audit.html', locals())
def enrollment_contract_audit(request, enrollment_id): enrollment_obj = models.StudentEnrollment.objects.get(id=enrollment_id) if request.method == "POST": enrollment_form = forms.EnrollmentForm(instance=enrollment_obj, data=request.POST) customer_form = forms.CustomerForm(instance=enrollment_obj.customer) if enrollment_form.is_valid(): print(enrollment_form.cleaned_data) enrollment_form.save() # 創建學生,get_or_create()有就取出,無就創建 stu_obj = models.Student.objects.get_or_create( customer=enrollment_obj.customer)[0] # print(stu_obj) stu_obj.class_grade.add(enrollment_obj.class_grade) stu_obj.save() # 改成已報名 enrollment_obj.customer.status = 1 enrollment_obj.customer.save() return redirect("/kingadmin/crm/customerinfo/%s/change/" % enrollment_obj.customer.id) else: return render(request, "crm/enrollment_contract_audit.html", locals()) else: customer_form = forms.CustomerForm(instance=enrollment_obj.customer) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj) return render(request, "crm/enrollment_contract_audit.html", locals())
def contract_audit(request,enrollment_id): """ 倒数第二步,审核 """ enrollment_obj = models.StudentEnrollment.objects.get(id=enrollment_id) audit_status = {'status':"false"} if request.GET.get('status'):# ajax操作,获取前端数据,再返回数据给前端 audit_status['status'] = "true" # print("11111111111") enrollment_obj.contract_agreed = False #审核驳回,设置contract_agreed为false,返回链接再发给学员重新填写 enrollment_obj.save() return HttpResponse(json.dumps(audit_status)) if request.method == "POST": # 表单提交 # print(request.POST) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj,data=request.POST) if enrollment_form.is_valid(): enrollment_form.save() # stu_obj = models.Student.objects.get_or_create(customer=enrollment_obj.customer)[0] # stu_obj.class_grades.add(enrollment_obj.class_grade_id) # stu_obj.save() # enrollment_obj.customer.status = 1 # enrollment_obj.customer.save() enrollment_obj.contract_approved_date = datetime.datetime.now() enrollment_obj.contract_approved = True enrollment_obj.save() return redirect("/crm/stu_Payment/%s"%enrollment_obj.id) else: customer_form = forms.CustomerForm(instance=enrollment_obj.customer) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj) return render(request,"crm/contract_audit.html", locals())
def enrollment(request,customer_id): customer_obj = models.Customer.objects.get(id = customer_id)#拿到该用户 msgs = {} enroll_form = forms.EnrollmentForm() if request.method =='POST': enroll_form = forms.EnrollmentForm(request.POST) if enroll_form.is_valid(): msg = '''请将此链接发送给客户进行填写: http://localhost:8001/crm/customer/registration/{enroll_obj_id}/{random_str}/''' try: enroll_form.cleaned_data["customer"] = customer_obj # 将用户信息单独加到form里面,因为只能给当前用户报名,不能临时切换成其他用户 enroll_obj = models.Enrollment.objects.create(**enroll_form.cleaned_data) msgs["msg"] = msg.format(enroll_obj_id=enroll_obj.id)#创建成功后,把连接给用户,让其上传照片什么的 except IntegrityError as e: # 此错误是因为联合唯一错误,说明此用户已经报了该课程了 enroll_obj = models.Enrollment.objects.get(customer_id=customer_obj.id, enrolled_class_id=enroll_form.cleaned_data[ "enrolled_class"].id) # 拿到该用户 enroll_form.add_error("__all__", "该用户的此条报名信息已存在,不能重复创建") random_str = "".join(random.sample(string.ascii_lowercase + string.digits, 8)) cache.set(enroll_obj.id, random_str,3000)#给enroll_obj.id设置一个cache,值为random_str, # 超时时间为3000s,这样用户报名的网址就每次都不一样 msgs["msg"] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) return render(request,'sales/enrollment.html',{'enroll_form':enroll_form, 'customer_obj':customer_obj, 'msgs':msgs})
def enrollment(request,obj_id): customer_obj = models.Customer.objects.get(id=obj_id) msgs = {} if request.method == "POST": enroll_form = forms.EnrollmentForm(request.POST) if enroll_form.is_valid(): try : enroll_form.cleaned_data["customer"]=customer_obj enroll_obj = models.Enrollment.objects.create(**enroll_form.cleaned_data) except IntegrityError as e : enroll_form.add_error("__all__","该用户的此条报名信息已存在,不能重复报名!!!") enroll_obj = models.Enrollment.objects.get(customer_id=customer_obj.id, enrollment_class_id=enroll_form.cleaned_data[ "enrollment_class"].id) if enroll_obj.contract_agreed: #判断学生是否已同意 return redirect("/crm/contract_review/%s/"%enroll_obj.id) # msgs["register_link"].fomat(enroll_obj_id=enroll_obj.id,random_str=random_str) random_str = "".join(random.sample(string.ascii_lowercase+string.digits,8)) cache.set(enroll_obj.id,random_str,3000) msgs["register_link"] = "请将此链接复制给客户 \n http://127.0.0.1:8000/crm/customers/stu_registration/%s/%s/"%(enroll_obj.id,random_str) else: enroll_form = forms.EnrollmentForm() return render(request,"sales/enrollment.html",{"enroll_form":enroll_form,"customer_obj":customer_obj,"msgs":msgs})
def enrollment_edit(request, enrollment_id): obj = models.Enrollment.objects.filter(pk=enrollment_id).first() form_obj = forms.EnrollmentForm(instance=obj) if request.method == 'POST': form_obj = forms.EnrollmentForm(request.POST, instance=obj) if form_obj.is_valid(): form_obj.save() return redirect( reverse('enrollment_list', kwargs={'customer_id': '0'})) return render(request, 'consultant/enrollment_edit.html', {'form_obj': form_obj})
def enrollment(request, customer_id): errors = {} customer_obj = models.Customer.objects.get(id=customer_id) msgs = {} if request.method == "POST": enrollment_form = forms.EnrollmentForm(request.POST) if enrollment_form.is_valid(): msg = '''请将此连接发送给客户进行填写: http://127.0.0.1:8000/crm/customer/registration/{enrollment_obj_id}/''' try: enrollment_form.cleaned_data["customer"] = customer_obj enrollment_obj = models.Enrollment.objects.create( **enrollment_form.cleaned_data) msgs["msg"] = msg.format(enrollment_obj_id=enrollment_obj.id) #设置报名链接的超时时间 # msgs["msg"] = msg.format(enrollment_obj_id =enrollment_obj.id) #random_str = "".join(random.sample(string.ascii_lowercase+string.digits,8)) # cache.set(enrollment_obj.id,random_str,604800) # msgs["msg"] = msg.format(enrollment_obj_id =enrollment_obj.id,random_str=random_str) except IntegrityError as e: enrollment_obj = models.Enrollment.objects.get( customer_id=customer_obj.id, enrolled_class_id=enrollment_form. cleaned_data["enrolled_class"].id) msgs["msg"] = msg.format(enrollment_obj_id=enrollment_obj.id) if enrollment_obj.contract_agreed and enrollment_obj.contract_approved: errors["error"] = "*此报名已审核,无需重复填写" return render( request, "sales/enrollment.html", { "enrollment_form": enrollment_form, "errors": errors, "customer_obj": customer_obj, "msgs": msgs }) else: errors["error"] = "*报名信息未完成,请让用户填写" if enrollment_obj.contract_agreed: return redirect("/crm/contract_review/%s/" % enrollment_obj.id) else: errors["error"] = "*该用户的报名信息已存在" else: enrollment_form = forms.EnrollmentForm() return render( request, "sales/enrollment.html", { "enrollment_form": enrollment_form, "errors": errors, "customer_obj": customer_obj, "msgs": msgs })
def enrollment_add(request, customer_id): obj = models.Enrollment(customer_id=customer_id) form_obj = forms.EnrollmentForm(instance=obj) if request.method == 'POST': form_obj = forms.EnrollmentForm(request.POST, instance=obj) if form_obj.is_valid(): form_obj.save() return redirect( reverse('enrollment_list', kwargs={'customer_id': '0'})) return render(request, 'consultant/enrollment_add.html', {'form_obj': form_obj})
def enrollment(request, customer_id): """报名表""" customer_obj = models.Customer.objects.get(id=customer_id) msg = {} enrollment_obj = {} if request.method == "POST": msg = {'create_status': False} customer_form = forms.EnrollmentForm(request.POST) if customer_form.is_valid(): random_str = ''.join( random.sample(string.ascii_lowercase + str(string.digits), 16)) link = 'http://127.0.0.1:8888/crm/customer/registration/%s/%s/' msg['create_status'] = True try: customer_form.cleaned_data['customer'] = customer_obj enrollment_obj = models.Enrollment.objects.create( **customer_form.cleaned_data) link = link % (enrollment_obj.id, random_str) msg['message'] = '报名信息创建成功,请将报名链接发送给学员:\n <a href="%s">%s</a>' % ( link, link) except IntegrityError: enrollment_obj['enrolled_class'] = request.POST.get( 'enrolled_class') enrollment_obj['customer'] = customer_obj.id enrollment_obj = models.Enrollment.objects.get( **enrollment_obj) if enrollment_obj.contract_agreed and not enrollment_obj.contract_approved: return redirect('/crm/contract_review/%s/' % enrollment_obj.id) consultant_id = request.POST.get('consultant') link = link % (enrollment_obj.id, random_str) if str(enrollment_obj.consultant.id) != consultant_id: msg['message'] = '该条信息已被其他教员注册,如需继续报名,请将报名链接发送给学员:\n <a href="%s">%s</a>' % ( link, link) else: msg['message'] = '该条报名信息已被注册,如需继续报名,请将报名链接发送给学员:\n <a href="%s">%s</a>' % ( link, link) cache.set(str(enrollment_obj.id), random_str, 6000) else: customer_form = forms.EnrollmentForm() return render( request, 'sales/enrollment.html', { 'modelform': customer_form, 'customer_obj': customer_obj, 'msg': msg, 'enrollment_obj': enrollment_obj })
def payment(request, enroll_id): enroll_obj = models.Enrollment.objects.get(id=enroll_id) enroll_form = forms.EnrollmentForm(instance=enroll_obj) print(enroll_form) customer_form = forms.CustomerForm(instance=enroll_obj.customer) return render(request, "sales/payment.html", {"enroll_obj": enroll_obj, "customer_form": customer_form, "enroll_form": enroll_form})
def contract_review(request,enroll_id): enroll_obj = models.Enrollment.objects.get(id=enroll_id) enroll_form = forms.EnrollmentForm(instance=enroll_obj) customer_form = forms.CustomerForm(instance=enroll_obj.customer) return render(request, 'sales/contract_review.html', { "enroll_obj":enroll_obj, "enroll_form":enroll_form, 'customer_form':customer_form})
def enrollment(request, customer_id=None, edit_id=None): obj = models.Enrollment.objects.filter(id=edit_id).first() or models.Enrollment(customer_id=customer_id) form_obj = forms.EnrollmentForm(instance=obj) if request.method == 'POST': form_obj = forms.EnrollmentForm(request.POST, instance=obj) if form_obj.is_valid(): enrollment_obj = form_obj.save() # 修改客户的状态 enrollment_obj.customer.status = 'signed' enrollment_obj.customer.save() next = request.GET.get('next') if next: return redirect(next) else: return redirect(reverse('crm:my_customer')) return render(request, 'crm/consultant/enrollment_add_and_edit.html', { "form_obj": form_obj, })
def contract_audit(request,enrollment_id): enrollment_obj = models.Enrollment.objects.get(id=enrollment_id) if request.method == "POST": #print(request.POST) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj, data=request.POST) approved = enrollment_obj.contract_approved#合同是否审核 if enrollment_form.is_valid(): enrollment_form.save() #stu_obj = models.Student.objects.get_or_create(customer=enrollment_obj.customer)[0]#课程顾问审核通过后,在学员表中创建记录 #stu_obj.class_grades.add(enrollment_obj.class_grade_id) #stu_obj.save() enrollment_obj.customer.status = 1 #更新Customer表中status状态为已报名 enrollment_obj.save() return redirect("/myadmin/crm/customer/%s/change/" % enrollment_obj.customer.id) else: customer_form = forms.CustomerForm(instance=enrollment_obj.customer) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj) return render(request, "crm/contract_audit.html", locals())
def enrollment(request, customer_id): '''销售填写客户报名班级''' enroll_form = forms.EnrollmentForm() msgs = {} customer_obj = models.Customer.objects.get(id=customer_id) random_str = "".join(random.sample(string.ascii_lowercase + string.digits, 8)) if request.method == "POST": enroll_form = forms.EnrollmentForm(request.POST) if enroll_form.is_valid(): msg = '''请将此链接发送给客户填写: http://127.0.0.1:8000/crm/customer/registration/{enroll_obj_id}/{random_str}/ ''' try: enroll_form.cleaned_data['customer'] = customer_obj print("cleaned_data:", enroll_form.cleaned_data) enroll_obj = models.Enrollment.objects.create(**enroll_form.cleaned_data) msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) cache.set(enroll_obj.id, random_str, 20) # 设置客url的生效时间 为20秒 # print("obj:", enroll_obj) except IntegrityError as e: enroll_obj = models.Enrollment.objects.get(customer_id=customer_id, enrolled_class_id=enroll_form.cleaned_data['enrolled_class'].id) # print("------>obj", obj) if enroll_obj.contract_agreed: # 学生同意合同 return redirect(reverse("contract_review", args=(enroll_obj.id,))) # return redirect("/crm/contract_review/%s/"%enroll_obj.id) cache.set(enroll_obj.id, random_str, 20) # 设置客url的生效时间 为20秒 msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) enroll_form.add_error("__all__", "该用户信息已经存在") return render(request, "sales/enrollment.html", {"enroll_form": enroll_form, "customer_obj": customer_obj, "msgs": msgs, })
def contract_audit(request, enrollment_id): enrollment_obj = models.StudentEnrollment.objects.get(id=enrollment_id) if request.method == "POST": enrollment_form = forms.EnrollmentForm(instance=enrollment_obj, data=request.POST) if enrollment_form.is_valid(): enrollment_form.save() stu_obj = models.Student.objects.get_or_create( customer=enrollment_obj.customer)[0] stu_obj.class_grades.add(enrollment_obj.class_grade_id) stu_obj.save() enrollment_obj.customer.status = 1 enrollment_obj.save() return redirect("/kingadmin/crm/customerinfo/%s/change/" % enrollment_obj.customer_id) else: customer_form = forms.CustomerForm(instance=enrollment_obj.customer) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj) return render(request, "crm/contract_audit.html", locals())
def enrollment(request, customer_id): customer_obj = models.Customer.objects.get(id=customer_id) msgs = {} if request.method == 'POST': enroll_form = forms.EnrollmentForm(request.POST) if enroll_form.is_valid(): msg = 'Please send this link to customer: http://127.0.0.1:8000/crm/customer/registration/{enroll_obj_id}/{random_str}' random_str = ''.join( random.sample(string.ascii_lowercase + string.digits, 8)) try: print('cleaned data', enroll_form.cleaned_data) enroll_form.cleaned_data['customer'] = customer_obj enroll_obj = models.Enrollment.objects.create( **enroll_form.cleaned_data) cache.set(enroll_obj.id, random_str, 3000) msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) except IntegrityError as e: enroll_obj = models.Enrollment.objects.get( customer_id=customer_obj.id, enrolled_class_id=enroll_form. cleaned_data['enrolled_class'].id) if enroll_obj.contract_agreed: return redirect("/crm/contract_review/%s/" % enroll_obj.id) enroll_form.add_error( "__all__", "This customer has already been enrolled in this course.") cache.set(enroll_obj.id, random_str, 3000) msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) else: enroll_form = forms.EnrollmentForm() return render(request, 'sales/enrollment.html', { 'enroll_form': enroll_form, 'customer_obj': customer_obj, 'msgs': msgs })
def enrollment(request, obj_id): obj = models.Customer.objects.get(id=obj_id) msg = {} if request.method == "POST": enroll_form = forms.EnrollmentForm(request.POST) if enroll_form.is_valid(): print(enroll_form.cleaned_data) message = '''请将此连接发送欸客户: http://127.0.0.1:8080/crm/customer/registration/{enroll_obj_id}/{random_str}''' random_str = ''.join( random.sample(string.ascii_lowercase + string.digits, 6)) try: enroll_form.cleaned_data["customer"] = obj enroll_obj = models.Enrollment.objects.create( **enroll_form.cleaned_data) message = message.format(enroll_obj_id=enroll_obj.id, random_str=random_str) msg["msg"] = message except IntegrityError as e: enroll_obj = models.Enrollment.objects.get( customer_id=obj_id, enrolled_class_id=enroll_form. cleaned_data["enrolled_class"].id) if enroll_obj.contract_agreed: return redirect("/crm/registration_confirm/%s/" % enroll_obj.id) enroll_form.add_error("__all__", "该用户已报名此班级") message = message.format(enroll_obj_id=enroll_obj.id, random_str=random_str) msg["msg"] = message cache.set(enroll_obj.id, random_str, 3000) else: enroll_form = forms.EnrollmentForm() return render(request, "sales/enrollment.html", { "form_obj": enroll_form, "obj": obj, "msg": msg })
def contract_audit(request, enrollment_id): # 审核 enrollment_obj = models.StudentEnrollment.objects.get(id=enrollment_id) if request.method == 'POST': enrollment_form = forms.EnrollmentForm(instance=enrollment_obj, data=request.POST) if enrollment_form.is_valid(): enrollment_form.save() # 审核后 将学员加入班级 stu_obj = models.Student.objects.get_or_create( customer=enrollment_obj.customer)[0] # (obj, true/false) stu_obj.class_grades.add(enrollment_obj.class_grade_id) stu_obj.save() enrollment_obj.customer.status = 1 # 修改报名状态 enrollment_obj.customer.save() return redirect("/xadmin/crm/customerinfo/%s/change/" % enrollment_obj.customer.id) else: customer_form = forms.CustomerForm(instance=enrollment_obj.customer) enrollment_form = forms.EnrollmentForm(instance=enrollment_obj) return render(request, 'crm/contract_audit.html', locals())
def enrollment(request, customer_id): customer_obj = models.Customer.objects.get(id=customer_id) msgs = {} if request.method == "POST": # msg = '''请将此连接发给客户填写http://127.0.0.1:8000/crm/customer/enrollment/{enroll_obj_id}''' enroll_form = forms.EnrollmentForm(request.POST) if enroll_form.is_valid(): msg = '''请将此连接发给客户填写http://127.0.0.1:8000/crm/customer/registration/{enroll_obj_id}/{random_str}/''' random_str = ''.join( random.sample(string.ascii_lowercase + string.digits, 8)) try: enroll_form.cleaned_data["customer"] = customer_obj enroll_obj = models.Enrollment.objects.create( **enroll_form.cleaned_data) cache.set(enroll_obj.id, random_str, 3000) msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) except IntegrityError as e: enroll_obj = models.Enrollment.objects.get( customer_id=customer_obj.id, enrolled_class_id=enroll_form. cleaned_data["enrolled_class"].id) enroll_form.add_error("__all__", "该用户的此条报名信息已存在,不能重复创建") # random_str = ''.join(random.sample(string.ascii_lowercase+string.digits,8)) cache.set(enroll_obj.id, random_str, 3000) msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) else: enroll_form = forms.EnrollmentForm() return render(request, 'sales/enrollment.html', { 'enroll_form': enroll_form, 'customer_obj': customer_obj, 'msgs': msgs, })
def contract_review(request, enroll_id): enroll_obj = models.Enrollment.objects.get(id=enroll_id) #取对象 contract_review = request.user.name #当前登陆人 #合同审核人 #payment_form=forms.PaymentForm()#生成表单 enroll_form = forms.EnrollmentForm(instance=enroll_obj) #报名表对象 customer_form = forms.CustomerForm(instance=enroll_obj.customer) #学员的信息 enrolled_path = '%s/%s/' % (settings.ENROLLED_DATA, enroll_id) #证件上传路径 if os.path.exists(enrolled_path): #判断目录是否存在 file_list = os.listdir(enrolled_path) #取目录 下的文件 imgs_one = file_list[0] #图片1 imgs_two = file_list[1] #图片2 if request.method == "POST": enroll_obj.contract_approved = True # 审核通过 enroll_obj.save() #保存 enroll = models.Enrollment.objects.filter(id=enroll_id).update( contract_review=contract_review) #合同审核人 print('审核通过。。。') return redirect('/crm/not_audit/') #跳转到待审核 return render(request, 'crm/contract_review.html', locals()) #
def enrollment(request, customer_id): """销售为客户报名""" customer_obj = models.Customer.objects.filter(id=customer_id).first() # 获取客户对象 enrollment_form_obj = forms.EnrollmentForm() # 报名model_from payment_form_obj = forms.PaymentModelForm() # 缴费model_form if request.method == "POST": ret = {"status": False, "errors": None, "data": None} if request.POST.get("first_step"): # print("报名流程第一步!") enrollment_form_obj = forms.EnrollmentForm(request.POST) if enrollment_form_obj.is_valid(): try: enrollment_obj = models.Enrollment.objects.create( customer=customer_obj, enrolled_class_id=request.POST.get("enrolled_class"), consultant=customer_obj.consultant, ) ret["errors"] = "请将此链接发给客户填写:%s" % get_registration_url(enrollment_obj) except Exception as e: enrollment_obj = models.Enrollment.objects.filter( customer=customer_obj, enrolled_class_id=request.POST.get("enrolled_class") ).first() if enrollment_obj.contract_agreed: # 用户同意合同并填入了个人信息资料,此时销售可以继续第二步操作了 customer_obj = models.Customer.objects.filter(id=customer_id).first() # 获取最新的客户对象 ret["data"] = {"identity_photo_list": [], "customer_info": { "name": ["客户姓名", customer_obj.name], "qq_name": ["qq名称", customer_obj.qq_name], "phone": ["手机号", customer_obj.phone], "person_id": ["身份证号", customer_obj.person_id], "contact_email": ["联系邮箱", customer_obj.contact_email], }} # 第一步操作返回的内容 # 客户身份证照片存放地址 identity_photo_path = os.path.join(settings.ENROLLED_DATA_DIR, str(enrollment_obj.id)) for file_name in os.listdir(identity_photo_path): ret["data"]["identity_photo_list"].append(file_name) ret["status"] = True else: ret["errors"] = "请将此链接发给客户填写:%s" % get_registration_url(enrollment_obj) else: ret["errors"] = enrollment_form_obj.errors.as_ul() return HttpResponse(json.dumps(ret)) elif request.POST.get("second_step"): # print("报名流程第二步!") ret["status"] = True return HttpResponse(json.dumps(ret)) elif request.POST.get("third_step"): # print("报名流程第三步!") models.Enrollment.objects.filter( customer_id=request.POST.get("customer_id"), enrolled_class_id=request.POST.get("enrolled_class_id") ).update(contract_approved=True) ret["status"] = True return HttpResponse(json.dumps(ret)) elif request.POST.get("fourth_step"): # print("报名流程第四步!") class_obj = models.ClassList.objects.filter(id=request.POST.get("enrolled_class_id")).first() # 获取用户报名的班级 data = { "customer": customer_obj, "course": class_obj.course, "amount": request.POST.get("amount"), "consultant": customer_obj.consultant, } payment_form_obj = forms.PaymentModelForm(data=data) if payment_form_obj.is_valid(): models.Payment.objects.create(**data) # 创建缴费记录 customer_obj.status = 1 # 将客户状态改为已报名 customer_obj.save() # 保存客户对象 ret["status"] = True else: ret["errors"] = payment_form_obj.errors.as_ul() return HttpResponse(json.dumps(ret)) return render(request, "sales/enrollment.html", { "customer_obj": customer_obj, "enrollment_form_obj": enrollment_form_obj, "payment_form_obj": payment_form_obj, })
def enrollment(request, customer_id): msgs = {} # 错误信息 customer_obj = models.Customer.objects.get( id=customer_id) # 取到客户信息记录 #返回到页面#报名人 consultant_obj = models.UserProfile.objects.get( id=request.user.id) # 报名课程顾问 stmp_mail = {} # 邮件发送成功 stmpemail = stmp() # 实例化发送邮件的功能 email = request.POST.get('email') # 让页面POST提交的值,在页面GET后仍然存在显示 if request.method == "POST": enroll_form = forms.EnrollmentForm(request.POST) # 获取数据 if enroll_form.is_valid(): # 表单验证 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— msg = "/crm/customer/registration/{enroll_obj_id}/{random_str}/ " random_str = ''.join( random.sample(string.ascii_lowercase + string.digits, 8)) # 生成8位随机字符串 #URL使用 url_str = '''customer/registration/{enroll_obj_id}/{random_str}/''' # 报名链接 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— try: enroll_form.cleaned_data[ 'customer'] = customer_obj # 添加学员对象 记录 #报名人 enroll_form.cleaned_data[ 'consultant'] = consultant_obj # 报名课程顾问 enroll_obj = models.Enrollment.objects.create( **enroll_form.cleaned_data) # 创建记录 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— # msgs['msg']=msg.format(enroll_obj_id=enroll_obj.id)#报名记录对应的id,随机字符串,报名链接 sort_url = enroll_obj.id # 获取报名表对应的ID cache.set(enroll_obj.id, random_str, 61000) # 加入过期时间 #URL使用 # cache缓存 msgs['msg'] = msg.format( enroll_obj_id=enroll_obj.id, random_str=random_str) # 报名记录对应的id,随机字符串,报名链接 url_str = url_str.format(enroll_obj_id=enroll_obj.id, random_str=random_str) # 报名链接 print(url_str) # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— except IntegrityError as e: # 取到这条记录 enroll_obj = models.Enrollment.objects.get( customer_id=customer_obj.id, enrolled_class_id=enroll_form. cleaned_data['enrolled_class'].id) if enroll_obj.contract_agreed: #学员已经同意合同,提交了身份证 #return redirect('/crm/contract_review/%s/'%enroll_obj.id)#跳转到审核页面 return render(request, 'crm/contract_prompt.html', locals()) #跳转提示页面 enroll_form.add_error('__all__', '记录已经存在,不能重复创建!') # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— # msgs['msg']=msg.format(enroll_obj_id=enroll_obj.id)#报名记录对应的id cache.set(enroll_obj.id, random_str, 61000) # 加入过期时间 #URL使用 # cache缓存 msgs['msg'] = msg.format(enroll_obj_id=enroll_obj.id, random_str=random_str) # 报名记录对应的id url_str = url_str.format(enroll_obj_id=enroll_obj.id, random_str=random_str) # 报名链接 # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— if email: # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— # msg_mail = "/crm/customer/registration/%s" %enroll_obj.id msg_mail = "/crm/customer/registration/%s/%s" % (enroll_obj.id, random_str) # ————————50PerfectCRM实现CRM客户报名流程学生合同URL随机码———————— stmpemail.stmps(request, email, msg_mail) # 发送邮件 stmp_mail['ok'] = "邮件已发送成功!" else: enroll_form = forms.EnrollmentForm() # modelform表单 return render(request, 'crm/enrollment.html', locals())
def contract_prompt(request, enroll_id): enroll_obj = models.Enrollment.objects.get(id=enroll_id) #取对象 enroll_form = forms.EnrollmentForm(instance=enroll_obj) #报名表对象 customers_form = forms.CustomerForm(instance=enroll_obj.customer) #学员的信息 return render(request, 'crm/contract_prompt.html', locals())