educode_sales 0.5.0 → 0.5.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales//345/233/236/346/224/266/347/253/231.png +0 -0
  3. data/app/controllers/educode_sales/businesses_controller.rb +13 -6
  4. data/app/controllers/educode_sales/follow_ups_controller.rb +3 -2
  5. data/app/controllers/educode_sales/operation_plans_controller.rb +22 -2
  6. data/app/controllers/educode_sales/operation_reports_controller.rb +33 -3
  7. data/app/controllers/educode_sales/plans_controller.rb +23 -3
  8. data/app/controllers/educode_sales/recycles_controller.rb +95 -0
  9. data/app/controllers/educode_sales/roles_controller.rb +5 -0
  10. data/app/controllers/educode_sales/sale_reports_controller.rb +34 -4
  11. data/app/controllers/educode_sales/sale_trends_controller.rb +171 -0
  12. data/app/controllers/educode_sales/sales_controller.rb +4 -0
  13. data/app/controllers/educode_sales/staffs_controller.rb +4 -4
  14. data/app/controllers/educode_sales/upload_files_controller.rb +33 -26
  15. data/app/models/concerns/deletable.rb +8 -0
  16. data/app/models/educode_sales/application_record.rb +2 -0
  17. data/app/models/educode_sales/business.rb +15 -2
  18. data/app/models/educode_sales/common.rb +2 -1
  19. data/app/models/educode_sales/follow_up.rb +4 -2
  20. data/app/models/educode_sales/recycle.rb +5 -0
  21. data/app/models/educode_sales/sale_plan.rb +3 -0
  22. data/app/models/educode_sales/sale_report.rb +2 -0
  23. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +3 -3
  24. data/app/views/educode_sales/businesses/edit_plan.html.erb +2 -2
  25. data/app/views/educode_sales/businesses/file.html.erb +5 -4
  26. data/app/views/educode_sales/businesses/index.html.erb +18 -3
  27. data/app/views/educode_sales/businesses/new_follow_record.html.erb +6 -2
  28. data/app/views/educode_sales/businesses/show_follow.html.erb +7 -2
  29. data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
  30. data/app/views/educode_sales/businesses/upload_file.html.erb +4 -4
  31. data/app/views/educode_sales/operation_plans/index.html.erb +6 -1
  32. data/app/views/educode_sales/operation_reports/audit.html.erb +14 -6
  33. data/app/views/educode_sales/operation_reports/show.html.erb +13 -10
  34. data/app/views/educode_sales/places/index.html.erb +6 -1
  35. data/app/views/educode_sales/places/index.json.jbuilder +11 -1
  36. data/app/views/educode_sales/plans/index.html.erb +6 -1
  37. data/app/views/educode_sales/recycles/_business.html.erb +122 -0
  38. data/app/views/educode_sales/recycles/_monthPlan.html.erb +123 -0
  39. data/app/views/educode_sales/recycles/_monthly.html.erb +121 -0
  40. data/app/views/educode_sales/recycles/_weekPlan.html.erb +128 -0
  41. data/app/views/educode_sales/recycles/_weekly.html.erb +122 -0
  42. data/app/views/educode_sales/recycles/business.json.jbuilder +16 -0
  43. data/app/views/educode_sales/recycles/index.html.erb +58 -0
  44. data/app/views/educode_sales/recycles/monthPlan.json.jbuilder +16 -0
  45. data/app/views/educode_sales/recycles/monthly.json.jbuilder +15 -0
  46. data/app/views/educode_sales/recycles/weekPlan.json.jbuilder +16 -0
  47. data/app/views/educode_sales/recycles/weekly.json.jbuilder +15 -0
  48. data/app/views/educode_sales/roles/index.html.erb +19 -1
  49. data/app/views/educode_sales/roles/rename.html.erb +50 -0
  50. data/app/views/educode_sales/sale_reports/audit.html.erb +17 -6
  51. data/app/views/educode_sales/sale_reports/show.html.erb +11 -8
  52. data/app/views/educode_sales/sale_trends/trends.html.erb +233 -2
  53. data/app/views/educode_sales/sale_trends/trends.json.jbuilder +14 -0
  54. data/app/views/educode_sales/sales/index.html.erb +75 -9
  55. data/app/views/educode_sales/sales/index.json.jbuilder +35 -1
  56. data/app/views/educode_sales/sales/operations.json.jbuilder +11 -1
  57. data/app/views/educode_sales/staffs/index.html.erb +6 -1
  58. data/app/views/educode_sales/staffs/index.json.jbuilder +11 -1
  59. data/app/views/educode_sales/teachers/add_keys.html.erb +3 -3
  60. data/app/views/educode_sales/teachers/index.html.erb +7 -2
  61. data/app/views/educode_sales/teachers/new.html.erb +1 -0
  62. data/app/views/educode_sales/upload_files/index.json.jbuilder +1 -1
  63. data/app/views/layouts/educode_sales/application.html.erb +3 -0
  64. data/config/routes.rb +18 -0
  65. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +6 -0
  66. data/db/migrate/20211109015617_create_educode_sales_recycles.rb +25 -0
  67. data/lib/educode_sales/version.rb +1 -1
  68. metadata +20 -2
