educode_sales 0.1.0 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/educode_sales/app.css +2 -1
  3. data/app/controllers/educode_sales/activities_controller.rb +7 -1
  4. data/app/controllers/educode_sales/application_controller.rb +0 -1
  5. data/app/controllers/educode_sales/businesses_controller.rb +16 -9
  6. data/app/controllers/educode_sales/follow_ups_controller.rb +12 -8
  7. data/app/controllers/educode_sales/operation_plans_controller.rb +155 -0
  8. data/app/controllers/educode_sales/operation_reports_controller.rb +125 -0
  9. data/app/controllers/educode_sales/places_controller.rb +3 -4
  10. data/app/controllers/educode_sales/plans_controller.rb +12 -10
  11. data/app/controllers/educode_sales/roles_controller.rb +11 -0
  12. data/app/controllers/educode_sales/sale_reports_controller.rb +5 -4
  13. data/app/controllers/educode_sales/sales_controller.rb +4 -1
  14. data/app/controllers/educode_sales/sessions_controller.rb +2 -1
  15. data/app/controllers/educode_sales/teacher_follows_controller.rb +146 -0
  16. data/app/controllers/educode_sales/teachers_controller.rb +113 -11
  17. data/app/models/ability.rb +0 -1
  18. data/app/models/educode_sales/activity.rb +2 -1
  19. data/app/models/educode_sales/business.rb +0 -1
  20. data/app/models/educode_sales/common.rb +1 -0
  21. data/app/models/educode_sales/course_subject.rb +1 -1
  22. data/app/models/educode_sales/money_plan.rb +3 -3
  23. data/app/models/educode_sales/operation_plan.rb +2 -0
  24. data/app/models/educode_sales/place.rb +1 -0
  25. data/app/models/educode_sales/sale_plan.rb +2 -0
  26. data/app/models/educode_sales/staff.rb +5 -3
  27. data/app/models/educode_sales/teacher.rb +20 -1
  28. data/app/views/educode_sales/activities/edit.html.erb +4 -4
  29. data/app/views/educode_sales/activities/index.html.erb +23 -8
  30. data/app/views/educode_sales/activities/index.json.jbuilder +1 -1
  31. data/app/views/educode_sales/activities/new.html.erb +4 -3
  32. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +2 -2
  33. data/app/views/educode_sales/businesses/edit_plan.html.erb +12 -7
  34. data/app/views/educode_sales/businesses/index.html.erb +137 -141
  35. data/app/views/educode_sales/businesses/index.json.jbuilder +2 -1
  36. data/app/views/educode_sales/businesses/new.html.erb +1 -1
  37. data/app/views/educode_sales/businesses/show_follow.html.erb +18 -3
  38. data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
  39. data/app/views/educode_sales/home/search_users.json.jbuilder +1 -1
  40. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +82 -88
  41. data/app/views/educode_sales/operation_plans/_monthly.html.erb +126 -97
  42. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +103 -90
  43. data/app/views/educode_sales/operation_plans/_weekly.html.erb +116 -87
  44. data/app/views/educode_sales/operation_plans/edit_month.html.erb +44 -32
  45. data/app/views/educode_sales/operation_plans/edit_monthly.html.erb +1 -1
  46. data/app/views/educode_sales/operation_plans/edit_week.html.erb +49 -39
  47. data/app/views/educode_sales/operation_plans/edit_weekly.html.erb +1 -1
  48. data/app/views/educode_sales/operation_plans/index.html.erb +35 -5
  49. data/app/views/educode_sales/operation_plans/index.json.jbuilder +19 -0
  50. data/app/views/educode_sales/operation_plans/my_month.json.jbuilder +18 -0
  51. data/app/views/educode_sales/operation_plans/my_week.json.jbuilder +19 -0
  52. data/app/views/educode_sales/operation_plans/new_month.html.erb +13 -10
  53. data/app/views/educode_sales/operation_plans/new_monthly.html.erb +162 -72
  54. data/app/views/educode_sales/operation_plans/new_week.html.erb +14 -7
  55. data/app/views/educode_sales/operation_plans/new_weekly.html.erb +205 -120
  56. data/app/views/educode_sales/operation_plans/show_month.html.erb +4 -10
  57. data/app/views/educode_sales/operation_plans/show_week.html.erb +20 -25
  58. data/app/views/educode_sales/operation_plans/show_weekly.html.erb +6 -6
  59. data/app/views/educode_sales/operation_reports/audit.html.erb +214 -0
  60. data/app/views/educode_sales/operation_reports/edit.html.erb +234 -0
  61. data/app/views/educode_sales/operation_reports/index.json.jbuilder +18 -0
  62. data/app/views/educode_sales/operation_reports/plans.json.jbuilder +19 -0
  63. data/app/views/educode_sales/operation_reports/show.html.erb +139 -0
  64. data/app/views/educode_sales/operations/trends.html.erb +8 -0
  65. data/app/views/educode_sales/places/index.html.erb +6 -0
  66. data/app/views/educode_sales/places/index.json.jbuilder +1 -1
  67. data/app/views/educode_sales/plans/_monthPlan.html.erb +9 -1
  68. data/app/views/educode_sales/plans/_monthly.html.erb +10 -2
  69. data/app/views/educode_sales/plans/_weekPlan.html.erb +17 -5
  70. data/app/views/educode_sales/plans/_weekly.html.erb +10 -2
  71. data/app/views/educode_sales/plans/audit_weekly.html.erb +6 -0
  72. data/app/views/educode_sales/plans/edit_monthly.html.erb +8 -0
  73. data/app/views/educode_sales/plans/edit_week.html.erb +8 -2
  74. data/app/views/educode_sales/plans/edit_weekly.html.erb +8 -0
  75. data/app/views/educode_sales/plans/index.json.jbuilder +1 -1
  76. data/app/views/educode_sales/plans/my_month.json.jbuilder +1 -1
  77. data/app/views/educode_sales/plans/my_week.json.jbuilder +1 -1
  78. data/app/views/educode_sales/plans/new_month.html.erb +7 -3
  79. data/app/views/educode_sales/plans/new_monthly.html.erb +8 -0
  80. data/app/views/educode_sales/plans/new_week.html.erb +8 -2
  81. data/app/views/educode_sales/plans/new_weekly.html.erb +7 -1
  82. data/app/views/educode_sales/roles/index.html.erb +33 -2
  83. data/app/views/educode_sales/sale_reports/index.json.jbuilder +1 -1
  84. data/app/views/educode_sales/sale_trends/trends.html.erb +8 -0
  85. data/app/views/educode_sales/sales/index.html.erb +2 -1
  86. data/app/views/educode_sales/sales/operations.html.erb +5 -2
  87. data/app/views/educode_sales/sessions/login.html.erb +1 -1
  88. data/app/views/educode_sales/staffs/edit.html.erb +2 -3
  89. data/app/views/educode_sales/staffs/index.html.erb +4 -4
  90. data/app/views/educode_sales/staffs/new.html.erb +1 -1
  91. data/app/views/educode_sales/teachers/add_courses.html.erb +100 -19
  92. data/app/views/educode_sales/teachers/course_subject.json.jbuilder +10 -0
  93. data/app/views/educode_sales/teachers/edit.html.erb +54 -18
  94. data/app/views/educode_sales/teachers/edit_follow_record.html.erb +49 -30
  95. data/app/views/educode_sales/teachers/index.html.erb +20 -11
  96. data/app/views/educode_sales/teachers/index.json.jbuilder +2 -0
  97. data/app/views/educode_sales/teachers/new.html.erb +8 -6
  98. data/app/views/educode_sales/teachers/new_follow_record.html.erb +54 -29
  99. data/app/views/educode_sales/teachers/show_follow.html.erb +150 -170
  100. data/app/views/educode_sales/teachers/show_follow.json.jbuilder +20 -0
  101. data/app/views/educode_sales/teachers/show_follow_record.html.erb +11 -42
  102. data/app/views/educode_sales/teachers/unfinish_plans.json.jbuilder +14 -0
  103. data/app/views/layouts/educode_sales/application.html.erb +23 -2
  104. data/config/routes.rb +22 -4
  105. data/db/migrate/20210915061738_add_students_count_teacher_follow_ups.rb +9 -0
  106. data/lib/educode_sales/version.rb +1 -1
  107. metadata +19 -6
