educode_sales 0.1.2 → 0.1.3

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 (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/educode_sales/app.css +2 -1
  3. data/app/controllers/educode_sales/follow_ups_controller.rb +4 -0
  4. data/app/controllers/educode_sales/operation_plans_controller.rb +4 -4
  5. data/app/controllers/educode_sales/places_controller.rb +2 -4
  6. data/app/controllers/educode_sales/plans_controller.rb +1 -1
  7. data/app/controllers/educode_sales/roles_controller.rb +11 -0
  8. data/app/controllers/educode_sales/teachers_controller.rb +1 -1
  9. data/app/models/educode_sales/money_plan.rb +3 -3
  10. data/app/models/educode_sales/operation_plan.rb +3 -0
  11. data/app/models/educode_sales/place.rb +1 -0
  12. data/app/models/educode_sales/sale_plan.rb +3 -0
  13. data/app/views/educode_sales/businesses/edit_plan.html.erb +7 -4
  14. data/app/views/educode_sales/businesses/index.html.erb +1 -1
  15. data/app/views/educode_sales/operation_reports/index.json.jbuilder +1 -0
  16. data/app/views/educode_sales/places/index.json.jbuilder +1 -1
  17. data/app/views/educode_sales/plans/_monthly.html.erb +1 -1
  18. data/app/views/educode_sales/plans/_weekPlan.html.erb +1 -1
  19. data/app/views/educode_sales/plans/_weekly.html.erb +1 -1
  20. data/app/views/educode_sales/plans/my_month.json.jbuilder +1 -1
  21. data/app/views/educode_sales/roles/index.html.erb +33 -2
  22. data/app/views/educode_sales/sale_reports/index.json.jbuilder +1 -1
  23. data/app/views/educode_sales/staffs/edit.html.erb +1 -1
  24. data/app/views/educode_sales/teachers/edit.html.erb +1 -1
  25. data/app/views/educode_sales/teachers/index.html.erb +1 -1
  26. data/config/routes.rb +1 -0
  27. data/lib/educode_sales/version.rb +1 -1
  28. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6baded80505507fdcdbd19b692cb8aea834ed542
4
- data.tar.gz: e1c6c03ff6afc8f1d9b311b2ac1a443a74937694
3
+ metadata.gz: 4b4a41e482e6776c9768761b3d37e0ad17e0244e
4
+ data.tar.gz: 56041da1c4e2f2a2d7a87b8d438af0691e398c95
5
5
  SHA512:
6
- metadata.gz: 2f29bf7099856cbbd37f27b0b35f0181b74e16b9ac0b8570a66f5f99cdbc2addd71936a608dc449d6a3dc393aa76a90fa0128f4c80813b19d339fc97233e8978
7
- data.tar.gz: 9f56ff2aa864e839270995775e73fb43a5353bfdfeaa8a0ad2db0af9210dc1f1e80e1fd6f4ce76b19a8ca0e3b10adc7850d3d61ed9455fc50a9c303a7c097ed2
6
+ metadata.gz: 6d741309b6fce698679dac6cb314da6ba096ab89fdf83067b4cd45c363995954fcc0b183b7bdc1821aa0c1af0a9a3aa62872723cac2f1b50c5c2aa4935870601
7
+ data.tar.gz: 83d7f4c01c7737dc391c46cf65641c35e714f390b3792cc001968e11b4abb8e3d7f7316f7727ebccceff5299abce8b9459eeb2600f1c11216e2d2f0a5c520f47
@@ -243,7 +243,8 @@ td .layui-table-cell .layui-form-select {
243
243
  margin-top: 5px;
244
244
  }
245
245
 
246
- .edit-table .layui-table-body.layui-table-main {
246
+ .edit-table .layui-table-body.layui-table-main,
247
+ .min-height-table .layui-table-body.layui-table-main {
247
248
  min-height: 200px;
248
249
  }
249
250
 
@@ -18,7 +18,11 @@ module EducodeSales
18
18
 
19
19
  def destroy
20
20
  follow_up = FollowUp.find(params[:id])
21
+ business = follow_up.business
21
22
  if follow_up.destroy
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))
25
+ end
22
26
  render_success
23
27
  else
24
28
  render_failure follow_up
@@ -39,7 +39,7 @@ 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]}")
@@ -66,7 +66,7 @@ module EducodeSales
66
66
 
67
67
 
68
68
  def create
69
- plan = OperationPlan.build(plan_params)
69
+ plan = @current_admin.operation_plans.build(plan_params)
70
70
  plan.month = params["month"] + "-1"
