educode_sales 0.1.3 → 0.1.8

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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/educode_sales/app.css +1 -0
  3. data/app/controllers/educode_sales/activities_controller.rb +1 -1
  4. data/app/controllers/educode_sales/businesses_controller.rb +14 -9
  5. data/app/controllers/educode_sales/commons_controller.rb +1 -1
  6. data/app/controllers/educode_sales/follow_ups_controller.rb +3 -3
  7. data/app/controllers/educode_sales/operation_plans_controller.rb +7 -7
  8. data/app/controllers/educode_sales/operation_reports_controller.rb +2 -2
  9. data/app/controllers/educode_sales/places_controller.rb +1 -1
  10. data/app/controllers/educode_sales/plans_controller.rb +6 -6
  11. data/app/controllers/educode_sales/roles_controller.rb +1 -1
  12. data/app/controllers/educode_sales/sale_reports_controller.rb +2 -2
  13. data/app/controllers/educode_sales/sales_controller.rb +2 -2
  14. data/app/controllers/educode_sales/sessions_controller.rb +1 -0
  15. data/app/controllers/educode_sales/staffs_controller.rb +3 -3
  16. data/app/controllers/educode_sales/teacher_follows_controller.rb +2 -2
  17. data/app/controllers/educode_sales/teachers_controller.rb +5 -5
  18. data/app/models/educode_sales/common.rb +4 -0
  19. data/app/models/educode_sales/follow_up.rb +1 -1
  20. data/app/models/educode_sales/operation_plan.rb +0 -1
  21. data/app/models/educode_sales/sale_plan.rb +0 -1
  22. data/app/models/educode_sales/teacher.rb +11 -2
  23. data/app/views/educode_sales/activities/index.html.erb +24 -10
  24. data/app/views/educode_sales/activities/index.json.jbuilder +1 -1
  25. data/app/views/educode_sales/activities/show_teachers.html.erb +13 -7
  26. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +3 -2
  27. data/app/views/educode_sales/businesses/edit_plan.html.erb +2 -1
  28. data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
  29. data/app/views/educode_sales/businesses/show_follow.html.erb +1 -0
  30. data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -1
  31. data/app/views/educode_sales/businesses/unfinish_plans.json.jbuilder +1 -1
  32. data/app/views/educode_sales/commons/index.json.jbuilder +1 -1
  33. data/app/views/educode_sales/follow_ups/money_plans.json.jbuilder +1 -1
  34. data/app/views/educode_sales/follow_ups/teachers.json.jbuilder +1 -1
  35. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +5 -4
  36. data/app/views/educode_sales/operation_plans/_monthly.html.erb +4 -4
  37. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +9 -4
  38. data/app/views/educode_sales/operation_plans/_weekly.html.erb +4 -5
  39. data/app/views/educode_sales/operation_plans/edit_month.html.erb +3 -1
  40. data/app/views/educode_sales/operation_plans/index.html.erb +35 -5
  41. data/app/views/educode_sales/operation_plans/index.json.jbuilder +1 -1
  42. data/app/views/educode_sales/operation_plans/my_month.json.jbuilder +2 -2
  43. data/app/views/educode_sales/operation_plans/my_week.json.jbuilder +1 -1
  44. data/app/views/educode_sales/operation_plans/new_month.html.erb +3 -1
  45. data/app/views/educode_sales/operation_plans/new_monthly.html.erb +136 -30
  46. data/app/views/educode_sales/operation_plans/new_week.html.erb +4 -3
  47. data/app/views/educode_sales/operation_plans/new_weekly.html.erb +173 -81
  48. data/app/views/educode_sales/operation_reports/audit.html.erb +1 -1
  49. data/app/views/educode_sales/operation_reports/edit.html.erb +1 -1
  50. data/app/views/educode_sales/operation_reports/index.json.jbuilder +1 -1
  51. data/app/views/educode_sales/operation_reports/plans.json.jbuilder +1 -1
  52. data/app/views/educode_sales/operation_reports/show.html.erb +1 -1
  53. data/app/views/educode_sales/places/index.json.jbuilder +1 -1
  54. data/app/views/educode_sales/plans/_monthPlan.html.erb +10 -7
  55. data/app/views/educode_sales/plans/_monthly.html.erb +2 -2
  56. data/app/views/educode_sales/plans/_weekPlan.html.erb +7 -2
  57. data/app/views/educode_sales/plans/_weekly.html.erb +1 -1
  58. data/app/views/educode_sales/plans/edit_week.html.erb +1 -1
  59. data/app/views/educode_sales/plans/index.json.jbuilder +1 -1
  60. data/app/views/educode_sales/plans/my_month.json.jbuilder +1 -1
  61. data/app/views/educode_sales/plans/my_week.json.jbuilder +1 -1
  62. data/app/views/educode_sales/plans/new_monthly.html.erb +1 -1
  63. data/app/views/educode_sales/plans/new_week.html.erb +3 -1
  64. data/app/views/educode_sales/plans/new_weekly.html.erb +2 -1
  65. data/app/views/educode_sales/roles/index.json.jbuilder +1 -1
  66. data/app/views/educode_sales/sale_reports/audit.html.erb +1 -1
  67. data/app/views/educode_sales/sale_reports/edit.html.erb +1 -1
  68. data/app/views/educode_sales/sale_reports/index.json.jbuilder +1 -1
  69. data/app/views/educode_sales/sale_reports/plans.json.jbuilder +1 -1
  70. data/app/views/educode_sales/sale_reports/show.html.erb +1 -1
  71. data/app/views/educode_sales/sale_trends/trends.html.erb +1 -1
  72. data/app/views/educode_sales/sales/index.json.jbuilder +1 -1
  73. data/app/views/educode_sales/sales/operations.json.jbuilder +1 -1
  74. data/app/views/educode_sales/staffs/follow_up_departments.json.jbuilder +1 -1
  75. data/app/views/educode_sales/staffs/index.json.jbuilder +1 -1
  76. data/app/views/educode_sales/teachers/course_list.json.jbuilder +1 -0
  77. data/app/views/educode_sales/teachers/index.html.erb +3 -3
  78. data/app/views/educode_sales/teachers/index.json.jbuilder +4 -2
  79. data/app/views/educode_sales/teachers/new.html.erb +3 -5
  80. data/app/views/educode_sales/teachers/new_follow_record.html.erb +2 -0
  81. data/app/views/educode_sales/teachers/show_class.html.erb +6 -0
  82. data/app/views/educode_sales/teachers/show_follow.json.jbuilder +1 -1
  83. data/app/views/educode_sales/teachers/unfinish_plans.json.jbuilder +1 -1
  84. data/lib/educode_sales/version.rb +1 -1
  85. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b4a41e482e6776c9768761b3d37e0ad17e0244e