@@ -1,7 +1,7 @@
1
1
  <div class="section">
2
2
  <h4><span>销售人员列表</span></h4>
3
3
  <hr>
4
- <table class="layui-hide" id="table"></table>
4
+ <table class="layui-hide" id="table" lay-filter="table" ></table>
5
5
  </div>
6
6
  <script type="text/html" id="toolbarDemo">
7
7
  <div class="layui-btn-container">
@@ -18,6 +18,26 @@
18
18
  <a href="/missions/businesses?clazz_id={{d.b_clazz_id}}&staff_id={{d.id}}">{{d.business_b}}</a>
19
19
  </div>
20
20
  </script>
21
+ <script type="text/html" id="business_c">
22
+ <div class="layui-text">
23
+ <a href="/missions/businesses?clazz_id={{d.c_clazz_id}}&staff_id={{d.id}}">{{d.business_c}}</a>
24
+ </div>
25
+ </script>
26
+ <script type="text/html" id="business_d">
27
+ <div class="layui-text">
28
+ <a href="/missions/businesses?clazz_id={{d.d_clazz_id}}&staff_id={{d.id}}">{{d.business_d}}</a>
29
+ </div>
30
+ </script>
31
+ <script type="text/html" id="business_e">
32
+ <div class="layui-text">
33
+ <a href="/missions/businesses?clazz_id={{d.e_clazz_id}}&staff_id={{d.id}}">{{d.business_e}}</a>
34
+ </div>
35
+ </script>
36
+ <script type="text/html" id="business_o">
37
+ <div class="layui-text">
38
+ <a href="/missions/businesses?clazz_id={{d.o_clazz_id}}&staff_id={{d.id}}">{{d.business_o}}</a>
39
+ </div>
40
+ </script>
21
41
  <script>
22
42
  layui.use('table', function () {
23
43
  var table = layui.table;
@@ -45,22 +65,53 @@
45
65
  title: 'A类商机',
46
66
  templet: "#business_a",
47
67
  totalRow:true,
48
- width: 120
49
- }, {
68
+ sort:true,
69
+ width: 100
70
+ },
71
+ {
50
72
  field: 'business_b',
51
73
  title: 'B类商机',
52
74
  templet: "#business_b",
53
- totalRow:true,
54
- width: 120
55
- }, {
75
+ totalRow:true,sort:true,
76
+ width: 100
77
+ },
78
+ {
79
+ field: 'business_c',
80
+ title: 'C类商机',
81
+ templet: "#business_c",
82
+ totalRow:true,sort:true,
83
+ width: 100
84
+ },
85
+ {
86
+ field: 'business_d',
87
+ title: 'D类商机',
88
+ templet: "#business_d",
89
+ totalRow:true,sort:true,
90
+ width: 100
91
+ },
92
+ {
93
+ field: 'business_e',
94
+ title: 'E类商机',
95
+ templet: "#business_e",
96
+ totalRow:true,sort:true,
97
+ width: 100
98
+ },
99
+ {
100
+ field: 'business_o',
101
+ title: 'O类商机',
102
+ templet: "#business_o",
103
+ totalRow:true,sort:true,
104
+ width: 100
105
+ },
106
+ {
56
107
  field: 'goal',
57
108
  title: '中标金额',
58
- totalRow:true,
109
+ totalRow:true,sort:true,
59
110
  width: 120
60
111
  }, {
61
112
  field: 'return_money',
62
- title: '回款',
63
- totalRow:true,
113
+ title: '回款金额',
114
+ totalRow:true,sort:true,
64
115
  width: 120
65
116
  }
66
117
  ]
@@ -69,5 +120,20 @@
69
120
  limits: [10,15,20,30,40,50,60,70,80,90],
70
121
  page: true
71
122
  });
123
+
124
+ // var sort = {}, search = {};
125
+ // table.on('sort(table)', function (obj) {
126
+ // sort.field = obj.field;
127
+ // sort.order = obj.type;
128
+ // table.reload('table', {
129
+ // initSort: obj,
130
+ // where: {
131
+ // sort: sort,
132
+ // q: search
133
+ // }
134
+ // });
135
+ // })
136
+
137
+
72
138
  });
73
139
  </script>
@@ -1,5 +1,10 @@
1
1
  businesses_a_count = 0
2
2
  businesses_b_count = 0
3
+ businesses_c_count = 0
4
+ businesses_d_count = 0
5
+ businesses_e_count = 0
6
+ businesses_o_count = 0
7
+ area_ids = EducodeSales::Common.where(clazz: 'area').ids.sort.to_s
3
8
  json.data do
4
9
  json.array! @staffs do |d|
5
10
  part_a_ids = EducodeSales::Business.where("educode_sales_businesses.last_follow_up_id is null AND staff_id = ?",d.id).ids
@@ -11,23 +16,52 @@ json.data do
11
16
  json.id d.id
12
17
  json.name d.user.real_name
13
18
  json.role d.role&.name
14
- json.area d.areas.present? ? d.areas.pluck(:name).join("、") : ''
19
+ # json.area d.areas.present? ? d.areas.pluck(:name).join("、") : ''
20
+ if d.areas.present?
21
+ if d.areas.ids.sort.to_s == area_ids
22
+ json.area '全国'
23
+ else
24
+ json.area d.areas.pluck(:name).join("、")
25
+ end
26
+ else
27
+ json.area ''
28
+ end
15
29
  business_a = @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @a_clazz&.id).count
16
30
  businesses_a_count += business_a
17
31
  json.business_a business_a
18
32
  business_b = @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @b_clazz&.id).count
19
33
  businesses_b_count += business_b
20
34
  json.business_b business_b
35
+ business_c = @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @c_clazz&.id).count
36
+ businesses_c_count += business_c
37
+ json.business_c business_c
38
+ business_d = @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @d_clazz&.id).count
39
+ businesses_d_count += business_d
40
+ json.business_d business_b
41
+ business_e = @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @e_clazz&.id).count
42
+ businesses_e_count += business_e
43
+ json.business_e business_b
44
+ business_o = @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id = ?", @o_clazz&.id).count
45
+ businesses_o_count += business_o
46
+ json.business_o business_o
21
47
  json.goal @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id != ? AND educode_sales_follow_ups.stage_id in (?)", @x, @step_ids).sum(:total_amount).round(2)
22
48
  json.return_money @businesses.joins("JOIN educode_sales_follow_ups on educode_sales_follow_ups.id = educode_sales_businesses.last_follow_up_id").where("educode_sales_follow_ups.clazz_id != ?", @x).sum("educode_sales_businesses.return_money").round(2)
23
49
  json.a_clazz_id @a_clazz&.id
24
50
  json.b_clazz_id @b_clazz&.id
51
+ json.c_clazz_id @c_clazz&.id
52
+ json.d_clazz_id @d_clazz&.id
53
+ json.e_clazz_id @e_clazz&.id
54
+ json.o_clazz_id @o_clazz&.id
25
55
  end
