educode_sales 0.6.7 → 0.7.1
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.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/businesses_controller.rb +185 -6
- data/app/controllers/educode_sales/customers_controller.rb +48 -15
- data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
- data/app/controllers/educode_sales/home_controller.rb +6 -0
- data/app/controllers/educode_sales/money_plans_controller.rb +3 -3
- data/app/controllers/educode_sales/operation_plans_controller.rb +4 -1
- data/app/controllers/educode_sales/plans_controller.rb +2 -1
- data/app/controllers/educode_sales/sale_trends_controller.rb +4 -2
- data/app/controllers/educode_sales/staffs_controller.rb +31 -0
- data/app/controllers/educode_sales/teachers_controller.rb +1 -1
- data/app/models/educode_sales/customer_add.rb +4 -0
- data/app/models/educode_sales/staff.rb +1 -0
- data/app/models/educode_sales/staff_school.rb +6 -0
- data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +30 -0
- data/app/views/educode_sales/businesses/index.html.erb +103 -10
- data/app/views/educode_sales/businesses/index.json.jbuilder +9 -35
- data/app/views/educode_sales/businesses/show_follow.html.erb +44 -4
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +2 -0
- data/app/views/educode_sales/customers/index.html.erb +30 -1
- data/app/views/educode_sales/customers/index.json.jbuilder +12 -0
- data/app/views/educode_sales/customers/new.html.erb +106 -53
- data/app/views/educode_sales/home/staff_schools.json.jbuilder +9 -0
- data/app/views/educode_sales/roles/edit.html.erb +17 -11
- data/app/views/educode_sales/sale_trends/trends.html.erb +1 -1
- data/app/views/educode_sales/sales/index.json.jbuilder +1 -1
- data/app/views/educode_sales/staffs/edit.html.erb +46 -5
- data/app/views/educode_sales/staffs/index.html.erb +74 -2
- data/app/views/educode_sales/staffs/index.json.jbuilder +1 -0
- data/config/routes.rb +2 -0
- data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +5 -0
- data/db/migrate/20220121060006_create_educode_sales_business_export_records.rb +10 -0
- data/db/migrate/20220125013811_create_educode_sales_staff_schools.rb +10 -0
- data/db/migrate/20220125033552_create_educode_sales_customer_adds.rb +9 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +9 -2
@@ -3,9 +3,9 @@
|
|
3
3
|
<li class="layui-this">操作权限</li>
|
4
4
|
<li>数据浏览权限</li>
|
5
5
|
</ul>
|
6
|
-
<div class="layui-tab-content">
|
7
|
-
<div class="layui-tab-item layui-show">
|
8
|
-
<form class="layui-form
|
6
|
+
<div class="layui-tab-content caozuo">
|
7
|
+
<div class="layui-tab-item layui-show" style="height: 800px;!important;">
|
8
|
+
<form class="layui-form " action="">
|
9
9
|
<% id = 0 %>
|
10
10
|
<% EducodeSales::Permission.all.order(position: :asc).group_by{ |d| d.clazz}.each do |k, d| %>
|
11
11
|
<div class="layui-form-item">
|
@@ -32,15 +32,15 @@
|
|
32
32
|
<label class="layui-form-label">商机管理</label>
|
33
33
|
<div class="layui-input-block">
|
34
34
|
<%= radio_button_tag("business", "自己", @areas.include?("商机管理-自己"), {title: '本人创建列表', id: 1}) %>
|
35
|
-
<%= radio_button_tag("business", "区域", @areas.include?("商机管理-区域"), {title: '
|
35
|
+
<%= radio_button_tag("business", "区域", @areas.include?("商机管理-区域"), {title: '本人负责区域及监管院校列表', id: 2}) %>
|
36
36
|
<%= radio_button_tag("business", "全部", @areas.include?("商机管理-全部"), {title: '全部列表', id: 3}) %>
|
37
37
|
</div>
|
38
38
|
</div>
|
39
39
|
<div class="layui-form-item" style="border-top: 1px solid #ddd;">
|
40
|
-
<label class="layui-form-label"
|
40
|
+
<label class="layui-form-label">回款计划</label>
|
41
41
|
<div class="layui-input-block">
|
42
42
|
<%= radio_button_tag("money_plan", "自己", @areas.include?("回款管理-自己"), {title: '本人负责列表', id: 16}) %>
|
43
|
-
<%= radio_button_tag("money_plan", "区域", @areas.include?("回款管理-区域"), {title: '
|
43
|
+
<%= radio_button_tag("money_plan", "区域", @areas.include?("回款管理-区域"), {title: '本人负责区域及监管院校列表', id: 17}) %>
|
44
44
|
<%= radio_button_tag("money_plan", "全部", @areas.include?("回款管理-全部"), {title: '全部列表', id: 18}) %>
|
45
45
|
</div>
|
46
46
|
</div>
|
@@ -48,7 +48,7 @@
|
|
48
48
|
<label class="layui-form-label">客户管理</label>
|
49
49
|
<div class="layui-input-block">
|
50
50
|
<%= radio_button_tag("customer", "自己", @areas.include?("客户管理-自己"), {title: '本人负责列表', id: 13}) %>
|
51
|
-
<%= radio_button_tag("customer", "区域", @areas.include?("客户管理-区域"), {title: '
|
51
|
+
<%= radio_button_tag("customer", "区域", @areas.include?("客户管理-区域"), {title: '本人负责区域及监管院校列表', id:14}) %>
|
52
52
|
<%= radio_button_tag("customer", "全部", @areas.include?("客户管理-全部"), {title: '全部列表', id: 15}) %>
|
53
53
|
</div>
|
54
54
|
</div>
|
@@ -56,7 +56,7 @@
|
|
56
56
|
<label class="layui-form-label">销售计划</label>
|
57
57
|
<div class="layui-input-block">
|
58
58
|
<%= radio_button_tag("sale_plan", "自己", @areas.include?("销售计划-自己"), {title: '本人创建列表', id: 4}) %>
|
59
|
-
<%= radio_button_tag("sale_plan", "区域", @areas.include?("销售计划-区域"), {title: '
|
59
|
+
<%= radio_button_tag("sale_plan", "区域", @areas.include?("销售计划-区域"), {title: '本人负责区域及监管院校列表', id: 5}) %>
|
60
60
|
<%= radio_button_tag("sale_plan", "全部", @areas.include?("销售计划-全部"), {title: '全部列表', id: 6}) %>
|
61
61
|
</div>
|
62
62
|
</div>
|
@@ -64,7 +64,7 @@
|
|
64
64
|
<label class="layui-form-label">教师运营</label>
|
65
65
|
<div class="layui-input-block">
|
66
66
|
<%= radio_button_tag("teacher", "自己", @areas.include?("教师运营-自己"), {title: '本人创建列表', id: 7}) %>
|
67
|
-
<%= radio_button_tag("teacher", "区域", @areas.include?("教师运营-区域"), {title: '
|
67
|
+
<%= radio_button_tag("teacher", "区域", @areas.include?("教师运营-区域"), {title: '本人负责区域及监管院校列表', id:8}) %>
|
68
68
|
<%= radio_button_tag("teacher", "全部", @areas.include?("教师运营-全部"), {title: '全部列表', id: 9}) %>
|
69
69
|
</div>
|
70
70
|
</div>
|
@@ -72,7 +72,7 @@
|
|
72
72
|
<label class="layui-form-label">运营计划</label>
|
73
73
|
<div class="layui-input-block">
|
74
74
|
<%= radio_button_tag("operation", "自己", @areas.include?("运营计划-自己"), {title: '本人创建列表', id: 10}) %>
|
75
|
-
<%= radio_button_tag("operation", "区域", @areas.include?("运营计划-区域"), {title: '
|
75
|
+
<%= radio_button_tag("operation", "区域", @areas.include?("运营计划-区域"), {title: '本人负责区域及监管院校列表', id:11}) %>
|
76
76
|
<%= radio_button_tag("operation", "全部", @areas.include?("运营计划-全部"), {title: '全部列表', id: 12}) %>
|
77
77
|
</div>
|
78
78
|
</div>
|
@@ -139,4 +139,10 @@
|
|
139
139
|
})
|
140
140
|
//…
|
141
141
|
});
|
142
|
-
</script>
|
142
|
+
</script>
|
143
|
+
<style>
|
144
|
+
.caozuo .layui-tab-item {
|
145
|
+
width: 100% !important;
|
146
|
+
height: 900px !important;
|
147
|
+
}
|
148
|
+
</style>
|
@@ -621,7 +621,7 @@
|
|
621
621
|
});
|
622
622
|
$(".customer_bt").click(function () {
|
623
623
|
layer.load(0, {});
|
624
|
-
$.get('/missions/sale_trends/trends.json?customer_count_type=' + $("#customer_count_type").val() + '&customer_time_range=' + $("#customer_time_range").val()).done(function(res) {
|
624
|
+
$.get('/missions/sale_trends/trends.json?customer_count_type=' + $("#customer_count_type").val() + '&customer_time_range=' + $("#customer_time_range").val() + '&customer_date=' + $("#customer_date").val()).done(function(res) {
|
625
625
|
layer.closeAll('loading');
|
626
626
|
var data4 = res.data4;
|
627
627
|
myChart4.data = data4
|
@@ -60,7 +60,7 @@ json.data do
|
|
60
60
|
json.school_count school_count
|
61
61
|
follow_school_count = (EducodeSales::CustomerFollow.where(staff_id: d.id).where("created_at >= ? AND created_at <= ?", "#{@year}-01-01 00:00:00", "#{@year}-12-31 23:59:59").pluck(:school_id) + EducodeSales::Business.where(id: EducodeSales::FollowUp.where("created_at >= ? AND created_at <= ?", "#{@year}-01-01 00:00:00", "#{@year}-12-31 23:59:59").where(staff_id: d.id).pluck(:business_id).uniq).pluck(:school_id)).uniq.size
|
62
62
|
json.follow_school_count follow_school_count
|
63
|
-
json.follow_school_counts EducodeSales::CustomerFollow.where(staff_id: d.id).where("created_at >= ? AND created_at <= ?", "#{@year}-01-01", "#{@year}-12-31").size + EducodeSales::FollowUp.where(staff_id: d.id).where("created_at >= ? AND created_at <= ?", "#{@year}-01-01", "#{@year}-12-31").size
|
63
|
+
json.follow_school_counts EducodeSales::CustomerFollow.where(staff_id: d.id).where("created_at >= ? AND created_at <= ?", "#{@year}-01-01 00:00:00", "#{@year}-12-31 23:59:59").size + EducodeSales::FollowUp.where(staff_id: d.id).where("created_at >= ? AND created_at <= ?", "#{@year}-01-01 00:00:00", "#{@year}-12-31 23:59:59").size
|
64
64
|
follow_school_rate = (follow_school_count!=0 ? school_count.to_f * 100 / follow_school_count : 0).round(2)
|
65
65
|
json.follow_school_rate follow_school_rate.to_s + '%'
|
66
66
|
follow_department_rate = (follow_school_count!=0 ? school_count.to_f * 110 / follow_school_count : 0).round(2)
|
@@ -25,11 +25,17 @@
|
|
25
25
|
</div>
|
26
26
|
</div>
|
27
27
|
<div class="layui-form-item">
|
28
|
-
<label class="layui-form-label
|
28
|
+
<label class="layui-form-label">负责区域</label>
|
29
29
|
<div class="layui-input-block">
|
30
30
|
<div id="area" class="demo-transfer"></div>
|
31
31
|
</div>
|
32
32
|
</div>
|
33
|
+
<div class="layui-form-item" >
|
34
|
+
<label class="layui-form-label">监管学校</label>
|
35
|
+
<div class="layui-input-inline" style="">
|
36
|
+
<div id="edit_assign_follow" style="width: 1140px;"></div>
|
37
|
+
</div>
|
38
|
+
</div>
|
33
39
|
<div class="layui-form-item">
|
34
40
|
<label class="layui-form-label required">生效日期</label>
|
35
41
|
<div class="layui-input-block">
|
@@ -85,6 +91,40 @@
|
|
85
91
|
return false
|
86
92
|
}
|
87
93
|
})
|
94
|
+
var sales_list = xmSelect.render({
|
95
|
+
el: '#edit_assign_follow',
|
96
|
+
remoteSearch: true,
|
97
|
+
autoRow: true,
|
98
|
+
// clickClose: true,
|
99
|
+
delay: 1000,
|
100
|
+
tips: '支持名称/省份搜索,请至少输入一个字符',
|
101
|
+
searchTips: '支持名称/省份搜索,请至少输入一个字符',
|
102
|
+
paging: true,
|
103
|
+
pageRemote: true,
|
104
|
+
filterable: true,
|
105
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
106
|
+
if(!val){
|
107
|
+
return cb([]);
|
108
|
+
}
|
109
|
+
$.ajax( '/missions/staff_schools', {
|
110
|
+
method: 'get',
|
111
|
+
data: {
|
112
|
+
q: val,
|
113
|
+
page: pageIndex
|
114
|
+
},
|
115
|
+
dataType: 'json',
|
116
|
+
success: function (res) {
|
117
|
+
var data = res.data;
|
118
|
+
if (res.code == 0) {
|
119
|
+
cb(res.data, res.count);
|
120
|
+
} else {
|
121
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
122
|
+
}
|
123
|
+
}
|
124
|
+
})
|
125
|
+
}
|
126
|
+
})
|
127
|
+
sales_list.setValue(gon.schools)
|
88
128
|
|
89
129
|
//监听提交
|
90
130
|
form.on('submit(saveBtn)', function (data) {
|
@@ -92,10 +132,11 @@
|
|
92
132
|
layui.each(transfer.getData('area_list'), function (i, v) {
|
93
133
|
area_ids.push(v.value)
|
94
134
|
})
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
}
|
135
|
+
var schools = [];
|
136
|
+
sales_list.getValue().forEach(function(d) {
|
137
|
+
schools.push(d.value);
|
138
|
+
})
|
139
|
+
data.field['school_ids'] = schools;
|
99
140
|
data.field['area_ids'] = area_ids;
|
100
141
|
request.authPut("missions/staffs/" + parent.staff_id, data.field, function (res) {
|
101
142
|
console.log(res.success == false)
|
@@ -4,9 +4,43 @@
|
|
4
4
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加人员</button>
|
5
5
|
</div>
|
6
6
|
</script>
|
7
|
-
|
7
|
+
<div class="layuimini-main min-height-table" id="week_table_wraper">
|
8
|
+
<div class="layui-form layui-form-pane" lay-filter="week_plan_form_filter">
|
9
|
+
<div class="layui-form-item">
|
10
|
+
<div class="layui-inline">
|
11
|
+
<label class="layui-form-label">用户名</label>
|
12
|
+
<div class="layui-input-inline large-select">
|
13
|
+
<input type="text" class="layui-input" id="name" autocomplete="off" name="name">
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<div class="layui-inline">
|
17
|
+
<label class="layui-form-label">角色</label>
|
18
|
+
<div class="layui-input-inline">
|
19
|
+
<%= select_tag "role", options_for_select(EducodeSales::Role.all.pluck(:name, :id)), {'lay-filter': 'role', include_blank: true} %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<div class="layui-inline">
|
23
|
+
<label class="layui-form-label">人员类型</label>
|
24
|
+
<div class="layui-input-inline large-select">
|
25
|
+
<%= select_tag "staff_type", options_for_select(EducodeSales::Common.where(clazz: 'staff_type').pluck(:name, :id)), {'lay-filter': 'staff_type', include_blank: true} %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="layui-inline">
|
29
|
+
<label class="layui-form-label">状态</label>
|
30
|
+
<div class="layui-input-inline large-select">
|
31
|
+
<%= select_tag "banned", options_for_select([["启用",0],["禁用",1]]), {'lay-filter': 'banned', include_blank: true} %>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
<div class="layui-inline">
|
35
|
+
<button type="reset" lay-submit class="layui-btn layui-btn-primary" lay-filter="week_plan_reset">重置
|
36
|
+
</button>
|
37
|
+
<button type="submit" lay-submit class="layui-btn layui-btn-primary" lay-filter="week_plan_search">检索
|
38
|
+
</button>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
</div>
|
8
42
|
<table class="layui-hide" id="staff_filter" lay-filter="staff_filter"></table>
|
9
|
-
|
43
|
+
</div>
|
10
44
|
<script type="text/html" id="staff_bar">
|
11
45
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
|
12
46
|
<a class="layui-btn layui-btn-xs layui-btn-warm data-count-delete" lay-event="disable">禁用</a>
|
@@ -53,6 +87,12 @@
|
|
53
87
|
{
|
54
88
|
field: 'area',
|
55
89
|
title: '负责区域',
|
90
|
+
templet:'<div><span title="{{d.area}}">{{d.area}}</span></div>'
|
91
|
+
},
|
92
|
+
{
|
93
|
+
field: 'schools',
|
94
|
+
title: '监管学校',
|
95
|
+
templet:'<div><span title="{{d.schools}}">{{d.schools}}</span></div>'
|
56
96
|
},
|
57
97
|
{
|
58
98
|
field: 'month',
|
@@ -97,6 +137,38 @@
|
|
97
137
|
});
|
98
138
|
}
|
99
139
|
});
|
140
|
+
var sort = {}, search = {};
|
141
|
+
// table.on('sort(weekPlanTable)', function(obj) {
|
142
|
+
// sort.field = obj.field;
|
143
|
+
// sort.order = obj.type;
|
144
|
+
// table.reload('weekPlanTable', {
|
145
|
+
// initSort: obj,
|
146
|
+
// where: {
|
147
|
+
// sort: sort,
|
148
|
+
// q: search
|
149
|
+
// }
|
150
|
+
// });
|
151
|
+
// })
|
152
|
+
|
153
|
+
// 监听搜索操作
|
154
|
+
form.on('submit(week_plan_search)', function (data) {
|
155
|
+
search = data.field
|
156
|
+
table.reload('staff_filter', {
|
157
|
+
page: {
|
158
|
+
curr: 1
|
159
|
+
},
|
160
|
+
where: {q: search, sort : sort}
|
161
|
+
}, 'data');
|
162
|
+
|
163
|
+
return false;
|
164
|
+
});
|
165
|
+
|
166
|
+
form.on('submit(week_plan_reset)', function(data){
|
167
|
+
var field = data.field;
|
168
|
+
form.val('week_plan_form_filter', {name: '', role: '', staff_type: '', banned: ''})
|
169
|
+
return false;
|
170
|
+
});
|
171
|
+
|
100
172
|
table.on('tool(staff_filter)', function (obj) {
|
101
173
|
var data = obj.data;
|
102
174
|
staff_id = data.id;
|
@@ -4,6 +4,7 @@ json.data do
|
|
4
4
|
json.id d.id
|
5
5
|
json.name d.user.real_name
|
6
6
|
json.role d.role&.name
|
7
|
+
json.schools d.staff_schools.map(&:school).map(&:name).join("、")
|
7
8
|
json.job_type EducodeSales::Common.job_type_name[d.job_type]
|
8
9
|
json.month d.month
|
9
10
|
json.enabled_at d.enabled_at ? d.enabled_at.to_s(:date) : ''
|
data/config/routes.rb
CHANGED
@@ -12,6 +12,7 @@ EducodeSales::Engine.routes.draw do
|
|
12
12
|
get :no_permission, to: "home#no_permission"
|
13
13
|
get :sales_staff, to: "home#sales_staff"
|
14
14
|
get :sales_place, to: "home#sales_place"
|
15
|
+
get :staff_schools, to: "home#staff_schools"
|
15
16
|
|
16
17
|
resources :sessions do
|
17
18
|
end
|
@@ -83,6 +84,7 @@ EducodeSales::Engine.routes.draw do
|
|
83
84
|
resources :businesses do
|
84
85
|
collection do
|
85
86
|
get :export_records
|
87
|
+
post :get_export_data
|
86
88
|
get :add_export_records
|
87
89
|
get :show_keys
|
88
90
|
get :add_keys
|
@@ -15,6 +15,11 @@ class CreateEducodeSalesRolePermissions < ActiveRecord::Migration[5.2]
|
|
15
15
|
EducodeSales::Permission.create(name: '上传附件', subject: 'Business', action: 'upload_file', clazz: 'business', position: '11')
|
16
16
|
EducodeSales::Permission.create(name: '下载附件', subject: 'Business', action: 'download_file', clazz: 'business', position: '11')
|
17
17
|
EducodeSales::Permission.create(name: '删除附件', subject: 'Business', action: 'delete_file', clazz: 'business', position: '11')
|
18
|
+
#商机个人权限
|
19
|
+
EducodeSales::Permission.create(name: '编辑商机(本人商机)', subject: 'Business', action: 'self_edit_business', clazz: 'business', position: '5')
|
20
|
+
EducodeSales::Permission.create(name: '添加跟进记录(本人商机)', subject: 'Business', action: 'self_add_follow', clazz: 'business', position: '8')
|
21
|
+
EducodeSales::Permission.create(name: '编辑跟进记录(本人创建)', subject: 'Business', action: 'self_edit_follow', clazz: 'business', position: '9')
|
22
|
+
EducodeSales::Permission.create(name: '删除跟进记录(本人创建)', subject: 'Business', action: 'self_delete_follow', clazz: 'business', position: '10')
|
18
23
|
#回款管理权限
|
19
24
|
EducodeSales::Permission.create(name: '查看回款列表', subject: 'MoneyPlan', action: 'read', clazz: 'money_plan', position: '15')
|
20
25
|
|
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.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -181,6 +181,7 @@ files:
|
|
181
181
|
- app/models/educode_sales/common.rb
|
182
182
|
- app/models/educode_sales/course_subject.rb
|
183
183
|
- app/models/educode_sales/customer.rb
|
184
|
+
- app/models/educode_sales/customer_add.rb
|
184
185
|
- app/models/educode_sales/customer_extension.rb
|
185
186
|
- app/models/educode_sales/customer_follow.rb
|
186
187
|
- app/models/educode_sales/follow_up.rb
|
@@ -201,6 +202,7 @@ files:
|
|
201
202
|
- app/models/educode_sales/sale_report.rb
|
202
203
|
- app/models/educode_sales/sale_trend.rb
|
203
204
|
- app/models/educode_sales/staff.rb
|
205
|
+
- app/models/educode_sales/staff_school.rb
|
204
206
|
- app/models/educode_sales/teacher.rb
|
205
207
|
- app/models/educode_sales/teacher_assign_follow.rb
|
206
208
|
- app/models/educode_sales/teacher_follow.rb
|
@@ -216,6 +218,7 @@ files:
|
|
216
218
|
- app/views/educode_sales/businesses/export_records.html.erb
|
217
219
|
- app/views/educode_sales/businesses/export_records.json.jbuilder
|
218
220
|
- app/views/educode_sales/businesses/file.html.erb
|
221
|
+
- app/views/educode_sales/businesses/get_export_data.json.jbuilder
|
219
222
|
- app/views/educode_sales/businesses/index.html.erb
|
220
223
|
- app/views/educode_sales/businesses/index.json.jbuilder
|
221
224
|
- app/views/educode_sales/businesses/new.html.erb
|
@@ -257,6 +260,7 @@ files:
|
|
257
260
|
- app/views/educode_sales/home/search_operation_teacher.json.jbuilder
|
258
261
|
- app/views/educode_sales/home/search_teacher.json.jbuilder
|
259
262
|
- app/views/educode_sales/home/search_users.json.jbuilder
|
263
|
+
- app/views/educode_sales/home/staff_schools.json.jbuilder
|
260
264
|
- app/views/educode_sales/home/statistics.html.erb
|
261
265
|
- app/views/educode_sales/money_plans/index.html.erb
|
262
266
|
- app/views/educode_sales/money_plans/index.json.jbuilder
|
@@ -414,6 +418,9 @@ files:
|
|
414
418
|
- db/migrate/20211215025029_create_educode_sales_customer_follows.rb
|
415
419
|
- db/migrate/20211220102720_add_position_to_commons.rb
|
416
420
|
- db/migrate/20211221075146_add_school_id_to_educode_sales_businesses.rb
|
421
|
+
- db/migrate/20220121060006_create_educode_sales_business_export_records.rb
|
422
|
+
- db/migrate/20220125013811_create_educode_sales_staff_schools.rb
|
423
|
+
- db/migrate/20220125033552_create_educode_sales_customer_adds.rb
|
417
424
|
- lib/educode_sales.rb
|
418
425
|
- lib/educode_sales/engine.rb
|
419
426
|
- lib/educode_sales/version.rb
|