@@ -4,6 +4,7 @@ module EducodeSales
4
4
  class PlacesController < ApplicationController
5
5
  def index
6
6
  respond_to do |format|
7
+ authorize! :read, Place
7
8
  format.html do
8
9
  end
9
10
  format.json do
@@ -28,7 +29,6 @@ module EducodeSales
28
29
 
29
30
  def create
30
31
  place = @current_admin.places.new(name: params[:name])
31
- # place = Place.new(name: params[:name])
32
32
  commons = []
33
33
  params[:area_ids].each do |d|
34
34
  commons << Common.find(d)
@@ -42,7 +42,6 @@ module EducodeSales
42
42
  end
43
43
 
44
44
  def update
45
- # id = @current_admin.id
46
45
  place = Place.find(params[:id])
47
46
  place.assign_attributes(name: params[:name])
48
47
  commons = []
@@ -61,8 +60,8 @@ module EducodeSales
61
60
  place = Place.find(params[:id])
62
61
  place.destroy
63
62
  render_success
64
- # rescue ActiveRecord::DeleteRestrictionError => e
65
- # render_failure '该用户已有数据产生,暂不能删除'
63
+ rescue ActiveRecord::DeleteRestrictionError => e
64
+ render_failure '渠道下已有关联数据产生,暂不能删除'
66
65
  end
