educode_sales 0.1.5 → 0.1.7

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 (27) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/educode_sales/app.css +1 -0
  3. data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
  4. data/app/controllers/educode_sales/operation_plans_controller.rb +2 -2
  5. data/app/controllers/educode_sales/plans_controller.rb +2 -2
  6. data/app/models/educode_sales/common.rb +4 -0
  7. data/app/models/educode_sales/follow_up.rb +1 -1
  8. data/app/models/educode_sales/teacher.rb +11 -2
  9. data/app/views/educode_sales/activities/index.html.erb +1 -9
  10. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +1 -0
  11. data/app/views/educode_sales/businesses/show_follow.html.erb +1 -0
  12. data/app/views/educode_sales/operation_reports/audit.html.erb +1 -1
  13. data/app/views/educode_sales/operation_reports/edit.html.erb +1 -1
  14. data/app/views/educode_sales/operation_reports/show.html.erb +1 -1
  15. data/app/views/educode_sales/plans/_monthPlan.html.erb +9 -6
  16. data/app/views/educode_sales/plans/edit_week.html.erb +1 -1
  17. data/app/views/educode_sales/plans/new_week.html.erb +3 -1
  18. data/app/views/educode_sales/plans/new_weekly.html.erb +1 -0
  19. data/app/views/educode_sales/sale_reports/audit.html.erb +1 -1
  20. data/app/views/educode_sales/sale_reports/edit.html.erb +1 -1
  21. data/app/views/educode_sales/sale_reports/show.html.erb +1 -1
  22. data/app/views/educode_sales/sale_trends/trends.html.erb +1 -1
  23. data/app/views/educode_sales/teachers/course_subject.json.jbuilder +1 -1
  24. data/app/views/educode_sales/teachers/index.html.erb +1 -1
  25. data/app/views/educode_sales/teachers/index.json.jbuilder +2 -2
  26. data/lib/educode_sales/version.rb +1 -1
  27. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 701b98e32352e12147e3d299f1fc472104e79900
4
- data.tar.gz: '09bf0ee2949ccfa809b77fae0fdee56cebc10941'
3
+ metadata.gz: b0b586bc3b1634320b6fb34e4646577e51cd2eed
4
+ data.tar.gz: a05dcbb55cc2e2e8f3e7dfbc7671d5f89c24fca5
5
5
  SHA512:
6
- metadata.gz: a69e25dab404aafef54c493263e10df1cf3541a687b5d1b56ff2fa630f7bdc7df70aef76eb968896499625f4a05579c94f1871991c99fd563821141195c14558
7
- data.tar.gz: c736a30571dfe038f29da56b9563b1ab62edf49cd33ec76024dca760d31e44bfbb7a4553f47cf40a67f9f0313b2566a19d51e1e37396c93575353733210c29be
6
+ metadata.gz: 7099d303b654990b619fcad31ddf547c3412be01a359bb00c0fec6534f32a7764326d512916536d1dbd1710193bddb08b370096250c21fc5dedc976bfc786f12
7
+ data.tar.gz: 17ac1d2f5b4b134147ca1b77b53c340c04389269e2f1b8b89c9b89c90893eed640c5cb5980f0be28a10e8ada7c18f927d2b326069d1a0f47d237902f13b5f832
@@ -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 {
@@ -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
@@ -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")
@@ -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
 
@@ -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
@@ -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
@@ -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: '学生数',
@@ -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>
@@ -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') { // 监听添加操作
@@ -2,7 +2,7 @@
2
2
  <div class="layui-form-item">
3
3
  <div class="layui-inline" style="margin:18px; font-weight: bold">
4
4
  <label>完成率:</label>
5
- <span><%= @sale_report.finish_rate %></span>
5
+ <span><%= @sale_report.finish_rate %>%</span>
6
6
  <%= hidden_field_tag :id, @sale_report.id, {id: 'sale_report_audito'} %>
7
7
  </div>
8
8
  <div class="layui-inline" style="margin:18px; font-weight: bold">
@@ -8,7 +8,7 @@
8
8
  <div class="layui-form-item">
9
9
  <div class="layui-inline" style="margin:18px; font-weight: bold">
10
10
  <label>完成率:</label>
11
- <span><%= @sale_report.finish_rate %></span>
11
+ <span><%= @sale_report.finish_rate %>%</span>
12
12
  </div>
13
13
  <div class="layui-inline" style="margin:18px; font-weight: bold">
14
14
  <label style="margin-left: 100px">运营教师:</label>
@@ -2,7 +2,7 @@
2
2
  <div class="layui-form-item">
3
3
  <div class="layui-inline" style="margin:18px; font-weight: bold">
4
4
  <label>完成率:</label>
5
- <span><%= @sale_report.finish_rate %></span>
5
+ <span><%= @sale_report.finish_rate %>%</span>
6
6
  </div>
7
7
  <div class="layui-inline" style="margin:18px; font-weight: bold">
8
8
  <label style="margin-left: 100px">运营教师:</label>
@@ -201,12 +201,7 @@
201
201
 
202
202
  table.on('tool(monthPlanTable)', function (obj) {
203
203
  var data = obj.data;
204
- if (obj.event === 'delete') {
205
- layer.confirm('真的删除行么', function (index) {
206
- obj.del();
207
- layer.close(index);
208
- });
209
- } else if (obj.event === 'show') {
204
+ if (obj.event === 'show') {
210
205
  content = miniPage.getHrefContent('/educode_sales/plans/show_month?id=' + data.id);
211
206
  openWH = miniPage.getOpenWidthHeight();
212
207
  index = layer.open({
@@ -259,6 +254,14 @@
259
254
  $(window).on("resize", function () {
260
255
  layer.full(index);
261
256
  });
257
+ } else if (obj.event === 'delete') {
258
+ layer.confirm('确定删除' + data.id, function (index) {
259
+ console.log("aaaaa");
260
+ request.delete('educode_sales/plans/' + data.id, {}, function (res) {
261
+ layer.close(index);
262
+ table.reload("monthPlanTable")
263
+ })
264
+ });
262
265
  }
263
266
  });
264
267
 
@@ -73,7 +73,7 @@
73
73
  } else {
74
74
  parent.table.reload('unfinish_table')
75
75
  }
76
-
76
+ parent.table.reload('newWeeklyTable')
77
77
  }
78
78
  })