71
71
  plan.teacher_id = @current_admin.teachers.find(params[:teacher_id]).id
72
72
  if plan.save
@@ -78,7 +78,7 @@ module EducodeSales
78
78
 
79
79
  def new_weekly
80
80
  sale_plans = OperationPlan.where(month: Time.now.strftime("%Y-%m") + "-01 00:00:00", weekly: Time.now.strftime('%W').to_i, staff_id: @current_admin.id)
81
- @rate = sale_plans ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
81
+ @rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
82
82
  @departments_count = sale_plans.joins(:teacher).count("distinct(department_id)")
83
83
  # @departments_count = 1
84
84
  render layout: false
@@ -93,7 +93,7 @@ module EducodeSales
93
93
 
94
94
  def new_monthly
95
95
  sale_plans = OperationPlan.where(month: Time.now.strftime("%Y-%m") + "-01 00:00:00", staff_id: @current_admin.id, weekly: nil)
96
- @rate = sale_plans ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
96
+ @rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
97
97
  @departments_count = sale_plans.joins(:teacher).count("distinct(department_id)")
98
98
  render layout: false
99
99
  end
@@ -29,7 +29,6 @@ module EducodeSales
29
29
 
30
30
  def create
31
31
  place = @current_admin.places.new(name: params[:name])
32
- # place = Place.new(name: params[:name])
33
32
  commons = []
34
33
  params[:area_ids].each do |d|
35
34
  commons << Common.find(d)
@@ -43,7 +42,6 @@ module EducodeSales
43
42
  end
44
43
 
45
44
  def update
46
- # id = @current_admin.id
47
45
  place = Place.find(params[:id])
48
46
  place.assign_attributes(name: params[:name])
49
47
  commons = []
@@ -62,8 +60,8 @@ module EducodeSales
62
60
  place = Place.find(params[:id])
63
61
  place.destroy
64
62
  render_success
65
- # rescue ActiveRecord::DeleteRestrictionError => e
66
- # render_failure '该用户已有数据产生,暂不能删除'
63
+ rescue ActiveRecord::DeleteRestrictionError => e
64
+ render_failure '渠道下已有关联数据产生,暂不能删除'
67
65
  end
68
66
 
69
67
  end
@@ -39,7 +39,7 @@ 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]}")
@@ -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])
@@ -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.page(params[:page]).per(params[:per_page])
76
+ @teachers = @teachers.order("created_at desc").page(params[:page]).per(params[:per_page])
77
77
 
78
78
  end
79
79
  end
@@ -12,10 +12,10 @@ module EducodeSales
12
12
  private
13
13
 
14
14
  def update_return_money
15
- if self.clazz == '已完成'
15
+ if follow_up.business.last_follow_up_id == self.follow_up_id
16
+ follow_up.business.update(return_money: MoneyPlan.where(clazz: '已完成', follow_up_id: self.follow_up_id).sum(:amount))
17
+ else
16
18
  follow_up.update(return_money: follow_up.money_plans.where(clazz: '已完成').sum(:amount))
17
- all_follow_ups_ids = follow_up.business.follow_ups.pluck(:id)
18
- follow_up.business.update(return_money: EducodeSales::MoneyPlan.where(clazz: '已完成', follow_up_id: all_follow_ups_ids).sum(:amount))
19
19
  end
20
20
  end
21
21
  end
@@ -2,5 +2,8 @@ module EducodeSales
2
2
  class OperationPlan < ApplicationRecord
3
3
  belongs_to :staff
4
4
  belongs_to :teacher
5
+
6
+ validates :month, presence: true
7
+ validates :weekly, presence: true
5
8
  end
6
9
  end
@@ -3,5 +3,6 @@ module EducodeSales
3
3
  belongs_to :staff
4
4
  has_many :place_areas, dependent: :destroy
5
5
  has_many :areas, through: :place_areas
6
+ has_many :follow_ups, dependent: :restrict_with_exception
6
7
  end
7
8
  end
@@ -2,5 +2,8 @@ module EducodeSales
2
2
  class SalePlan < ApplicationRecord
3
3
  belongs_to :business
4
4
  belongs_to :staff
5
+
6
+ validates :month, presence: true
7
+ validates :weekly, presence: true
5
8
  end
6
9
  end
@@ -39,7 +39,7 @@
39
39
 
40
40
  <script type="text/html" id="return_money_select">