67
66
 
68
67
  end
@@ -4,7 +4,7 @@ module EducodeSales
4
4
  class PlansController < ApplicationController
5
5
 
6
6
  def index
7
- authorize! :read, SalePlan
7
+ # authorize! :read, SalePlan
8
8
  respond_to do |format|
9
9
  format.html do
10
10
  common = Common.find_by(clazz: 'staff_type', name: '销售')
@@ -39,13 +39,14 @@ module EducodeSales
39
39
  @sale_plans = @sale_plans.where("month >= ? and month <= ?", "#{params[:q][:year]}-01-01 00:00:00".to_date, "#{params[:q][:year]}-12-31 23:59:00".to_date)
40
40
  end
41
41
  if params[:q].present? && params[:q][:month].present?
42
- @sale_plans = @sale_plans.where("month >= ?", "#{params[:q][:month]}-01 00:00:00".to_date)
42
+ @sale_plans = @sale_plans.where("month = ?", "#{params[:q][:month]}-01 00:00:00".to_date)
43
43
  end
44
44
  if params[:sort].present? && params[:sort][:field]
45
45
  @sale_plans = @sale_plans.order("#{params[:sort][:field]} #{params[:sort][:order]}")
46
46
  else
47
47
  @sale_plans = @sale_plans.order("updated_at desc")
48
48
  end
49
+
49
50
  @sale_plans = @sale_plans.page(params[:page]).per(params[:per_page])
50
51
  end
51
52
  end
@@ -66,6 +67,7 @@ module EducodeSales
66
67
  end
67
68
  end
68
69
 
70
+
69
71
  def new_week
70
72
  @business = Business.find_by(id: params[:business_id])
71
73
  week = Time.now.strftime('%W').to_i
@@ -82,7 +84,7 @@ module EducodeSales
82
84
 
83
85
  def new_weekly
84
86
  sale_plans = SalePlan.where(month: Time.now.strftime("%Y-%m") + "-01 00:00:00", weekly: Time.now.strftime('%W').to_i, staff_id: @current_admin.id)
85
- @rate = sale_plans ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
87
+ @rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
86
88
  @departments_count = sale_plans.joins(:business).count("distinct(department_id)")