79
79
  return false;
@@ -87,7 +87,9 @@
87
87
  else {
88
88
  parent.table.reload('businesses_table')
89
89
  }
90
-
90
+ parent.table.reload('newWeeklyTable')
91
+
92
+
91
93
  }
92
94
  })
93
95
  return false;
@@ -97,6 +97,7 @@
97
97
  layer.close(parent.sindex);
98
98
  parent.layer.close(parent.layer.getFrameIndex(window.name))
99
99
  parent.table.reload('newWeeklyTable');
100
+ table.reload('weeklyTable');
100
101
  layer.alert('添加成功')
101
102
  }
102
103
  })
@@ -2,7 +2,7 @@
2
2
  <div class="layui-form-item">
3
3
  <div class="layui-inline" style="margin:18px; font-weight: bold">
4
4
  <label>完成率:</label>
5
- <span><%= @sale_report.finish_rate %></span>
5
+ <span><%= @sale_report.finish_rate %>%</span>
6
6
  <%= hidden_field_tag :id, @sale_report.id, {id: 'sale_report_audito'} %>
7
7
  </div>
8
8
  <div class="layui-inline" style="margin:18px; font-weight: bold">
@@ -8,7 +8,7 @@
8
8
  <div class="layui-form-item">
9
9
  <div class="layui-inline" style="margin:18px; font-weight: bold">
10
10
  <label>完成率:</label>
11
- <span><%= @sale_report.finish_rate %></span>
11
+ <span><%= @sale_report.finish_rate %>%</span>
12
12
  </div>
13
13
  <div class="layui-inline" style="margin:18px; font-weight: bold">
14
14
  <label style="margin-left: 100px">覆盖客户:</label>
@@ -2,7 +2,7 @@
2
2
  <div class="layui-form-item">
3
3
  <div class="layui-inline" style="margin:18px; font-weight: bold">
4
4
  <label>完成率:</label>
5
- <span><%= @sale_report.finish_rate %></span>
5
+ <span><%= @sale_report.finish_rate %>%</span>
6
6
  </div>
7
7
  <div class="layui-inline" style="margin:18px; font-weight: bold">
8
8
  <label style="margin-left: 100px">覆盖客户:</label>
@@ -65,7 +65,7 @@
65
65
  </div>
66
66
  </div>
67
67
  </div>
68
- <div class="layui-col-xs3">
68
+ <div class="layui-col-xs3" >
69
69
  <div class="panel layui-bg-number">
70
70
  <div class="panel-body">
71
71
  <div class="panel-title">
@@ -7,4 +7,4 @@ json.data do
7
7
  end
8
8
  end
9
9
  json.code 0
10
- json.count @courses.total_count
10
+ json.count @courses.count
@@ -260,7 +260,7 @@
260
260
  form.val('search_teachers', {
261
261
  area: "",
262
262
  date: "",
263
- key_attitude: "",
263
+ attitude: "",
264
264
  name: "",
265
265
  professional_title: "",
266
266
  regist_at: "",
@@ -12,10 +12,10 @@ json.data do
12
12
  json.teacher_follows_count d.teacher_follows_count
13
13
  json.activities_count d.activity_teachers_count
14
14
  json.source EducodeSales::Common.teacher_source_name[d.source_id]
15
- json.attitude EducodeSales::Common.key_attitude_name[d.attitude_id]
15
+ json.attitude EducodeSales::Common.teacher_attitude_name[d.attitude_id]
16
16
  json.courses_count d.user_id ? Course.joins(:course_members).where(course_members: {user_id: d.user_id}).count : 0
17
17
  json.actives d.actives
18
- json.students d.students
18
+ json.students d.students_count
19
19
  json.regist_at d.regist_at ? d.regist_at.to_s(:date) : ''
20
20
  json.teacher_used d.teacher_used_of_department
21
21
  end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.7'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460