4
- data.tar.gz: 56041da1c4e2f2a2d7a87b8d438af0691e398c95
3
+ metadata.gz: 82d677b53ce6178046e2f6e663dabe5a5789762f
4
+ data.tar.gz: 174acd6fb6a9bf597dddd2783dd0a9f23139abea
5
5
  SHA512:
6
- metadata.gz: 6d741309b6fce698679dac6cb314da6ba096ab89fdf83067b4cd45c363995954fcc0b183b7bdc1821aa0c1af0a9a3aa62872723cac2f1b50c5c2aa4935870601
7
- data.tar.gz: 83d7f4c01c7737dc391c46cf65641c35e714f390b3792cc001968e11b4abb8e3d7f7316f7727ebccceff5299abce8b9459eeb2600f1c11216e2d2f0a5c520f47
6
+ metadata.gz: e6c888d00d3cb588d67982a88c3b316085ba23ac19c926a4e7f37810262c3dda76ce0a736f94e883ca0e89d69c5ab54d7c5d3e18bd457071a3e6ad76455c7a6e
7
+ data.tar.gz: 62eee795ac83adfe2f6d2cf102ae34557f8f291c9b836f4505042d447850c0cdeb86d0bf65de3358f18883ccd653ab893c3188168e6581d69edce52aca867dae
@@ -109,6 +109,7 @@
109
109
 
110
110
  .welcome .layui-bg-number {
111
111
  background-color: #F8F8F8;
112
+ height: 90px;
112
113
  }
113
114
 
114
115
  .welcome .layuimini-notice:hover {
@@ -13,7 +13,7 @@ module EducodeSales
13
13
  else
14
14
  @activities = @activities.order("created_at desc")
15
15
  end
16
- @activities = @activities.page(params[:page]).per(params[:per_page])
16
+ @activities = @activities.page(params[:page]).per(params[:limit])
17
17
  end
18
18
  end
19
19
  end
@@ -25,13 +25,7 @@ module EducodeSales
25
25
  end
26
26
  end
27
27
 
28
- @businesses = @businesses.select("
29
- educode_sales_businesses.*,
30
- last_follow.invitation_at,
31
- last_follow.reception_at,
32
- last_follow.total_amount").joins("
33
- LEFT JOIN educode_sales_follow_ups AS last_follow ON educode_sales_businesses.last_follow_up_id = last_follow.id
34
- ")
28
+ @businesses = @businesses
35
29
  if params[:q].present? && params[:q][:name].present?
36
30
  @businesses = @businesses.where("educode_sales_businesses.name like ?", "%#{params[:q][:name]}%")
37
31
  end
@@ -70,11 +64,22 @@ module EducodeSales
70
64
  @businesses = @businesses.where("created_at > ? AND created_at < ?", date[0], date[1])
71
65
  end
72
66
 
67
+
73
68
  if params[:sort].present? && params[:sort][:field]
74
69
  @businesses = @businesses.order("#{params[:sort][:field]} #{params[:sort][:order]}")
75
70
  else
76
71
  @businesses = @businesses.order("created_at desc")
77
72
  end
73
+
74
+ @business_count = @businesses.count
75
+
76
+ @businesses = @businesses.select("
77
+ educode_sales_businesses.*,
78
+ last_follow.invitation_at,
79
+ last_follow.reception_at,
80
+ last_follow.total_amount").joins("
81
+ LEFT JOIN educode_sales_follow_ups AS last_follow ON educode_sales_businesses.last_follow_up_id = last_follow.id
82
+ ").page(params[:page]).per(params[:limit])
78
83
  end
79
84
  end
80
85
  end
@@ -139,7 +144,7 @@ module EducodeSales
139
144
  else
140
145
  @follow_ups = @follow_ups.order("created_at desc")
141
146
  end
142
- @follow_ups = @follow_ups.page(params[:page]).per(params[:per_page])
147
+ @follow_ups = @follow_ups.page(params[:page]).per(params[:limit])
143
148
  end
144
149
  end
145
150
  end
@@ -156,7 +161,7 @@ module EducodeSales
156
161
 
157
162
  def unfinish_plans
158
163
  load_business
159
- @plans = @business.sale_plans.where.not(finish_rate: 100).page(params[:page]).per(params[:per_page])
164
+ @plans = @business.sale_plans.where.not(finish_rate: 100).page(params[:page]).per(params[:limit])
160
165
  end
161
166
 
162
167
  def show_follow_record
@@ -8,7 +8,7 @@ module EducodeSales
8
8
  format.html do
9
9
  end
10
10
  format.json do
11
- @commons = Common.group("clazz")
11
+ @commons = Common.group("clazz").page(params[:page]).per(params[:limit])
12
12
  end
13
13
  end
14
14
  end
@@ -21,7 +21,7 @@ module EducodeSales
21
21
  business = follow_up.business
22
22
  if follow_up.destroy
23
23
  if follow_up.id == business.last_follow_up_id
24
- business.update(last_follow_up: follow_ups.last, return_money: MoneyPlan.where(clazz: '已完成', follow_up_id: follow_ups.last&.id).sum(:amount))
24
+ business.update(last_follow_up: business.follow_ups.last, return_money: MoneyPlan.where(clazz: '已完成', follow_up_id: business.follow_ups.last&.id).sum(:amount))
25
25
  end
26
26
  render_success
27
27
  else
@@ -43,7 +43,7 @@ module EducodeSales
43
43
  def teachers
44
44
  follow_up = FollowUp.find_by(id: params[:id])
45
45
  if follow_up.present?
46
- @teachers = follow_up.key_person.includes(:teacher).page(params[:page]).per(params[:per_page])
46
+ @teachers = follow_up.key_person.includes(:teacher).page(params[:page]).per(params[:limit])
47
47
  else
48
48
  @teachers = FollowUp.none
49
49
  end
@@ -51,7 +51,7 @@ module EducodeSales
51
51
 
52
52
  def money_plans
53
53
  follow_up = FollowUp.find_by(id: params[:id])
54
- @money_plans = follow_up.money_plans.page(params[:page]).per(params[:per_page])
54
+ @money_plans = follow_up.money_plans.page(params[:page]).per(params[:limit])
55
55
  end
56
56
 
57
57
  def add_money
@@ -46,7 +46,7 @@ module EducodeSales
46
46
  else
47
47
  @sale_plans = @sale_plans.order("updated_at desc")
48
48
  end
49
- @sale_plans = @sale_plans.page(params[:page]).per(params[:per_page])
49
+ @sale_plans = @sale_plans.page(params[:page]).per(params[:limit])
50
50
  end
51
51
  end
52
52
  end
@@ -60,7 +60,7 @@ module EducodeSales
60
60
  else
61
61
  @weeks = [week]
62
62
  end
63
- @teachers = @current_admin.teachers.pluck(:name, :id)
63
+ @teachers = @current_admin.teachers.where(is_key: 0).pluck(:name, :id)
64
64
  render layout: false
65
65
  end
66
66
 
@@ -87,7 +87,7 @@ module EducodeSales
87
87
 
88
88
  def new_month
89
89
  @teacher = Teacher.find_by(id: params[:teacher_id])
90
- @teachers = @current_admin.teachers.pluck(:name, :id)
90
+ @teachers = @current_admin.teachers.where(is_key: 0).pluck(:name, :id)
91
91
  render layout: false
92
92
  end
93
93
 
@@ -117,7 +117,7 @@ module EducodeSales
117
117
 
118
118
  def edit_week
119
119
  @teacher = Teacher.find_by(id: params[:teacher_id])
120
- @teachers = @current_admin.teachers.pluck(:name, :id)
120
+ @teachers = @current_admin.teachers.where(is_key: 0).pluck(:name, :id)
121
121
  @sale_plan = OperationPlan.find(params[:id])
122
122
  if @sale_plan.weekly.present?
123
123
  week = Time.now.strftime('%W').to_i
@@ -145,7 +145,7 @@ module EducodeSales
145
145
 
146
146
  def edit_month
147
147
  @teacher = Teacher.find_by(id: params[:teacher_id])
148
- @teachers = @current_admin.teachers.pluck(:name, :id)
148
+ @teachers = @current_admin.teachers.where(is_key: 0).pluck(:name, :id)
149
149
  @sale_plan = OperationPlan.find(params[:id])
150
150
  @months = [Time.now.strftime("%Y-%m"), Time.now.months_ago(1).strftime("%Y-%m")]
151
151
  @months << @sale_plan.month.strftime("%Y-%m")
@@ -166,7 +166,7 @@ module EducodeSales
166
166
  else
167
167
  @sale_plans = @sale_plans.order("updated_at desc")
168
168
  end
169
- @sale_plans = @sale_plans.page(params[:page]).per(params[:per_page])
169
+ @sale_plans = @sale_plans.page(params[:page]).per(params[:limit])
170
170
  end
171
171
 
172
172
  def my_month
@@ -176,7 +176,7 @@ module EducodeSales
176
176
  else
177
177
  @sale_plans = @sale_plans.order("updated_at desc")
178
178
  end
179
- @sale_plans = @sale_plans.page(params[:page]).per(params[:per_page])
179
+ @sale_plans = @sale_plans.page(params[:page]).per(params[:limit])
180
180
  end
181
181
 
182
182
  def update
@@ -42,7 +42,7 @@ module EducodeSales
42
42
  else
43
43
  @sale_reports = @sale_reports.order("updated_at desc")
44
44
  end
45
- @sale_reports = @sale_reports.page(params[:page]).per(params[:per_page])
45
+ @sale_reports = @sale_reports.page(params[:page]).per(params[:limit])
46
46
  end
47
47
  end
48
48
  end
@@ -118,7 +118,7 @@ module EducodeSales
118
118
 
119
119
  def plans
120
120
  sale_report = OperationReport.find(params[:id])
121
- @sale_plans = OperationPlan.where(staff_id: sale_report.staff_id, month: sale_report.month, weekly: sale_report.weekly).order("updated_at desc").page(params[:page]).per(params[:per_page])
121
+ @sale_plans = OperationPlan.where(staff_id: sale_report.staff_id, month: sale_report.month, weekly: sale_report.weekly).order("updated_at desc").page(params[:page]).per(params[:limit])
122
122
  end
123
123
 
124
124
  private
@@ -8,7 +8,7 @@ module EducodeSales
8
8
  format.html do
9
9
  end
10
10
  format.json do
11
- @places = Place.page(params[:page]).per(params[:per_page])
11
+ @places = Place.page(params[:page]).per(params[:limit])
12
12
  @stage_ids = Common.where(clazz: '商机阶段', name: ['已中标','已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
13
13
  end
14
14
  end
@@ -47,7 +47,7 @@ module EducodeSales
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
+ @sale_plans = @sale_plans.page(params[:page]).per(params[:limit])
51
51
  end
52
52
  end
53
53
  end
@@ -86,7 +86,7 @@ module EducodeSales
86
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)
87
87
  @rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
88
88
  @departments_count = sale_plans.joins(:business).count("distinct(department_id)")
89
- @total_amount = sale_plans.joins(business: :last_follow_up).sum("total_amount")
89
+ @total_amount = sale_plans.joins(business: :last_follow_up).distinct.sum("total_amount")
90
90
  render layout: false
91
91
  end
92
92
 
@@ -100,7 +100,7 @@ module EducodeSales
100
100
  sale_plans = SalePlan.where(month: Time.now.strftime("%Y-%m") + "-01 00:00:00", staff_id: @current_admin.id, weekly: nil)
101
101
  @rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
102
102
  @departments_count = sale_plans.joins(:business).count("distinct(department_id)")
103
- @total_amount = sale_plans.joins(business: :last_follow_up).sum("total_amount")
103
+ @total_amount = sale_plans.joins(business: :last_follow_up).distinct.sum("total_amount")
104
104
  render layout: false
105
105
  end
106
106
 
@@ -187,7 +187,7 @@ module EducodeSales
187
187
  else
188
188
  @sale_plans = @sale_plans.order("updated_at desc")
189
189
  end
190
- @sale_plans = @sale_plans.page(params[:page]).per(params[:per_page])
190
+ @sale_plans = @sale_plans.page(params[:page]).per(params[:limit])
191
191
  end
192
192
 
193
193
  def my_month
@@ -197,13 +197,13 @@ module EducodeSales
197
197
  else
198
198
  @sale_plans = @sale_plans.order("updated_at desc")
199
199
  end
200
- @sale_plans = @sale_plans.page(params[:page]).per(params[:per_page])
200
+ @sale_plans = @sale_plans.page(params[:page]).per(params[:limit])
201
201
  end
202
202
 
203
203
  private
204
204
 
205
205
  def plan_params
206
- params.permit(:month, :weekly, :content, :finish_rate)
206
+ params.permit(:month, :weekly, :content, :finish_rate, :business_id)
207
207
  end
208
208
 
209
209
  end
@@ -9,7 +9,7 @@ module EducodeSales
9
9
  format.html do
10
10
  end
11
11
  format.json do
12
- @roles = Role.all
12
+ @roles = Role.page(params[:page]).per(params[:limit])
13
13
  end
14
14
  end
15
15
  end
@@ -75,7 +75,7 @@ module EducodeSales
75
75
  else
76
76
  @sale_reports = @sale_reports.order("updated_at desc")
77
77
  end
78
- @sale_reports = @sale_reports.page(params[:page]).per(params[:per_page])
78
+ @sale_reports = @sale_reports.page(params[:page]).per(params[:limit])
79
79
  end
80
80
  end
81
81
  end
@@ -123,7 +123,7 @@ module EducodeSales
123
123
 
124
124
  def plans
125
125
  sale_report = SaleReport.find(params[:id])
126
- @sale_plans = SalePlan.where(staff_id: sale_report.staff_id, month: sale_report.month, weekly: sale_report.weekly).order("updated_at desc").page(params[:page]).per(params[:per_page])
126
+ @sale_plans = SalePlan.where(staff_id: sale_report.staff_id, month: sale_report.month, weekly: sale_report.weekly).order("updated_at desc").page(params[:page]).per(params[:limit])
127
127
  end
128
128
 
129
129
  private
@@ -16,7 +16,7 @@ module EducodeSales
16
16
  @b_clazz = Common.find_by(clazz: 'business_type', name: 'B类')
17
17
  @step_ids = Common.where(name: %w(已中标 已签单 已验收 回款中 服务中 已结束), clazz: 'business_step').pluck(:id)
18
18
 
19
- @staffs = Staff.where(job_type: common.id).page(params[:page]).per(params[:per_page])
19
+ @staffs = Staff.where(job_type: common.id).page(params[:page]).per(params[:limit])
20
20
  end
21
21
  end
22
22
  end
@@ -44,7 +44,7 @@ module EducodeSales
44
44
  end
45
45
  format.json do
46
46
  common_id = Common.where(clazz: 'staff_type', name: ['销售', '运营']).pluck(:id)
47
- @staffs = Staff.where(job_type: common_id).page(params[:page]).per(params[:per_page])
47
+ @staffs = Staff.where(job_type: common_id).page(params[:page]).per(params[:limit])
48
48
  end
49
49
  end
50
50
  end
@@ -15,6 +15,7 @@ module EducodeSales
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('账号不存在')
@@ -8,7 +8,7 @@ module EducodeSales
8
8
  format.html do
9
9
  end
10
10
  format.json do
11
- @staffs = Staff.where(is_admin: false).page(params[:page]).per(params[:per_page])
11
+ @staffs = Staff.where(is_admin: false).page(params[:page]).per(params[:limit])
12
12
  end
13
13
  end
14
14
  end
@@ -67,13 +67,13 @@ module EducodeSales
67
67
 
68
68
  def follow_up_schools
69
69
  staff = Staff.find(params[:id])
70
- @schools = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("school_id").select("school_id, max(educode_sales_follow_ups.updated_at) AS updated_at").page(params[:page]).per(params[:per_page])
70
+ @schools = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("school_id").select("school_id, max(educode_sales_follow_ups.updated_at) AS updated_at").page(params[:page]).per(params[:limit])
71
71
  @count = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("school_id").count
72
72
  end
73
73
 
74
74
  def follow_up_departments
75
75
  staff = Staff.find(params[:id])
76
- @schools = EducodeSales::Business.joins(:last_follow_up, [department: :school]).where("educode_sales_follow_ups.staff_id = #{staff.id}").select("departments.name, schools.name AS school, educode_sales_follow_ups.updated_at").page(params[:page]).per(params[:per_page])
76
+ @schools = EducodeSales::Business.joins(:last_follow_up, [department: :school]).where("educode_sales_follow_ups.staff_id = #{staff.id}").select("departments.name, schools.name AS school, educode_sales_follow_ups.updated_at").page(params[:page]).per(params[:limit])
77
77
  end
78
78
 
79
79
 
@@ -44,7 +44,7 @@ module EducodeSales
44
44
  # def teachers
45
45
  # follow_up = @current_admin.follow_ups.find_by(id: params[:id])
46
46
  # if follow_up.present?
47
- # @teachers = follow_up.key_person.includes(:teacher).page(params[:page]).per(params[:per_page])
47
+ # @teachers = follow_up.key_person.includes(:teacher).page(params[:page]).per(params[:limit])
48
48
  # else
49
49
  # @teachers = FollowUp.none
50
50
  # end
@@ -52,7 +52,7 @@ module EducodeSales
52
52
  #
53
53
  # def money_plans
54
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])
55
+ # @money_plans = follow_up.money_plans.page(params[:page]).per(params[:limit])
56
56
  # end
57
57
  #
58
58
  # def add_money
@@ -73,7 +73,7 @@ module EducodeSales
73
73
  @teachers = @teachers.where("created_at > ? AND created_at < ?", date[0], date[1])
74
74
  end
75
75
 
76
- @teachers = @teachers.order("created_at desc").page(params[:page]).per(params[:per_page])
76
+ @teachers = @teachers.order("created_at desc").page(params[:page]).per(params[:limit])
77
77
 
78
78
  end
79
79
  end
@@ -144,7 +144,7 @@ module EducodeSales
144
144
 
145
145
  def unfinish_plans
146
146
  load_teacher
147
- @plans = @teacher.operation_plans.where.not(finish_rate: 100).page(params[:page]).per(params[:per_page])
147
+ @plans = @teacher.operation_plans.where.not(finish_rate: 100).page(params[:page]).per(params[:limit])
148
148
  end
149
149
 
150
150
  def course_subject
@@ -206,7 +206,7 @@ module EducodeSales
206
206
  else
207
207
  @follow_ups = @follow_ups.order("created_at desc")
208
208
  end
209
- @follow_ups = @follow_ups.page(params[:page]).per(params[:per_page])
209
+ @follow_ups = @follow_ups.page(params[:page]).per(params[:limit])
210
210
  end
211
211
  end
212
212
  end
@@ -244,7 +244,7 @@ module EducodeSales
244
244
  def course_list
245
245
  user = User.find_by(id: params[:user_id])
246
246
  if user
247
- @courses = Course.joins(:course_members).where(course_members: {user_id: user.id}).page(params[:page]).per(params[:per_page])
247
+ @courses = Course.joins(:course_members).where(course_members: {user_id: user.id}).page(params[:page]).per(params[:limit])
248
248
  else
249
249
  @courses = Course.none
250
250
  end
@@ -253,7 +253,7 @@ module EducodeSales
253
253
 
254
254
  def activities
255
255
  teacher = Teacher.find(params[:id])
256
- @activities = teacher.activities.page(params[:page]).per(params[:per_page])
256
+ @activities = teacher.activities.page(params[:page]).per(params[:limit])
257
257
  end
258
258
 
259
259
  private
@@ -29,5 +29,9 @@ module EducodeSales
29
29
  def self.key_attitude_name
30
30
  self.where(clazz: 'key_attitude').pluck(:id, :name).to_h
31
31
  end
32
+
33
+ def self.teacher_attitude_name
34
+ self.where(clazz: 'teacher_attitude').pluck(:id, :name).to_h
35
+ end
32
36
  end
33
37
  end
@@ -2,7 +2,7 @@ module EducodeSales
2
2
  class FollowUp < ApplicationRecord
3
3
  belongs_to :business, counter_cache: true
4
4
  belongs_to :place, optional: true
5
- has_many :money_plans
5
+ has_many :money_plans, dependent: :destroy
6
6
  has_many :key_person
7
7
  has_many :teachers, through: :key_person
8
8
  belongs_to :staff
@@ -4,6 +4,5 @@ module EducodeSales
4
4
  belongs_to :teacher
5
5
 
6
6
  validates :month, presence: true
7
- validates :weekly, presence: true
8
7
  end
9
8
  end
@@ -4,6 +4,5 @@ module EducodeSales
4
4
  belongs_to :staff
5
5
 
6
6
  validates :month, presence: true
7
- validates :weekly, presence: true
8
7
  end
9
8
  end
@@ -18,11 +18,20 @@ module EducodeSales
18
18
  user_ids = User.joins(:user_extension).where(user_extensions: {department_id: self.department_id, identity: 0}).pluck(:id)
19
19
  course_ids = CourseMember.where(role: "CREATOR", user_id: user_ids).pluck(:course_id)
20
20
  if course_ids.present?
21
+ course_members = CourseMember.joins(course: :practice_homework_shixuns).where(course_id: course_ids).group("course_id").having("COUNT(homework_commons_shixuns.id) > 100 AND COUNT(course_members.user_id) > 30").select("COUNT(*) AS count")
22
+ course_members.present? ? course_members[0]['count'] : 0
21
23
  else
22
24
  0
23
25
  end
24
- course_members = CourseMember.joins(course: :practice_homework_shixuns).where(course_id: course_ids).group("course_id").having("COUNT(homework_commons_shixuns.id) > 100 AND COUNT(course_members.user_id) > 30").select("COUNT(*) AS count")
25
- course_members.present? ? course_members[0]['count'] : 0
26
+ else
27
+ 0
28
+ end
29
+ end
30
+
31
+ def students_count
32
+ if user_id.present?
33
+ course_ids = CourseMember.where.not(role: "STUDENT").where(user_id: user_id).pluck(:course_id)
34
+ CourseMember.where(course_id: course_ids, role: "STUDENT").count
26
35
  else
27
36
  0
28
37
  end
@@ -22,7 +22,7 @@
22
22
  <a href="javascript:void(0);" lay-event="teachers" class="layui-table-link">{{ d.name}}</a>
23
23
  </script>
24
24
  <script type="text/html" id="teachers_count">
25
- <a href="javascript:void(0);" lay-event="teachers" class="layui-table-link">{{ d.teachers_count}}</a>
25
+ <a href="javascript:void(0);" lay-event="teachers_count" class="layui-table-link">{{ d.teachers_count}}</a>
26
26
  </script>
27
27
 
28
28
  <script>
@@ -60,7 +60,7 @@
60
60
  {
61
61
  field: 'days',
62
62
  title: '天数',
63
- width: 80
63
+ width: 100
64
64
  },
65
65
  {
66
66
  field: 'teachers_count',
@@ -68,14 +68,6 @@
68
68
  width: 100,
69
69
  templet: '#teachers_count'
70
70
  },
71
- // {
72
- // field: 'return_rate',
73
- // title: '回访率',
74
- // },
75
- // {
76
- // field: 'course_rate',
77
- // title: '建课率',
78
- // },
79
71
  {
80
72
  field: 'students_count',
81
73
  title: '学生数',
@@ -181,6 +173,28 @@
181
173
  });
182
174
  return false;
183
175
  }