87
89
  @total_amount = sale_plans.joins(business: :last_follow_up).sum("total_amount")
88
90
  render layout: false
@@ -96,7 +98,7 @@ module EducodeSales
96
98
 
97
99
  def new_monthly
98
100
  sale_plans = SalePlan.where(month: Time.now.strftime("%Y-%m") + "-01 00:00:00", staff_id: @current_admin.id, weekly: nil)
99
- @rate = sale_plans ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
101
+ @rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
100
102
  @departments_count = sale_plans.joins(:business).count("distinct(department_id)")
101
103
  @total_amount = sale_plans.joins(business: :last_follow_up).sum("total_amount")
102
104
  render layout: false
@@ -122,7 +124,7 @@ module EducodeSales
122
124
 
123
125
  def edit_week
124
126
  @businesses = @current_admin.businesses.pluck(:name, :id)
125
- @sale_plan = @current_admin.sale_plans.find(params[:id])
127
+ @sale_plan = SalePlan.find(params[:id])
126
128
  if @sale_plan.weekly.present?
127
129
  week = Time.now.strftime('%W').to_i
128
130
  if week > 3
@@ -139,12 +141,12 @@ module EducodeSales
139
141
  @months << @sale_plan.month.strftime("%Y-%m")
140
142
  @months = @months.uniq.sort
141
143
  @finish_rates = []
142
- 10.times { |d| @finish_rates << ["#{d * 10}%", d * 10] }
144
+ 11.times { |d| @finish_rates << ["#{d * 10}%", d * 10] }
143
145
  render layout: false
144
146
  end
145
147
 
146
148
  def update
147
- sale_plan = @current_admin.sale_plans.find(params[:id])
149
+ sale_plan = SalePlan.find(params[:id])
148
150
  params["month"] = params["month"] + "-1"
149
151
  if sale_plan.update(plan_params)
150
152
  render_success
@@ -154,7 +156,7 @@ module EducodeSales
154
156
  end
155
157
 
156
158
  def destroy
157
- sale_plan = @current_admin.sale_plans.find(params[:id])
159
+ sale_plan = SalePlan.find(params[:id])
158
160
  if sale_plan.destroy
159
161
  render_success
160
162
  else
@@ -168,9 +170,9 @@ module EducodeSales
168
170
 
169
171
  def edit_month
170
172
  @businesses = @current_admin.businesses.pluck(:name, :id)
171
- @sale_plan = @current_admin.sale_plans.find(params[:id])
173
+ @sale_plan = SalePlan.find(params[:id])
172
174
  @finish_rates = []
173
- 10.times { |d| @finish_rates << ["#{d*10}%", d * 10]}
175
+ 11.times { |d| @finish_rates << ["#{d*10}%", d * 10]}
174
176
  render layout: false
175
177
  end
176
178
 
@@ -35,6 +35,17 @@ module EducodeSales
35
35
  render layout: false
36
36
  end
37
37
 
38
+ def update_role
39
+ role = Role.find(params[:id])
40
+ if role.update(name: params[:name])
41
+ render_success
42
+ else
43
+ render_failure role
44
+ end
45
+ end
46
+
47
+
48
+
38
49
  def update
39
50
  permissions = []
40
51
  role = Role.find(params[:id])
@@ -27,7 +27,7 @@ module EducodeSales
27
27
  end
28
28
 
29
29
  def destroy
30
- sale_report = @current_admin.sale_reports.find(params[:id])
30
+ sale_report = SaleReport.find(params[:id])
31
31
  if sale_report.destroy
32
32
  render_success
33
33
  else
@@ -35,8 +35,9 @@ module EducodeSales
35
35
  end
36
36
  end
37
37
 
38
+
38
39
  def index
39
- authorize! :read, SalePlan
40
+ # authorize! :read, SalePlan
40
41
  respond_to do |format|
41
42
  format.html do
42
43
  end
@@ -81,12 +82,12 @@ module EducodeSales
81
82
 
82
83
 
83
84
  def edit