41
41
  <div class="layui-input-block table-select">
42
- <select name="sex" lay-filter="return_money_select">
42
+ <select name="clazz" lay-filter="return_money_select">
43
43
  {{# layui.each(['未完成', '已完成'], function(i, data) { }}
44
44
  {{# if (data == d.clazz) { }}
45
45
  <option value="{{data}}" selected="{{d.clazz}}">{{data}}</option>
@@ -146,7 +146,7 @@
146
146
 
147
147
  table.on('tool(return_money_list)', function (obj) {
148
148
  var data = obj.data;
149
- data.clazz = clazz;
149
+ data.clazz = clazz ? clazz : obj.data.clazz;
150
150
  data.plan_id = obj.data.id
151
151
  if (obj.event === 'edit') {
152
152
  request.authPut('educode_sales/follow_ups/' + parent.follow_up_id + "/update_money", data,
@@ -154,16 +154,19 @@
154
154
  if (res.success) {
155
155
  layer.alert('保存成功');
156
156
  table.reload('return_money_list');
157
+ table.reload("sale_plan_follow_table");
158
+ table.reload("businesses_table");
157
159
  } else {
158
160
  layer.alert(res.msg);
159
161
  }
160
-
161
162
  })
162
163
  } else if (obj.event == 'delete') {
163
164
  layer.confirm('确定删除回款金额为' + data.amount + "的计划", function (index) {
164
165
  request.delete('educode_sales/follow_ups/' + parent.follow_up_id + "/delete_money?plan_id=" + data.id, {}, function (res) {
165
166
  layer.close(index);
166
- table.reload("return_money_list")
167
+ table.reload("return_money_list");
168
+ table.reload("sale_plan_follow_table");
169
+ table.reload("businesses_table");
167
170
  })
168
171
  });
169
172
  }
@@ -1,4 +1,4 @@
1
- <div class="edit-table">
1
+ <div class="min-height-table">
2
2
  <div style="margin: 10px 10px 10px 10px">
3
3
  <form class="layui-form layui-form-pane" lay-filter="search_form">
4
4
  <div class="layui-form-item">
@@ -4,6 +4,7 @@ json.data do
4
4
  json.staff d.staff.user.real_name
5
5
  json.client d.client
6
6
  # json.amount d.amount
7
+ json.month d.month.strftime("%Y-%m")
7
8
  json.content d.content.truncate(30)
8
9
  json.finish_rate "#{d.finish_rate}%"
9
10
  json.level1_score d.level1_score || 0
@@ -5,7 +5,7 @@ json.data do
5
5
  json.area_id d.areas.present? ? d.areas.pluck(:name).join("、") : ''
6
6
  json.businesses_count EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.place_id = #{d.id}").count
7
7
  json.amount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.place_id = #{d.id} AND educode_sales_follow_ups.stage_id IN (?)", @stage_ids).sum(:profit_amount)
8
- json.return_mount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.place_id = #{d.id} AND educode_sales_follow_ups.stage_id IN (?)", @stage_ids).sum(:return_money)
8
+ json.return_mount EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.place_id = #{d.id}").sum(:return_money)
9
9
  end
10
10
  end
11
11
 
@@ -7,7 +7,7 @@
7
7
  </div>
8
8
  </script>
9
9
  <!--搜索-->
10
- <div class="layuimini-main edit-table" id="monthly_table_wraper">
10
+ <div class="layuimini-main min-height-table" id="monthly_table_wraper">
11
11
  <form class="layui-form layui-form-pane edit-table" lay-filter="monthly_form_fiter">
12
12
  <div class="layui-form-item">
13
13
  <div class="layui-inline">
@@ -7,7 +7,7 @@
7
7
  </div>
8
8
  </script>
9
9
  <!--搜索-->
10
- <div class="layuimini-main edit-table" id="week_table_wraper">
10
+ <div class="layuimini-main min-height-table" id="week_table_wraper">
11
11
  <div class="layui-form layui-form-pane edit-table" lay-filter="week_plan_form_filter">
12
12
  <div class="layui-form-item">
13
13
  <div class="layui-inline">
@@ -7,7 +7,7 @@
7
7
  </div>
8
8
  </script>
9
9
  <!--搜索-->
10
- <div class="layuimini-main edit-table" id="sales_weelky_table">
10
+ <div class="layuimini-main min-height-table" id="sales_weelky_table">
11
11
  <form class="layui-form layui-form-pane edit-table" lay-filter="weekly_form_search">
12
12
  <div class="layui-form-item">
13
13
  <div class="layui-inline">
@@ -7,7 +7,7 @@ json.data do
7
7
  json.school d.business.department&.school&.name
8
8
  json.month d.month.strftime("%Y-%m")
9
9
  json.business_id d.business_id
10
- json.content d.content.truncate(30)
10
+ json.content d.content.truncate(40)
11
11
  json.follow_ups_count d.business.follow_ups_count
12
12
  json.finish_rate "#{d.finish_rate}%"
13
13
  json.updated_at d.updated_at.to_s
@@ -16,8 +16,9 @@
16
16
  var $ = layui.jquery,
17
17
  form = layui.form,
18
18
  request = layui.request,
19
+ util = layui.util,
19
20
  miniPage = layui.miniPage;
20
- table = layui.table
21
+ table = layui.table;
21
22
 
22
23
  table.render({
23
24
  elem: '#role',
@@ -34,6 +35,7 @@
34
35
  field: 'name',
35
36
  title: '角色',
36
37
  width: 120,
38
+ edit: 'text'
37
39
  }, {
38
40
  field: 'permissions',
39
41
  title: '模块浏览权限',
@@ -48,7 +50,33 @@
48
50
  page: true
49
51
  })
50
52
 
51
- table.on('toolbar(role_filter)', function (obj) {
53
+
54
+
55
+
56
+
57
+ //监听单元格编辑
58
+ table.on('edit(role_filter)', function(obj){
59
+ var value = obj.value //得到修改后的值
60
+ ,data = obj.data //得到所在行所有键值
61
+ ,field = obj.field; //得到字段
62
+ console.log(obj.data);
63
+ request.authPut('educode_sales/roles/' + data.id + '/update_role/', data,
64
+ function(res) {
65
+ if (res.success) {
66
+ // table.reload('role');
67
+ } else {
68
+ layer.alert(res.msg)
69
+ }
70
+
71
+ })
72
+ });
73
+
74
+
75
+
76
+
77
+
78
+
79
+ table.on('toolbar(role_filter)', function (obj) {
52
80
  if (obj.event === 'add') { // 监听添加操作
53
81
  var content = miniPage.getHrefContent('/educode_sales/roles/new');
54
82
  var openWH = miniPage.getOpenWidthHeight();
@@ -70,6 +98,9 @@
70
98
  });
71
99
 
72
100
 
101
+
102
+
103
+
73
104
  table.on('tool(role_filter)', function (obj) {
74
105
  var data = obj.data;
75
106
  role_id = data.id;
@@ -4,7 +4,7 @@ json.data do
4
4
  json.staff d.staff.user.real_name
5
5
  json.client d.client
6
6
  json.amount d.amount
7
- json.content d.content.truncate(30)
7
+ json.content d.content.truncate(40)
8
8
  json.finish_rate "#{d.finish_rate}%"
9
9
  json.level1_score d.level1_score || 0
10
10
  json.level2_score d.level2_score || 0
@@ -104,7 +104,7 @@
104
104
  } else {
105
105
  layer.close(parent.index);
106
106
  parent.layer.close(parent.layer.getFrameIndex(window.name))
107
- parent.table.reload('staff')
107
+ parent.table.reload('staff_filter')
108
108
  }
109
109
  })
110
110
  return false;
@@ -86,7 +86,7 @@
86
86
  elem: '#user_search',
87
87
  name: 'user_id', // 渲染的input的name值
88
88
  layFilter: 'user_id', //同layui form参数lay-filter
89
- layVerify: 'required', //同layui form参数lay-verify
89
+ // layVerify: 'required', //同layui form参数lay-verify
90
90
  layVerType: 'tips', // 同layui form参数lay-verType
91
91
  layReqText: '请填写文本', //同layui form参数lay-ReqText
92
92
  initValue: '', // 渲染初始化默认值
@@ -218,7 +218,7 @@
218
218
  },
219
219
  {
220
220
  title: '操作',
221
- minWidth: 350,
221
+ minWidth: 300,
222
222
  toolbar: '#currentTableBar',
223
223
  align: "center",
224
224
  fixed: 'right'
data/config/routes.rb CHANGED
@@ -171,6 +171,7 @@ EducodeSales::Engine.routes.draw do
171
171
  resources :roles do
172
172
  member do
173
173
  put :view
174
+ put :update_role
174
175
  end
175
176
  end
176
177
 
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-15 00:00:00.000000000 Z
11
+ date: 2021-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails