require_dependency "educode_sales/application_controller" module EducodeSales class FollowUpsController < ApplicationController def create load_business follow_up = @business.follow_ups.build(follow_up_params) follow_up.staff = @current_admin follow_up.profit_amount = follow_up.actual_amount * (100-follow_up.divide_rate.to_i) * 0.01 if follow_up.actual_amount if follow_up.save @business.update(last_follow_up_id: follow_up.id) render_success else render_failure follow_up end end def destroy follow_up = FollowUp.find(params[:id]) business = follow_up.business if follow_up.destroy if follow_up.id == business.last_follow_up_id business.update(last_follow_up: follow_ups.last, return_money: MoneyPlan.where(clazz: '已完成', follow_up_id: follow_ups.last&.id).sum(:amount)) end render_success else render_failure follow_up end end def update follow_up = FollowUp.find(params[:id]) follow_up.assign_attributes(follow_up_params) follow_up.profit_amount = follow_up.actual_amount * (100-follow_up.divide_rate.to_i) * 0.01 if follow_up.actual_amount if follow_up.save render_success else render_failure follow_up end end def teachers follow_up = FollowUp.find_by(id: params[:id]) if follow_up.present? @teachers = follow_up.key_person.includes(:teacher).page(params[:page]).per(params[:per_page]) else @teachers = FollowUp.none end end def money_plans follow_up = FollowUp.find_by(id: params[:id]) @money_plans = follow_up.money_plans.page(params[:page]).per(params[:per_page]) end def add_money follow_up = FollowUp.find(params[:id]) money_plan = follow_up.money_plans.build(date_at: params[:date_at], amount: params[:amount], clazz: params[:clazz]) money_plan.staff = @current_admin if money_plan.save render_success else render_failure money_plan end end def update_money follow_up = FollowUp.find_by(id: params[:id]) money_plan = follow_up.money_plans.find(params[:plan_id]) if money_plan.update(date_at: params[:date_at], amount: params[:amount], clazz: params[:clazz]) render_success else render_failure money_plan end end def delete_money follow_up = FollowUp.find_by(id: params[:id]) money_plan = follow_up.money_plans.find(params[:plan_id]) if money_plan.destroy render_success else render_failure money_plan end end def add_keys follow_up = FollowUp.find(params[:id]) if params[:name].blank? return render_failure '请从平台里选择教师' end names = params[:name].split("-") if names[0] == 't' # 从教师列表里选择的用户 teacher = Teacher.find(names[1]) key_peprson = KeyPerson.new(teacher_params) key_peprson.teacher = teacher else # 从头歌平台选择的用户 user = User.find(names[1]) teacher = Teacher.new(staff: @current_admin, professional_title: params[:professional_title], job: params[:job], user_id: user.id, is_key: true, department_id: user.department_id, name: user.real_name ) teacher.save key_peprson = KeyPerson.new(teacher_params) key_peprson.teacher = teacher end follow_up.key_person << key_peprson if follow_up.save! render_success else render_failure follow_up end rescue ActiveRecord::RecordInvalid => e if e.message.include?("Teacher已经被使用") || e.message.include?('Key person是无效的') render_failure '该老师已在关键人列表中' else render_failure e.message end end private def load_business @business = Business.find(params[:business_id]) end def follow_up_params params.permit(:clazz_id, :stage_id, :invitation_at, :reception_at, :total_amount, :actual_amount, :divide_rate, :description, :advise, :place_id) end def teacher_params params.permit(:professional_title, :job, :attitude_id, :sex, :birth_date, :remark) end end end