176
+ else if (obj.event === 'teachers_count') {
177
+ activity_id = obj.data.id;
178
+ content = miniPage.getHrefContent('/educode_sales/activities/show_teachers');
179
+ openWH = miniPage.getOpenWidthHeight();
180
+ index = layer.open({
181
+ title: '活动列表/' + data.name,
182
+ type: 1,
183
+ shade: 0.2,
184
+ maxmin: true,
185
+ shadeClose: true,
186
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
187
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
188
+ content: content,
189
+ success: function (layero, index) {
190
+ form.render('select');
191
+ },
192
+ });
193
+ $(window).on("resize", function () {
194
+ layer.full(index);
195
+ });
196
+ return false;
197
+ }
184
198
  });
185
199
 
186
200
  });
@@ -11,4 +11,4 @@ json.data do
11
11
  end
12
12
  end
13
13
  json.code 0
14
- json.count @activities.size
14
+ json.count @activities.total_count
@@ -247,10 +247,11 @@
247
247
  });
248
248
  return false;
249
249
  } else if (obj.event === 'delete') {
250
+ console.log(data);
250
251
  layer.confirm('确定删除' + data.name, function (index) {
251
- request.delete('educode_sales/businesses/' + data.id, {}, function (res) {
252
+ request.delete('educode_sales/teachers/' + data.id, {}, function (res) {
252
253
  layer.close(index);
253
- table.reload("teachers_table")
254
+ table.reload("show_teachers_table")
254
255
  })
255
256
  });
256
257
  } else if (obj.event === 'addWeek') {
@@ -288,7 +289,8 @@
288
289
  });
289
290
 
290
291
  } else if (obj.event === 'courses') {
291
- content = miniPage.getHrefContent('/educode_sales/teachers/add_courses');
292
+ teacher_id = data.id
293
+ content = miniPage.getHrefContent('/educode_sales/teachers/add_courses?id='+data.id);
292
294
  openWH = miniPage.getOpenWidthHeight();
293
295
  index = layer.open({
294
296
  title: '课程方向',
@@ -298,12 +300,16 @@
298
300
  shadeClose: true,
299
301
  area: [openWH[0] + 'px', openWH[1] + 'px'],
300
302
  offset: [openWH[2] + 'px', openWH[3] + 'px'],
301
- content: content
303
+ content: content,
304
+ success: function (layero, index) {
305
+ // 重新渲染弹层中的下拉选择框select
306
+ // form.render('select');
307
+ }
302
308
  });
303
309
  $(window).on("resize", function () {
304
- layer.full(index);
310
+ layer.full(index);
305
311
  });
306
- } else if (obj.event === 'event') {
312
+ }else if (obj.event === 'event') {
307
313
  content = miniPage.getHrefContent('/educode_sales/teachers/add_event');
308
314
  openWH = miniPage.getOpenWidthHeight();
309
315
  teacher_id = obj.data.id
@@ -342,7 +348,7 @@
342
348
  layer.full(index);
343
349
  });
344
350
  } else if (obj.event === 'follow') {
345
- content = miniPage.getHrefContent('/educode_sales/teachers/show_follow');
351
+ content = miniPage.getHrefContent('/educode_sales/teachers/show_follow?id=' + data.id);
346
352
  openWH = miniPage.getOpenWidthHeight();
347
353
  index = layer.open({
348
354
  title: '跟进记录',
@@ -17,7 +17,7 @@
17
17
  <div class="layui-inline">
18
18
  <label class="layui-form-label required">项目类型</label>
19
19
  <div class="layui-input-inline">
20
- <%= select_tag "clazz_id", options_for_select(@clazz, @follow_up.clazz), class: 'required' %>
20
+ <%= select_tag "clazz_id", options_for_select(@clazz, @follow_up.clazz_id), class: 'required' %>
21
21
  </div>
22
22
  </div>
23
23
  <div class="layui-inline">
@@ -51,7 +51,7 @@
51
51
  <div class="layui-inline">
52
52
  <label class="layui-form-label">实额</label>
53
53
  <div class="layui-input-inline">
54
- <input name="actual_amount" type="number" class="layui-input" value="<%= @follow_up.total_amount %>">
54
+ <input name="actual_amount" type="number" class="layui-input" value="<%= @follow_up.actual_amount %>">
55
55
  </div>
56
56
  </div>
57
57
  <br>
@@ -66,6 +66,7 @@
66
66
  <div class="layui-input-inline">
67
67
  <input name="divide_rate" class="layui-input" value="<%= @follow_up.divide_rate%>">
68
68
  </div>
69
+ <span style="margin-top: 10px; float:left;">%</span>
69
70
  </div>
70
71
  <div class="layui-form-item layui-form-text">
71
72
  <label class="layui-form-label required">自我小结</label>
@@ -81,9 +81,10 @@
81
81
  if (res.success == false) {
82
82
  layer.alert(res.msg)
83
83
  } else {
84
- layer.close(parent.plan_index);
84
+ // layer.close(parent.plan_index);
85
85
  parent.table.reload('sale_plan_follow_table');
86
86
  parent.table.reload('businesses_table');
87
+ table.reload('return_money_list');
87
88
  }
88
89
  })
89
90
  return false;
@@ -17,4 +17,5 @@ json.data do
17
17
  end
18
18
  end
19
19
  json.code 0
20
+ json.count @businesses.total_count
20
21
  json.msg 'succcess'
@@ -194,6 +194,7 @@
194
194
  request.authDelete("educode_sales/follow_ups/" + data.id, {}, function() {
195
195
  obj.del();
196
196
  layer.close(index);
197
+ table.reload("businesses_table");
197
198
  })
198
199
  });
199
200
  } else if (obj.event === 'show') { // 监听添加操作