84
- @sale_report = @current_admin.sale_reports.find(params[:id])
85
+ @sale_report = SaleReport.find(params[:id])
85
86
  render layout: false
86
87
  end
87
88
 
88
89
  def update
89
- sale_report = @current_admin.sale_reports.find(params[:id])
90
+ sale_report = SaleReport.find(params[:id])
90
91
  sale_report.content = params[:content]
91
92
  if sale_report.save
92
93
  render_success
@@ -6,7 +6,7 @@ module EducodeSales
6
6
  # authorize_resource class: false
7
7
 
8
8
  def index
9
- # authorize! :sales, Staff
9
+ authorize! :sales, Staff
10
10
  respond_to do |format|
11
11
  format.html do
12
12
  end
@@ -22,11 +22,13 @@ module EducodeSales
22
22
  end
23
23
 
24
24
  def trends
25
+ authorize! :trends, SaleTrend
25
26
  @year = params[:year] ? params[:year] : Time.now.year
26
27
  @sale_trend = SaleTrend.find_or_create_by(year: @year)
27
28
  end
28
29
 
29
30
  def sale_trends
31
+ authorize! :sale_trends, SaleTrend
30
32
  sale_trend = SaleTrend.find_by(year: params[:year])
31
33
  if sale_trend.update(sale_trend_params)
32
34
  render_success
@@ -36,6 +38,7 @@ module EducodeSales
36
38
  end
37
39
 
38
40
  def operations
41
+ authorize! :operations, Staff
39
42
  respond_to do |format|
40
43
  format.html do
41
44
  end
@@ -9,12 +9,13 @@ module EducodeSales
9
9
  end
10
10
 
11
11
  def create
12
- user = User.find_by(login: params[:account])
12
+ user = User.where("login = :acount OR mail = :acount OR phone = :acount", acount: params[:account]).first
13
13
  if user&.admin
14
14
  check_pwd(user)
15
15
  elsif user
16
16
  staff = Staff.find_by(user_id: user.id)
17
17
  if staff
18
+ return render_failure('该账号已禁止使用') if staff.expired_at < Time.now
18
19
  check_pwd(user, staff)
19
20
  else
20
21
  render_failure('账号不存在')
@@ -0,0 +1,146 @@
1
+ require_dependency "educode_sales/application_controller"
2
+
3
+ module EducodeSales
4
+ class TeacherFollowsController < ApplicationController
5
+ def create
6
+ load_teacher
7
+ follow_up = @teacher.teacher_follows.build(follow_up_params)
8
+ follow_up.staff = @current_admin
9
+ if @teacher.user_id.present?
10
+ course_ids = CourseMember.where(user_id: @teacher.user_id).where.not(role: 4).pluck(:course_id)
11
+ follow_up.course_shixuns_count = CourseMember.joins(course: :practice_homework_shixuns).where(course_id: course_ids).pluck(:shixun_id).uniq.count
12
+ follow_up.shixuns_count = ShixunMember.where(user_id: @teacher.user_id, role: 1).count
13
+ follow_up.students_count = CourseMember.where(course_id: course_ids, role: 4).count
14
+ follow_up.evaluates_count = CourseMember.joins(course: :practice_homework_shixuns).where(course_id: course_ids).count
15
+ follow_up.courses_count = course_ids.size
16
+ end
17
+ if follow_up.save
18
+ render_success
19
+ else
20
+ render_failure follow_up
21
+ end
22
+ end
23
+
24
+ def destroy
25
+ follow_up = @current_admin.teacher_follows.find(params[:id])
26
+ if follow_up.destroy
27
+ render_success
28
+ else
29
+ render_failure follow_up
30
+ end
31
+ end
32
+
33
+ def update
34
+ follow_up = @current_admin.teacher_follows.find(params[:id])
35
+ follow_up.assign_attributes(follow_up_params)
36
+ # follow_up.profit_amount = follow_up.actual_amount * (100-follow_up.divide_rate.to_i) * 0.01 if follow_up.actual_amount
37
+ if follow_up.save
38
+ render_success
39
+ else
40
+ render_failure follow_up
41
+ end
42
+ end
43
+ #
44
+ # def teachers
45
+ # follow_up = @current_admin.follow_ups.find_by(id: params[:id])
46
+ # if follow_up.present?
47
+ # @teachers = follow_up.key_person.includes(:teacher).page(params[:page]).per(params[:per_page])
48
+ # else
49
+ # @teachers = FollowUp.none
50
+ # end
51
+ # end
52
+ #
53
+ # def money_plans
54
+ # follow_up = @current_admin.follow_ups.find_by(id: params[:id])
55
+ # @money_plans = follow_up.money_plans.page(params[:page]).per(params[:per_page])
56
+ # end
57
+ #
58
+ # def add_money
59
+ # follow_up = @current_admin.follow_ups.find(params[:id])
60
+ # money_plan = follow_up.money_plans.build(date_at: params[:date_at], amount: params[:amount], clazz: params[:clazz])
61
+ # money_plan.staff = @current_admin
62
+ # if money_plan.save
63
+ # render_success
64
+ # else
65
+ # render_failure money_plan
66
+ # end
67
+ # end
68
+ #
69
+ # def update_money
70
+ # follow_up = @current_admin.follow_ups.find_by(id: params[:id])
71
+ # money_plan = follow_up.money_plans.find(params[:plan_id])
72
+ # if money_plan.update(date_at: params[:date_at], amount: params[:amount], clazz: params[:clazz])
73
+ # render_success
74
+ # else
75
+ # render_failure money_plan
76
+ # end
77
+ # end
78
+ #
79
+ # def delete_money
80
+ # follow_up = @current_admin.follow_ups.find_by(id: params[:id])
81
+ # money_plan = follow_up.money_plans.find(params[:plan_id])
82
+ # if money_plan.destroy
83
+ # render_success
84
+ # else
85
+ # render_failure money_plan
86
+ # end
87
+ # end
88
+ #
89
+ # def add_keys
90
+ # follow_up = @current_admin.follow_ups.find(params[:id])
91
+ # if params[:name].blank?
92
+ # return render_failure '请从平台里选择教师'
93
+ # end
94
+ #
95
+ # names = params[:name].split("-")
96
+ # if names[0] == 't'
97
+ # # 从教师列表里选择的用户
98
+ # teacher = Teacher.find(names[1])
99
+ # key_peprson = KeyPerson.new(teacher_params)
100
+ # key_peprson.teacher = teacher
101
+ # else
102
+ # # 从头歌平台选择的用户
103
+ # user = User.find(names[1])
104
+ # teacher = Teacher.new(staff: @current_admin,
105
+ # professional_title: params[:professional_title],
106
+ # job: params[:job],
107
+ # user_id: user.id,
108
+ # is_key: true,
109
+ # department_id: user.department_id,
110
+ # name: user.real_name
111
+ # )
112
+ # teacher.save
113
+ # key_peprson = KeyPerson.new(teacher_params)
114
+ # key_peprson.teacher = teacher
115
+ # end
116
+ #
117
+ # follow_up.key_person << key_peprson
118
+ # if follow_up.save!
119
+ # render_success
120
+ # else
121
+ # render_failure follow_up
122
+ # end
123
+ # rescue ActiveRecord::RecordInvalid => e
124
+ # if e.message.include?("Teacher已经被使用") || e.message.include?('Key person是无效的')
125
+ # render_failure '该老师已在关键人列表中'
126
+ # else
127
+ # render_failure e.message
128
+ # end
129
+ # end
130
+
131
+ private
132
+
133
+ def load_teacher
134
+ @teacher = Teacher.find(params[:teacher_id])
135
+ end
136
+ #
137
+ def follow_up_params
138
+ params.permit(:attitude_id, :follow_id, :course_plan_id, :course_build_id, :description)
139
+ end
140
+ #
141
+ # def teacher_params
142
+ # params.permit(:professional_title, :job, :attitude_id, :sex, :birth_date, :remark)
143
+ # end
144
+
145
+ end
146
+ end
@@ -21,11 +21,23 @@ module EducodeSales
21
21
  def index
22
22
  respond_to do |format|
23
23
  format.html do
24
-
25
- # @teachers = Teacher.joins(:user).map { |d| [d.user.real_name, d.id] }
26
24
  end
27
25
  format.json do
28
- @teachers = Teacher.where(is_key: false)
26
+ if @current_admin.is_admin?
27
+ @teachers = Teacher.where(is_key: false)
28
+ else
29
+ level = @current_admin.role.role_areas.find_by(clazz: '教师运营').level
30
+ case level
31
+ when '自己'
32
+ @teachers = Teacher.where(is_key: false)
33
+ @teachers = @teachers.where(staff_id: @current_admin.id)
34
+ when '区域'
35
+ school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id)
36
+ @teachers = Teacher.joins("JOIN departments ON educode_sales_teachers.department_id = departments.id").where(is_key: false).where("departments.school_id in (?) OR educode_sales_teachers.staff_id = #{@current_admin.id}", school_ids)
37
+ else
38
+ @teachers = Teacher.where(is_key: false)
39
+ end
40
+ end
29
41
 
30
42
  if params[:q].present? && params[:q][:name].present?
31
43
  @teachers = @teachers.where("educode_sales_teachers.name like ?", "%#{params[:q][:name]}%")
@@ -36,8 +48,8 @@ module EducodeSales
36
48
  if params[:q].present? && params[:q][:regist_at].present?
37
49
  @teachers = @teachers.where("educode_sales_teachers.regist_at like ?", "%#{params[:q][:regist_at]}%")
38
50
  end
39
- if params[:q].present? && params[:q][:key_attitude].present?
40
- @teachers = @teachers.where("educode_sales_teachers.attitude_id = ?", "#{params[:q][:key_attitude]}")
51
+ if params[:q].present? && params[:q][:attitude].present?
52
+ @teachers = @teachers.where("educode_sales_teachers.attitude_id = ?", "#{params[:q][:attitude]}")
41
53
  end
42
54
  if params[:q].present? && params[:q][:teacher_source].present?
43
55
  @teachers = @teachers.where("educode_sales_teachers.source_id = ?", "#{params[:q][:teacher_source]}")
@@ -61,12 +73,14 @@ module EducodeSales
61
73
  @teachers = @teachers.where("created_at > ? AND created_at < ?", date[0], date[1])
62
74
  end
63
75
 
64
- @teachers = @teachers.page(params[:page]).per(params[:per_page])
76
+ @teachers = @teachers.order("created_at desc").page(params[:page]).per(params[:per_page])
65
77
 
66
78
  end
67
79
  end
68
80
  end
69
81
 
82
+
83
+
70
84
  def new
71
85
  render layout: false
72
86
  end
@@ -85,9 +99,10 @@ module EducodeSales
85
99
 
86
100
  if params[:activity_id].present? && params[:user_id].present?
87
101
  # 把老师添加到活动列表,提取判断下老师列表是否存在
88
- teacher = Teacher.find_by(user_id: params[:user_id])
89
- if teacher
90
- teacher.activity_teachers.build(activity_id: params[:activity_id])
102
+ find_teacher = Teacher.find_by(user_id: params[:user_id])
103
+ if find_teacher
104
+ find_teacher.activity_teachers.build(activity_id: params[:activity_id])
105
+ teacher = find_teacher
91
106
  end
92
107
  end
93
108
 
@@ -98,6 +113,22 @@ module EducodeSales
98
113
  end
99
114
  end
100
115
 
116
+ def update
117
+ department = Department.find(params[:department_id])
118
+ teacher = Teacher.find(params[:id])
119
+ teacher.department_id = department.id
120
+ teacher.assign_attributes(teacher_params)
121
+ if params[:user_id].present?
122
+ user = User.find(params[:user_id])
123
+ teacher.user_id = user.id
124
+ end
125
+ if teacher.save
126
+ render_success
127
+ else
128
+ render_failure teacher
129
+ end
130
+ end
131
+
101
132
  def destroy
