educode_sales 0.5.9 → 0.6.0
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/views/educode_sales/customers/edit_department.html.erb +4 -2
- data/app/views/educode_sales/customers/edit_follow_record.html.erb +7 -7
- data/app/views/educode_sales/customers/index.html.erb +13 -6
- data/app/views/educode_sales/customers/index.json.jbuilder +2 -2
- data/app/views/educode_sales/customers/new_department.html.erb +4 -2
- data/app/views/educode_sales/customers/new_follow_record.html.erb +9 -9
- data/app/views/educode_sales/customers/show_follow.html.erb +3 -3
- data/app/views/educode_sales/customers/show_follow.json.jbuilder +1 -1
- data/app/views/educode_sales/sales/index.html.erb +14 -2
- data/app/views/educode_sales/sales/index.json.jbuilder +9 -2
- data/lib/educode_sales/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a02b261726217306908f432883b2fc65fbaafb7f5cca5011756ac826bed71729
|
4
|
+
data.tar.gz: 9683550674255290ce92aa546115e5c12737d6f998b489ee94d2342b061fde33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6b1540d81940940df2d890b102a0aa45459b11b094951b59ac659029e5d7bae03b2682ccfc8d3a7ed70fbf319f2b714840dd5943b605e4f4d28fb863984cb8d
|
7
|
+
data.tar.gz: 93334a9161ed506b31284db48649d0ef5db377cbb03f3a464637c10f8fbbbca19dd4d243b3f1ba0192540d3cc42e6fe7acd52337029c43a10ee10a497c6d3c63
|
@@ -1,14 +1,16 @@
|
|
1
1
|
<div class="layuimini-main">
|
2
2
|
<form class="layui-form layuimini-form" action="">
|
3
|
+
<div class="layui-form-item" style="padding: 25px">
|
3
4
|
<div class="layui-form-item" style="padding: 25px">
|
4
5
|
<div class="layui-inline">
|
5
6
|
<label class="layui-form-label required">部门名称</label>
|
6
|
-
<div class="layui-input-block">
|
7
|
+
<div class="layui-input-block" style="width: 300px;">
|
7
8
|
<input type="text" name="department_name" required lay-verify="required" autocomplete="off" placeholder="请输入"
|
8
9
|
class="layui-input" id="inputFocus" value="<%=@department.name %>">
|
9
10
|
</div>
|
10
11
|
</div>
|
11
|
-
|
12
|
+
</div>
|
13
|
+
<div class="layui-form-item" style="padding-left: 130px">
|
12
14
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-edit">提交
|
13
15
|
</button>
|
14
16
|
</div>
|
@@ -1,18 +1,18 @@
|
|
1
1
|
<h1 class="text-center" style="padding: 25px"><%=@school.name %></h1>
|
2
|
-
<form class="layui-form " action="">
|
3
|
-
<div class="layui-form-item layui-form-text">
|
4
|
-
<label class="layui-form-label">跟进内容</label>
|
2
|
+
<form class="layui-form layuimini-form " action="">
|
3
|
+
<div class="layui-form-item layui-form-text" style="padding-right: 30px">
|
4
|
+
<label class="layui-form-label required">跟进内容</label>
|
5
5
|
<div class="layui-input-block">
|
6
|
-
<textarea name="content" placeholder="请输入跟进内容" class="layui-textarea" ><%=@follow_up.content %></textarea>
|
6
|
+
<textarea name="content" placeholder="请输入跟进内容" lay-verify="required" style="height: 200px" class="layui-textarea" ><%=@follow_up.content %></textarea>
|
7
7
|
</div>
|
8
8
|
</div>
|
9
|
-
<div class="layui-
|
9
|
+
<div class="layui-form-item ">
|
10
10
|
<label class="layui-form-label">跟进部门</label>
|
11
|
-
<div class="layui-input-inline">
|
11
|
+
<div class="layui-input-inline" style="width: 300px;">
|
12
12
|
<%= select_tag "department_id",options_for_select(@school.departments.pluck(:name, :id),@follow_up.department_id)%>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
|
-
<div class="layui-
|
15
|
+
<div class="layui-form-item " style="padding-left: 110px">
|
16
16
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit_follow_up">提交
|
17
17
|
</button>
|
18
18
|
</div>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<div class="layui-inline">
|
17
17
|
<label class="layui-form-label">负责人</label>
|
18
18
|
<div class="layui-input-inline">
|
19
|
-
<%= select_tag "staff_id", options_for_select(@staffs), { include_blank: true } %>
|
19
|
+
<%= select_tag "staff_id", options_for_select(@staffs,params[:staff_id]), { include_blank: true } %>
|
20
20
|
</div>
|
21
21
|
</div>
|
22
22
|
<div class="layui-inline">
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<div class="layui-inline">
|
30
30
|
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
|
31
31
|
</button>
|
32
|
-
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_teachers">搜 索
|
32
|
+
<button type="submit" class="layui-btn layui-btn-primary" id="search_bt" lay-submit lay-filter="search_teachers">搜 索
|
33
33
|
</button>
|
34
34
|
</div>
|
35
35
|
</div>
|
@@ -87,6 +87,13 @@
|
|
87
87
|
|
88
88
|
var laydate = layui.laydate;
|
89
89
|
|
90
|
+
function hn(){
|
91
|
+
$("#search_bt").trigger("click");
|
92
|
+
}
|
93
|
+
$(document).ready(function(){
|
94
|
+
window.onload=hn;
|
95
|
+
});
|
96
|
+
|
90
97
|
laydate.render({
|
91
98
|
elem: '#date',
|
92
99
|
range: true
|
@@ -114,7 +121,6 @@
|
|
114
121
|
},
|
115
122
|
{
|
116
123
|
field: 'name',
|
117
|
-
width: 160,
|
118
124
|
title: '客户名称',
|
119
125
|
templet: "#name"
|
120
126
|
},
|
@@ -143,7 +149,7 @@
|
|
143
149
|
},
|
144
150
|
{
|
145
151
|
field: 'last_follow_time',
|
146
|
-
width:
|
152
|
+
width: 170,
|
147
153
|
title: '最后跟进时间',
|
148
154
|
},
|
149
155
|
{
|
@@ -153,7 +159,7 @@
|
|
153
159
|
},
|
154
160
|
{
|
155
161
|
title: '操作',
|
156
|
-
|
162
|
+
width: 300,
|
157
163
|
toolbar: '#currentTableBar',
|
158
164
|
align: "center",
|
159
165
|
fixed: 'right'
|
@@ -251,11 +257,12 @@
|
|
251
257
|
name: "",
|
252
258
|
professional_title: "",
|
253
259
|
regist_at: "",
|
260
|
+
staff_id: "",
|
254
261
|
status: "",
|
255
262
|
school: "",
|
256
263
|
assist: "",
|
257
264
|
teacher_source: ""
|
258
|
-
})
|
265
|
+
});
|
259
266
|
return false;
|
260
267
|
});
|
261
268
|
/**
|
@@ -4,8 +4,8 @@ json.data do
|
|
4
4
|
business_ids = EducodeSales::Business.where(department_id: department_ids).ids
|
5
5
|
follow_ups = EducodeSales::FollowUp.where(business_id: business_ids)
|
6
6
|
customer_follows = EducodeSales::CustomerFollow.where(school_id: d.id)
|
7
|
-
a_last_follow_time = follow_ups.last&.created_at&.to_s
|
8
|
-
b_last_follow_time = customer_follows.last&.created_at&.to_s
|
7
|
+
a_last_follow_time = follow_ups.last&.created_at&.to_s
|
8
|
+
b_last_follow_time = customer_follows.last&.created_at&.to_s
|
9
9
|
if a_last_follow_time.present? && b_last_follow_time.present?
|
10
10
|
json.last_follow_time a_last_follow_time < b_last_follow_time ? b_last_follow_time : a_last_follow_time
|
11
11
|
else
|
@@ -1,14 +1,16 @@
|
|
1
1
|
<div class="layuimini-main">
|
2
2
|
<form class="layui-form layuimini-form" action="">
|
3
|
+
<div class="layui-form-item" style="padding: 25px">
|
3
4
|
<div class="layui-form-item" style="padding: 25px">
|
4
5
|
<div class="layui-inline">
|
5
6
|
<label class="layui-form-label required">部门名称</label>
|
6
|
-
<div class="layui-input-block">
|
7
|
+
<div class="layui-input-block" style="width: 300px;">
|
7
8
|
<input type="text" name="department_name" required lay-verify="required" autocomplete="off" placeholder="请输入"
|
8
9
|
class="layui-input" id="inputFocus">
|
9
10
|
</div>
|
10
11
|
</div>
|
11
|
-
|
12
|
+
</div>
|
13
|
+
<div class="layui-form-item" style="padding-left: 130px">
|
12
14
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交
|
13
15
|
</button>
|
14
16
|
</div>
|
@@ -1,18 +1,18 @@
|
|
1
1
|
<h1 class="text-center" style="padding: 25px"><%=@school.name %></h1>
|
2
|
-
<form class="layui-form " action="">
|
3
|
-
<div class="layui-form-item layui-form-text">
|
4
|
-
<label class="layui-form-label">跟进内容</label>
|
2
|
+
<form class="layui-form layuimini-form " action="">
|
3
|
+
<div class="layui-form-item layui-form-text" style="padding-right: 30px">
|
4
|
+
<label class="layui-form-label required" >跟进内容</label>
|
5
5
|
<div class="layui-input-block">
|
6
|
-
<textarea name="content" placeholder="请输入跟进内容" class="layui-textarea"></textarea>
|
6
|
+
<textarea name="content" placeholder="请输入跟进内容" lay-verify="required" style="height: 200px" class="layui-textarea"></textarea>
|
7
7
|
</div>
|
8
8
|
</div>
|
9
|
-
|
10
|
-
<label class="layui-form-label
|
11
|
-
<div class="layui-input-inline">
|
12
|
-
<%= select_tag "department_id",options_for_select(@school.departments.pluck(:name, :id)), {
|
9
|
+
<div class="layui-form-item ">
|
10
|
+
<label class="layui-form-label ">跟进部门</label>
|
11
|
+
<div class="layui-input-inline" style="width: 300px">
|
12
|
+
<%= select_tag "department_id",options_for_select(@school.departments.pluck(:name, :id)), { include_blank: true}%>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
|
-
|
15
|
+
<div class="layui-form-item " style="padding-left: 110px">
|
16
16
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="add_follow_up">提交
|
17
17
|
</button>
|
18
18
|
</div>
|
@@ -54,7 +54,7 @@
|
|
54
54
|
},
|
55
55
|
{
|
56
56
|
title: '操作',
|
57
|
-
|
57
|
+
width: 190,
|
58
58
|
toolbar: '#currentTableBar_follow',
|
59
59
|
align: "center",
|
60
60
|
fixed: 'right'
|
@@ -251,7 +251,7 @@
|
|
251
251
|
},
|
252
252
|
{
|
253
253
|
field: 'created_at',
|
254
|
-
width:
|
254
|
+
width: 180,
|
255
255
|
title: '时间'
|
256
256
|
},
|
257
257
|
{
|
@@ -266,11 +266,11 @@
|
|
266
266
|
},
|
267
267
|
{
|
268
268
|
field: 'content',
|
269
|
-
width: 100,
|
270
269
|
title: '跟进内容'
|
271
270
|
},
|
272
271
|
{
|
273
272
|
title: '操作',
|
273
|
+
width: 300,
|
274
274
|
toolbar: '#currentTableBar1234',
|
275
275
|
align: "center"
|
276
276
|
}
|
@@ -3,7 +3,7 @@ json.data do
|
|
3
3
|
json.id d.id
|
4
4
|
json.created_at d.created_at.to_s
|
5
5
|
json.staff d.staff.user.real_name
|
6
|
-
json.department Department.find(d.department_id)&.name
|
6
|
+
json.department d.department_id.present? ? Department.find(d.department_id)&.name : ''
|
7
7
|
json.content d.content
|
8
8
|
json.is_latest d.id == @latest.id
|
9
9
|
end
|
@@ -44,6 +44,11 @@
|
|
44
44
|
<a href="/missions/businesses?clazz_id={{d.o_clazz_id}}&staff_id={{d.id}}">{{d.business_o}}</a>
|
45
45
|
</div>
|
46
46
|
</script>
|
47
|
+
<script type="text/html" id="school_count">
|
48
|
+
<div class="layui-text">
|
49
|
+
<a href="/missions/customers?staff_id={{d.id}}">{{d.school_count}}</a>
|
50
|
+
</div>
|
51
|
+
</script>
|
47
52
|
<script>
|
48
53
|
layui.use('table', function () {
|
49
54
|
var form = layui.form,
|
@@ -73,6 +78,7 @@
|
|
73
78
|
}, {
|
74
79
|
field: 'area',
|
75
80
|
title: '负责区域',
|
81
|
+
width: 100,
|
76
82
|
templet:'<div><span title="{{d.area}}">{{d.area}}</span></div>'
|
77
83
|
}, {
|
78
84
|
field: 'business_a',
|
@@ -132,30 +138,36 @@
|
|
132
138
|
{
|
133
139
|
field: 'school_count',
|
134
140
|
title: '负责学校数',
|
135
|
-
|
141
|
+
sort:true,
|
142
|
+
totalRow:true,
|
143
|
+
templet: "#school_count",
|
136
144
|
width: 120
|
137
145
|
},
|
138
146
|
{
|
139
147
|
field: 'follow_school_count',
|
140
148
|
title: '跟进学校数',
|
149
|
+
sort:true,
|
141
150
|
totalRow:'{{ parseInt(d.TOTAL_NUMS) }}',
|
142
151
|
width: 120
|
143
152
|
},
|
144
153
|
{
|
145
154
|
field: 'follow_school_counts',
|
146
155
|
title: '跟进学校次数',
|
156
|
+
sort:true,
|
147
157
|
totalRow:'{{ parseInt(d.TOTAL_NUMS) }}',
|
148
|
-
width:
|
158
|
+
width: 130
|
149
159
|
},
|
150
160
|
{
|
151
161
|
field: 'follow_school_rate',
|
152
162
|
title: '学校覆盖率',
|
163
|
+
sort:true,
|
153
164
|
totalRow:'{{ parseInt(d.TOTAL_NUMS) }}',
|
154
165
|
width: 120
|
155
166
|
},
|
156
167
|
{
|
157
168
|
field: 'follow_department_rate',
|
158
169
|
title: '学院覆盖率',
|
170
|
+
sort:true,
|
159
171
|
totalRow:'{{ parseInt(d.TOTAL_NUMS) }}',
|
160
172
|
width: 120
|
161
173
|
},
|
@@ -4,6 +4,7 @@ businesses_c_count = 0
|
|
4
4
|
businesses_d_count = 0
|
5
5
|
businesses_e_count = 0
|
6
6
|
businesses_o_count = 0
|
7
|
+
school_counts = 0
|
7
8
|
area_ids = EducodeSales::Common.where(clazz: 'area').ids.sort.to_s
|
8
9
|
json.data do
|
9
10
|
json.array! @staffs do |d|
|
@@ -33,9 +34,11 @@ json.data do
|
|
33
34
|
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
|
34
35
|
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
|
35
36
|
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
|
37
|
+
school_count = EducodeSales::CustomerExtension.where(customer_staff_id: d.id).size
|
36
38
|
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)
|
37
39
|
json.return_money @businesses.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", @x).where.not("educode_sales_money_plans.clazz!= ?", 1).sum(:amount).round(2)
|
38
|
-
json.school_count
|
40
|
+
json.school_count school_count
|
41
|
+
# json.follow_school_counts EducodeSales::CustomerFollow.where(staff_id: d.id).size + EducodeSales::FollowUp.where(staff_id: d.id).size
|
39
42
|
else
|
40
43
|
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).where("educode_sales_follow_ups.year = ?", @year).count
|
41
44
|
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).where("educode_sales_follow_ups.year = ?", @year).count
|
@@ -43,9 +46,11 @@ json.data do
|
|
43
46
|
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).where("educode_sales_follow_ups.year = ?", @year).count
|
44
47
|
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).where("educode_sales_follow_ups.year = ?", @year).count
|
45
48
|
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).where("educode_sales_follow_ups.year = ?", @year).count
|
49
|
+
school_count = EducodeSales::CustomerExtension.where(customer_staff_id: d.id).size
|
46
50
|
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).where("educode_sales_follow_ups.bidded_date >= ? AND educode_sales_follow_ups.bidded_date <= ?", "#{@year}-01-01", "#{@year}-12-31").sum(:total_amount).round(2)
|
47
51
|
json.return_money @businesses.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", @x).where.not("educode_sales_money_plans.clazz!= ?", 1).where("educode_sales_money_plans.date_at >= ? AND educode_sales_money_plans.date_at <= ? ", "#{@year}-01-01 00:00:00", "#{@year}-12-31 23:59:59").sum(:amount).round(2)
|
48
|
-
json.school_count
|
52
|
+
json.school_count school_count
|
53
|
+
# json.follow_school_counts EducodeSales::CustomerFollow.where(staff_id: d.id).size + EducodeSales::FollowUp.where(staff_id: d.id).size
|
49
54
|
end
|
50
55
|
|
51
56
|
json.business_a business_a
|
@@ -67,6 +72,7 @@ json.data do
|
|
67
72
|
businesses_d_count += business_d
|
68
73
|
businesses_e_count += business_e
|
69
74
|
businesses_o_count += business_o
|
75
|
+
school_counts += school_count
|
70
76
|
end
|
71
77
|
end
|
72
78
|
|
@@ -77,6 +83,7 @@ json.totalRow do
|
|
77
83
|
json.business_d businesses_d_count.to_s
|
78
84
|
json.business_e businesses_e_count.to_s
|
79
85
|
json.business_o businesses_o_count.to_s
|
86
|
+
json.school_count school_counts.to_s
|
80
87
|
end
|
81
88
|
json.code 0
|
82
89
|
json.count @staffs.total_count
|
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.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|