26
56
  end
27
57
 
28
58
  json.totalRow do
29
59
  json.business_a businesses_a_count.to_s
30
60
  json.business_b businesses_b_count.to_s
61
+ json.business_c businesses_c_count.to_s
62
+ json.business_d businesses_d_count.to_s
63
+ json.business_e businesses_e_count.to_s
64
+ json.business_o businesses_o_count.to_s
31
65
  end
32
66
  json.code 0
33
67
  json.count @staffs.total_count
@@ -1,12 +1,22 @@
1
1
  departments_count = 0
2
2
  schools_count = 0
3
+ area_ids = EducodeSales::Common.where(clazz: 'area').ids.sort.to_s
3
4
  json.data do
4
5
  json.array! @staffs do |d|
5
6
  json.id d.id
6
7
  json.name d.user.real_name
7
8
  json.role d.role&.name
8
9
  json.job_type EducodeSales::Common.job_type_name[d.job_type]
9
- json.area d.areas.present? ? d.areas.pluck(:name).join("、") : ''
10
+ # json.area d.areas.present? ? d.areas.pluck(:name).join("、") : ''
11
+ if d.areas.present?
12
+ if d.areas.ids.sort.to_s == area_ids
13
+ json.area '全国'
14
+ else
15
+ json.area d.areas.pluck(:name).join("、")
16
+ end
17
+ else
18
+ json.area ''
19
+ end
10
20
  departments = EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.staff_id = #{d.id}").select("COUNT(educode_sales_follow_ups.staff_id) AS count")[0]&.send('count') + EducodeSales::Teacher.joins(:follow_up).where("educode_sales_teacher_follows.staff_id = #{d.id}").select("COUNT(educode_sales_teacher_follows.staff_id) AS count")[0]&.send('count') || 0
11
21
  json.departments departments
12
22
  schools = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{d.id}").select("COUNT(distinct(departments.school_id)) AS count")[0]['count'] + EducodeSales::Teacher.joins(:follow_up, :department).where("educode_sales_teacher_follows.staff_id = #{d.id}").select("COUNT(distinct(departments.school_id)) AS count")[0]['count']
@@ -137,4 +137,9 @@
137
137
  });
138
138
 
139
139
  });
140
- </script>
140
+ </script>
141
+ <style>
142
+ .layui-table-tool-temp{
143
+ padding-right: 0px; !important;
144
+ }
145
+ </style>
@@ -1,15 +1,25 @@
1
+ area_ids = EducodeSales::Common.where(clazz: 'area').ids.sort.to_s
1
2
  json.data do
2
3
  json.array! @staffs do |d|
3
4
  json.id d.id
4
5
  json.name d.user.real_name
5
6
  json.role d.role&.name
6
- json.area d.areas.present? ? d.areas.pluck(:name).join("、") : ''
7
7
  json.job_type EducodeSales::Common.job_type_name[d.job_type]
8
8
  json.month d.month
9
9
  json.enabled_at d.enabled_at ? d.enabled_at.to_s(:date) : ''
10
10
  json.expired_at d.enabled_at ? "#{d.enabled_at.to_s(:date)}-#{d.expired_at.to_s(:date)}" : ''
11
+ if d.areas.present?
12
+ if d.areas.ids.sort.to_s == area_ids
13
+ json.area '全国'
14
+ else
15
+ json.area d.areas.pluck(:name).join("、")
16
+ end
17
+ else
18
+ json.area ''
19
+ end
11
20
  end
12
21
  end
13
22
 
23
+
14
24
  json.code 0
15
25
  json.count @staffs.total_count
@@ -116,13 +116,13 @@
116
116
  </div>
117
117
  </script>
118
118
  <script type="text/html" id="key_person_tabar">
