def view_details(cid): current_user = g.user store_id = get_or_set_store_id() customer = Customer.find_by_id_and_store(cid, store_id) if not customer: abort(404) orders = Order.find_all_by_customer_sales(customer.id) appts = Appointment.find_all_by_customer_sales(customer.id) receptions = Reception.find_all_by_customer_sales(customer.id) calllogs = Calllog.find_all_by_customer_id(customer.id) form = CustomerReassignForm() form.saleses_list.choices = get_sales_selection(store_id) if current_user.is_receptionist() or ( current_user.is_sales() and current_user.is_role_in_store_id(store_id, 'manager') == False and customer.sales_id != current_user.id): abort(401) if request.method == 'GET': form.saleses_list.data = customer.sales_id if request.method == 'POST' and ( form.saleses_list.data not in ('None', customer.sales_id) and current_user.is_role_in_store_id(store_id, 'manager')): customer.reassign(int(form.saleses_list.data)) customer.save_and_flush() flash_success(u'重新分配成功') return redirect(url_for('customers.view_details', cid=cid, back_url=back_url( url_for('customers.customers'))), code=303) return render_template('customers/detail.html', selected_menu=CUSTOMER_MGMT, customer=customer, orders=orders, appts=appts, receptions=receptions, calllogs=calllogs, form=form, back_url=back_url(url_for('customers.customers')))
def reset_status(self): from application.models.appointment import Appointment if self.status == 'defeated': return elif len(Order.find_all_by_customer_sales(self.id, self.sales_id)): self.status = 'ordered' return elif Appointment.exist_opened_of_sales_customer(self.sales_id, self.id): self.status = 'enlist' return elif self.has_required_fields_filled(): self.status = 'formal' return else: self.status = 'draft' return
def get_all_customer_orders(customer_id): sales_id = request.args.get("sales_id", None) return Order.find_all_by_customer_sales(customer_id, sales_id)