102
133
  teacher = Teacher.find(params[:id])
103
134
  teacher.destroy
@@ -106,25 +137,78 @@ module EducodeSales
106
137
 
107
138
  def edit
108
139
  @teacher = Teacher.find(params[:id])
109
- gon.department = { value: @teacher.department_id, name: "#{@teacher.department.school.name}-#{@teacher.department.name}" }
140
+ gon.department = { value: @teacher.department_id, name: "#{@teacher.department&.school&.name}-#{@teacher.department&.name}" }
110
141
  gon.value = @teacher.department_id
111
142
  render layout: false
112
143
  end
113
144
 
145
+ def unfinish_plans
146
+ load_teacher
147
+ @plans = @teacher.operation_plans.where.not(finish_rate: 100).page(params[:page]).per(params[:per_page])
148
+ end
149
+
150
+ def course_subject
151
+ load_teacher
152
+ @courses = @teacher.course_subjects.all
153
+ end
154
+
114
155
  def search_new
115
156
  render layout: false
116
157
  end
117
158
 
118
159
  def add_courses
160
+ load_teacher
119
161
  render layout: false
120
162
  end
121
163
 
164
+
165
+ def create_course
166
+ load_teacher
167
+ course_subject = @teacher.course_subjects.build(name: params[:name], role_name: params[:role_name],)
168
+ # course_subject = CourseSubject.new(teacher_id: params[:teacher_id], name: params[:name], role_name: params[:role_name],)
169
+ if course_subject.save
170
+ render_success
171
+ else
172
+ render_failure course_subject
173
+ end
174
+ end
175
+
176
+ def update_course
177
+ course_subject = CourseSubject.find(params[:id])
178
+ if course_subject.update(name: params[:name], role_name: params[:role_name])
179
+ render_success
180
+ else
181
+ render_failure course_subject
182
+ end
183
+ end
184
+
185
+ def delete_course
186
+ course_subject = CourseSubject.find(params[:id])
187
+ course_subject.destroy
188
+ render_success
189
+ end
190
+
191
+
122
192
  def add_event
123
193
  render layout: false
124
194
  end
125
195
 
126
196
  def show_follow
127
- render layout: false
197
+ @teacher = Teacher.find(params[:id])
198
+ respond_to do |format|
199
+ format.html do
200
+ render layout: false
201
+ end
202
+ format.json do
203
+ @follow_ups = @teacher.teacher_follows
204
+ if params[:field]
205
+ @follow_ups = @follow_ups.order("#{params[:field]} #{params[:order]}")
206
+ else
207
+ @follow_ups = @follow_ups.order("created_at desc")
208
+ end
209
+ @follow_ups = @follow_ups.page(params[:page]).per(params[:per_page])
210
+ end
211
+ end
128
212
  end
129
213
 
130
214
  def show_class
@@ -132,14 +216,28 @@ module EducodeSales
132
216
  end
133
217
 
134
218
  def new_follow_record
219
+ @teacher = Teacher.find(params[:id])
135
220
  render layout: false
136
221
  end
137
222
 
223
+ # def create_follow_record
224
+ #
225
+ # end
226
+ #
227
+ # def update_follow_record
228
+ #
229
+ # end
230
+ # def delete_follow_record
231
+ #
232
+ # end
233
+
138
234
  def show_follow_record
235
+ @follow_up = TeacherFollow.find(params[:id])
139
236
  render layout: false
140
237
  end
141
238
 
142
239
  def edit_follow_record
240
+ @follow_up = TeacherFollow.find(params[:id])
143
241
  render layout: false
144
242
  end
145
243
 
@@ -163,5 +261,9 @@ module EducodeSales
163
261
  params.permit(:name, :professional_title, :job, :source_id)
164
262
  end
165
263
 
264
+ def load_teacher
265
+ @teacher = Teacher.find(params[:id])
266
+ end
267
+
166
268
  end
167
269
  end