119
- {{# if(parent.is_latest){ }}
119
+ {{# if(parent.is_latest && parent.flag){ }}
120
120
  <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">保存</a>
121
121
  <a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit" lay-event="delete">删除</a>
122
122
  {{# } }}
123
123
  </script>
124
124
  <script>
125
- if(!parent.is_latest){
125
+ if(!parent.is_latest || !parent.flag){
126
126
  document.getElementById("show_follow_box").style.display="none";//隐藏
127
127
  }
128
128
  layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'laydate', 'selectInput'], function () {
@@ -144,7 +144,7 @@
144
144
  $(document).on('click','#new_teacher1',function(){
145
145
  var content = miniPage.getHrefContent('/missions/teachers/new');
146
146
  var openWH = miniPage.getOpenWidthHeight();
147
- sindex = layer.open({
147
+ teacher_uni_index = layer.open({
148
148
  id:"a",
149
149
  title: '添加老师',
150
150
  type: 1,
@@ -52,7 +52,7 @@
52
52
  </div>
53
53
 
54
54
  <div class="layui-inline">
55
- <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
55
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
56
56
  </button>
57
57
  <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_teachers">搜 索
58
58
  </button>
@@ -588,4 +588,9 @@
588
588
  });
589
589
 
590
590
  });
591
- </script>
591
+ </script>
592
+ <style>
593
+ .layui-table-tool-temp{
594
+ padding-right: 30px; !important;
595
+ }
596
+ </style>
@@ -156,6 +156,7 @@
156
156
  table.reload('teachers_table');
157
157
  layer.close(parent.index)
158
158
  layer.close(parent.sindex)
159
+ layer.close(parent.teacher_uni_index)
159
160
  }
160
161
  })
161
162
  return false;
@@ -4,7 +4,7 @@ json.data do
4
4
  json.name d.filename
5
5
  json.size d.filesize < 1000000 ? (d.filesize.to_f / 1000).round(2).to_s + 'KB' : (d.filesize.to_f / 1000000).round(2).to_s + 'MB'
6
6
  json.created_on d.created_on.to_s
7
- json.upload_person EducodeSales::Staff.find(d.author_id).user.real_name
7
+ json.upload_person d.author.real_name
8
8
  json.disk_filename d.disk_filename
9
9
  json.content_type d.content_type
10
10
  end
@@ -69,6 +69,9 @@
69
69
  <% if can? :read, EducodeSales::SalePlan %>
70
70
  <dd><a href="/missions/plans" class="<%= current?('layui-this', plans_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/6.销售计划.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>销售计划</a></dd>
71
71
  <% end %>
72
+ <% if @current_admin.is_admin %>
73
+ <dd><a href="/missions/recycles" class="<%= current?('layui-this', recycles_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/回收站.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>回收站</a></dd>
74
+ <%end %>
72
75
  </dl>
73
76
  </li>
74
77
  <li class="layui-nav-item layui-nav-itemed menu-li">
data/config/routes.rb CHANGED
@@ -77,6 +77,21 @@ EducodeSales::Engine.routes.draw do
77
77
  resources :places do
78
78
  end
79
79
 
80
+ resources :recycles do
81
+ collection do
82
+ get :monthly
83
+ get :weekly
84
+ get :monthPlan
85
+ get :weekPlan
86
+ get :business
87
+ end
88
+ member do
89
+ get :restore_plans
90
+ get :restore_reports
91
+ get :restore_businesses
92
+ end
93
+ end
94
+
80
95
  resources :plans do
81
96
  collection do
82
97
  get :new_week
@@ -188,6 +203,9 @@ EducodeSales::Engine.routes.draw do
188
203
  end
189
204
 
190
205
  resources :roles do
206
+ collection do
207
+ get :rename
208
+ end
191
209
  member do
192
210
  put :view
193
211
  put :update_role
@@ -26,6 +26,9 @@ class CreateEducodeSalesRolePermissions < ActiveRecord::Migration[5.2]
26
26
  EducodeSales::Permission.create(name: '编辑计划', subject: 'SalePlan', action: 'update', clazz: 'sale_plan')
27
27
  EducodeSales::Permission.create(name: '删除计划', subject: 'SalePlan', action: 'destroy', clazz: 'sale_plan')
28
28
  EducodeSales::Permission.create(name: '审查报告', subject: 'SaleReport', action: 'audit', clazz: 'sale_plan')
29
+ EducodeSales::Permission.create(name: '填写大区意见', subject: 'SaleReport', action: 'level1_audit', clazz: 'sale_plan')
30
+ EducodeSales::Permission.create(name: '填写总监意见', subject: 'SaleReport', action: 'level2_audit', clazz: 'sale_plan')
31
+ EducodeSales::Permission.create(name: '填写副总意见', subject: 'SaleReport', action: 'level3_audit', clazz: 'sale_plan')
29
32
 
30
33
  EducodeSales::Permission.create(name: '查看渠道', subject: 'Place', action: 'read', clazz: 'place')
31
34
  EducodeSales::Permission.create(name: '添加渠道', subject: 'Place', action: 'create', clazz: 'place')
@@ -52,6 +55,9 @@ class CreateEducodeSalesRolePermissions < ActiveRecord::Migration[5.2]
52
55
  EducodeSales::Permission.create(name: '编辑计划', subject: 'OperationPlan', action: 'update', clazz: 'operation_plan')
53
56
  EducodeSales::Permission.create(name: '删除计划', subject: 'OperationPlan', action: 'destroy', clazz: 'operation_plan')
54
57
  EducodeSales::Permission.create(name: '审查报告', subject: 'OperationReport', action: 'audit', clazz: 'operation_plan')
58
+ EducodeSales::Permission.create(name: '填写大区意见', subject: 'OperationReport', action: 'level1_audit', clazz: 'operation_plan')
59
+ EducodeSales::Permission.create(name: '填写总监意见', subject: 'OperationReport', action: 'level2_audit', clazz: 'operation_plan')
60
+ EducodeSales::Permission.create(name: '填写副总意见', subject: 'OperationReport', action: 'level3_audit', clazz: 'operation_plan')
55
61
 
56
62
  EducodeSales::Permission.create(name: '查看活动', subject: 'Activity', action: 'read', clazz: 'activity')
57
63
  EducodeSales::Permission.create(name: '添加活动', subject: 'Activity', action: 'create', clazz: 'activity')
@@ -0,0 +1,25 @@
1
+ class CreateEducodeSalesRecycles < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_recycles do |t|
4
+ t.string :source_type
5
+ t.integer :source_id
6
+ t.integer :deleter_id
7
+
8
+ t.timestamps
9
+ end
10
+ add_column :educode_sales_businesses, :deleted_at, :datetime
11
+ add_column :educode_sales_follow_ups, :deleted_at, :datetime
12
+ add_column :educode_sales_sale_plans, :deleted_at, :datetime
13
+ add_column :educode_sales_sale_reports, :deleted_at, :datetime
14
+ add_column :educode_sales_operation_plans, :deleted_at, :datetime
15
+ add_column :educode_sales_operation_reports, :deleted_at, :datetime
16
+ add_column :educode_sales_teachers, :deleted_at, :datetime
17
+ add_column :educode_sales_activities, :deleted_at, :datetime
18
+ add_column :educode_sales_money_plans, :deleted_at, :datetime
19
+ add_column :educode_sales_place_areas, :deleted_at, :datetime
20
+ add_column :educode_sales_places, :deleted_at, :datetime
21
+ add_column :educode_sales_teacher_follows, :deleted_at, :datetime
22
+ add_column :educode_sales_staffs, :deleted_at, :datetime
23
+
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.5.0'
2
+ VERSION = '0.5.4'
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.5.0
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-05 00:00:00.000000000 Z
11
+ date: 2021-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -109,6 +109,7 @@ files:
109
109
  - app/assets/images/educode_sales/loading-2.gif
110
110
  - app/assets/images/educode_sales/loginbg.png
111
111
  - app/assets/images/educode_sales/logo.png
112
+ - app/assets/images/educode_sales/回收站.png
112
113
  - app/assets/javascripts/educode_sales/application.js
113
114
  - app/assets/javascripts/educode_sales/extent/miniPage.js
114
115
  - app/assets/javascripts/educode_sales/extent/request.js
@@ -145,6 +146,7 @@ files:
145
146
  - app/controllers/educode_sales/operations_controller.rb
146
147
  - app/controllers/educode_sales/places_controller.rb
147
148
  - app/controllers/educode_sales/plans_controller.rb
149
+ - app/controllers/educode_sales/recycles_controller.rb
148
150
  - app/controllers/educode_sales/roles_controller.rb
149
151
  - app/controllers/educode_sales/sale_reports_controller.rb
150
152
  - app/controllers/educode_sales/sale_trends_controller.rb
@@ -163,6 +165,7 @@ files:
163
165
  - app/jobs/educode_sales/application_job.rb
164
166
  - app/mailers/educode_sales/application_mailer.rb
165
167
  - app/models/ability.rb
168
+ - app/models/concerns/deletable.rb
166
169
  - app/models/educode_sales/activity.rb
167
170
  - app/models/educode_sales/activity_teacher.rb
168
171
  - app/models/educode_sales/application_record.rb
@@ -180,6 +183,7 @@ files:
180
183
  - app/models/educode_sales/permission.rb
181
184
  - app/models/educode_sales/place.rb
182
185
  - app/models/educode_sales/place_area.rb
186
+ - app/models/educode_sales/recycle.rb
183
187
  - app/models/educode_sales/role.rb
184
188
  - app/models/educode_sales/role_area.rb
185
189
  - app/models/educode_sales/role_permission.rb
@@ -278,10 +282,22 @@ files:
278
282
  - app/views/educode_sales/plans/show_monthly.html.erb
279
283
  - app/views/educode_sales/plans/show_week.html.erb
280
284
  - app/views/educode_sales/plans/show_weekly.html.erb
285
+ - app/views/educode_sales/recycles/_business.html.erb
286
+ - app/views/educode_sales/recycles/_monthPlan.html.erb
287
+ - app/views/educode_sales/recycles/_monthly.html.erb
288
+ - app/views/educode_sales/recycles/_weekPlan.html.erb
289
+ - app/views/educode_sales/recycles/_weekly.html.erb
290
+ - app/views/educode_sales/recycles/business.json.jbuilder
291
+ - app/views/educode_sales/recycles/index.html.erb
292
+ - app/views/educode_sales/recycles/monthPlan.json.jbuilder
293
+ - app/views/educode_sales/recycles/monthly.json.jbuilder
294
+ - app/views/educode_sales/recycles/weekPlan.json.jbuilder
295
+ - app/views/educode_sales/recycles/weekly.json.jbuilder
281
296
  - app/views/educode_sales/roles/edit.html.erb
282
297
  - app/views/educode_sales/roles/index.html.erb
283
298
  - app/views/educode_sales/roles/index.json.jbuilder
284
299
  - app/views/educode_sales/roles/new.html.erb
300
+ - app/views/educode_sales/roles/rename.html.erb
285
301
  - app/views/educode_sales/sale_reports/audit.html.erb
286
302
  - app/views/educode_sales/sale_reports/edit.html.erb
287
303
  - app/views/educode_sales/sale_reports/index.json.jbuilder
@@ -289,6 +305,7 @@ files:
289
305
  - app/views/educode_sales/sale_reports/show.html.erb
290
306
  - app/views/educode_sales/sale_trends/operations.html.erb
291
307
  - app/views/educode_sales/sale_trends/trends.html.erb
308
+ - app/views/educode_sales/sale_trends/trends.json.jbuilder
292
309
  - app/views/educode_sales/sales/index.html.erb
293
310
  - app/views/educode_sales/sales/index.json.jbuilder
294
311
  - app/views/educode_sales/sales/operations.html.erb
@@ -359,6 +376,7 @@ files:
359
376
  - db/migrate/20211018054256_add_extras_to_commons.rb
360
377
  - db/migrate/20211022085324_add_teacher_used_to_teachers.rb
361
378
  - db/migrate/20211102085743_add_bidded_date_educode_sales_follow_ups.rb
379
+ - db/migrate/20211109015617_create_educode_sales_recycles.rb
362
380
  - lib/educode_sales.rb
363
381
  - lib/educode_sales/engine.rb
364
382
  - lib/educode_sales/version.rb