educode_sales 0.6.2 → 0.6.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.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/businesses_controller.rb +4 -2
- data/app/controllers/educode_sales/customers_controller.rb +1 -0
- data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
- data/app/controllers/educode_sales/staffs_controller.rb +2 -2
- data/app/views/educode_sales/businesses/edit.html.erb +3 -0
- data/app/views/educode_sales/customers/edit.html.erb +7 -8
- data/app/views/educode_sales/customers/index.html.erb +6 -7
- data/app/views/educode_sales/customers/new.html.erb +7 -8
- data/app/views/educode_sales/sales/index.html.erb +16 -16
- data/app/views/educode_sales/sales/index.json.jbuilder +2 -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: 49cd6d76f9cd164f4672b75479bacf2d6c6c2837a8bd100074d43a5ad687d08d
|
4
|
+
data.tar.gz: 503d5d4c354452464da72ef216f9ad9c9ddb7da20e450ada871bb813913f3fc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8eead6ddaeb216468798a82db5f674a1582a5f641f4be378c8635e500c98d06e5297c9850a62477ddf644c895d9c10d5de5f287fd3dad7c22ae789768631d42c
|
7
|
+
data.tar.gz: 3d258a4889bc94043a6af1d20dc54520b01ac0593f357e38d590b70c77e0e6bfafb387a15530fed83fa1f3b4aa7040038f4f2de218e41bd43dcb0d282c9d50fb
|
@@ -76,7 +76,9 @@ module EducodeSales
|
|
76
76
|
b_id = Common.find_by(extras: EducodeSales::Common::BTYPE)&.id
|
77
77
|
c_id = Common.find_by(extras: EducodeSales::Common::CTYPE)&.id
|
78
78
|
d_id = Common.find_by(extras: EducodeSales::Common::DTYPE)&.id
|
79
|
-
|
79
|
+
e_id = Common.find_by(extras: EducodeSales::Common::ETYPE)&.id
|
80
|
+
o_id = Common.find_by(extras: EducodeSales::Common::OTYPE)&.id
|
81
|
+
ids = [a_id ,b_id ,c_id ,d_id ,e_id ,o_id]
|
80
82
|
@businesses = @businesses.joins("
|
81
83
|
JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
|
82
84
|
").where("educode_sales_follow_ups.clazz_id in (?)",ids)
|
@@ -172,7 +174,7 @@ module EducodeSales
|
|
172
174
|
|
173
175
|
if params[:q].present? && params[:q][:date].present?
|
174
176
|
date = params[:q][:date].split(" - ")
|
175
|
-
@businesses = @businesses.where("educode_sales_businesses.created_at > ? AND educode_sales_businesses.created_at < ?", date[0], date[1])
|
177
|
+
@businesses = @businesses.where("educode_sales_businesses.created_at > ? AND educode_sales_businesses.created_at < ?", date[0], date[1] + '23:59:59')
|
176
178
|
end
|
177
179
|
|
178
180
|
if params[:sort].present? && params[:sort][:field]
|
@@ -162,6 +162,7 @@ module EducodeSales
|
|
162
162
|
@school.attributes = school_params
|
163
163
|
@school.school_property = property
|
164
164
|
@school.save!
|
165
|
+
EducodeSales::CustomerExtension.create(customer_staff_id: @current_admin.id, school_id: @school.id)
|
165
166
|
end
|
166
167
|
render_success
|
167
168
|
end
|
@@ -34,7 +34,7 @@ module EducodeSales
|
|
34
34
|
end
|
35
35
|
if params[:q].present? && params[:q][:follows_date].present?
|
36
36
|
date = params[:q][:follows_date].split(" - ")
|
37
|
-
@follow_ups = @follow_ups.where("educode_sales_follow_ups.created_at > ? AND educode_sales_follow_ups.created_at < ?", date[0], date[1])
|
37
|
+
@follow_ups = @follow_ups.where("educode_sales_follow_ups.created_at > ? AND educode_sales_follow_ups.created_at < ?", date[0], date[1] + '23:59:59')
|
38
38
|
end
|
39
39
|
if params[:q].present? && params[:q][:staff_id].present?
|
40
40
|
@follow_ups = @follow_ups.where(staff_id: params[:q][:staff_id])
|
@@ -68,8 +68,8 @@ module EducodeSales
|
|
68
68
|
def follow_up_schools
|
69
69
|
staff = Staff.find(params[:id])
|
70
70
|
# @schools = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("school_id").select("school_id, max(educode_sales_follow_ups.updated_at) AS updated_at").page(params[:page]).per(params[:limit])
|
71
|
-
@schools = EducodeSales::Teacher.joins(:follow_up, :department).where("educode_sales_teacher_follows.staff_id = #{staff.id}").group("school_id").select("school_id, max(educode_sales_teacher_follows.updated_at) AS updated_at")+EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("school_id").select("school_id, max(educode_sales_follow_ups.updated_at) AS updated_at")
|
72
|
-
@count = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("school_id").count
|
71
|
+
@schools = EducodeSales::Teacher.joins(:follow_up, :department).where("educode_sales_teacher_follows.staff_id = #{staff.id}").group("departments.school_id").select("departments.school_id, max(educode_sales_teacher_follows.updated_at) AS updated_at")+EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("departments.school_id").select("departments.school_id, max(educode_sales_follow_ups.updated_at) AS updated_at")
|
72
|
+
@count = EducodeSales::Business.joins(:last_follow_up, :department).where("educode_sales_follow_ups.staff_id = #{staff.id}").group("departments.school_id").count
|
73
73
|
end
|
74
74
|
|
75
75
|
def follow_up_departments
|
@@ -11,6 +11,9 @@
|
|
11
11
|
<label class="layui-form-label required">单位部门</label>
|
12
12
|
<div class="layui-input-block" id="department" style="width: 300px;"></div>
|
13
13
|
</div>
|
14
|
+
<div class="layui-inline" >
|
15
|
+
<a href="/missions/customers" style=" color: #0000FF">添加单位/部门</a>
|
16
|
+
</div>
|
14
17
|
<br>
|
15
18
|
<div class="layui-inline" style="padding-top: 20px">
|
16
19
|
<label class="layui-form-label ">商机来源</label>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<form class="layui-form layuimini-form " action="">
|
2
2
|
<div class="layui-form-item" style="padding: 25px">
|
3
3
|
<div class="layui-inline">
|
4
|
-
<label class="layui-form-label required"
|
5
|
-
<div class="layui-input-block">
|
6
|
-
<input type="text" name="name" required lay-verify="required" value="<%=@school.name %>" placeholder="
|
4
|
+
<label class="layui-form-label required">客户:</label>
|
5
|
+
<div class="layui-input-block" style="width: 500px;">
|
6
|
+
<input type="text" name="name" required lay-verify="required" value="<%=@school.name %>" placeholder="请输入客户" autocomplete="off"
|
7
7
|
class="layui-input" id="inputFocus">
|
8
8
|
</div>
|
9
9
|
</div>
|
@@ -11,8 +11,7 @@
|
|
11
11
|
<div class="layui-inline">
|
12
12
|
<label class="layui-form-label required">省:</label>
|
13
13
|
<div class="layui-input-block">
|
14
|
-
|
15
|
-
class="layui-input" placeholder="请输入地址" >
|
14
|
+
<%= select_tag "province", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name),@school.province), { include_blank: true } %>
|
16
15
|
</div>
|
17
16
|
</div>
|
18
17
|
<br>
|
@@ -20,13 +19,13 @@
|
|
20
19
|
<label class="layui-form-label ">市:</label>
|
21
20
|
<div class="layui-input-block">
|
22
21
|
<input type="text" name="city" value="<%=@school.city %>" autocomplete="off"
|
23
|
-
class="layui-input" placeholder="请输入地址" >
|
22
|
+
class="layui-input" placeholder="请输入地址" style="width: 223px">
|
24
23
|
</div>
|
25
24
|
</div>
|
26
25
|
<br>
|
27
26
|
<div class="layui-inline">
|
28
27
|
<label class="layui-form-label ">地址:</label>
|
29
|
-
<div class="layui-input-block">
|
28
|
+
<div class="layui-input-block" style="width: 500px;">
|
30
29
|
<input type="text" name="address" value="<%=@school.address %>" autocomplete="off"
|
31
30
|
class="layui-input" placeholder="请输入地址" >
|
32
31
|
</div>
|
@@ -51,7 +50,7 @@
|
|
51
50
|
<input type="checkbox" name="enterprise" lay-skin="primary" value="1" <%= 'checked' if @school_property&.enterprise %> title="企业">
|
52
51
|
</div>
|
53
52
|
</div>
|
54
|
-
<div class="layui-inline" style="padding-left:
|
53
|
+
<div class="layui-inline" style="padding-left: 120px">
|
55
54
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交
|
56
55
|
</button>
|
57
56
|
</div>
|
@@ -19,12 +19,12 @@
|
|
19
19
|
<%= select_tag "staff_id", options_for_select(@staffs,params[:staff_id]), { include_blank: true } %>
|
20
20
|
</div>
|
21
21
|
</div>
|
22
|
-
<div class="layui-inline"
|
23
|
-
<label class="layui-form-label">最后跟进</label
|
24
|
-
<div class="layui-input-inline"
|
25
|
-
<input type="text" class="layui-input" id="date" name="date" placeholder=" - "
|
26
|
-
</div
|
27
|
-
</div
|
22
|
+
<!-- <div class="layui-inline">-->
|
23
|
+
<!-- <label class="layui-form-label">最后跟进</label>-->
|
24
|
+
<!-- <div class="layui-input-inline">-->
|
25
|
+
<!-- <input type="text" class="layui-input" id="date" name="date" placeholder=" - ">-->
|
26
|
+
<!-- </div>-->
|
27
|
+
<!-- </div>-->
|
28
28
|
|
29
29
|
<div class="layui-inline">
|
30
30
|
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
|
@@ -151,7 +151,6 @@
|
|
151
151
|
field: 'last_follow_time',
|
152
152
|
width: 170,
|
153
153
|
title: '最后跟进时间',
|
154
|
-
sort: true
|
155
154
|
},
|
156
155
|
{
|
157
156
|
field: 'staff',
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<form class="layui-form layuimini-form" action="">
|
2
2
|
<div class="layui-form-item" style="padding: 25px">
|
3
3
|
<div class="layui-inline">
|
4
|
-
<label class="layui-form-label required"
|
5
|
-
<div class="layui-input-block">
|
6
|
-
<input type="text" name="name" lay-verify="required" placeholder="
|
4
|
+
<label class="layui-form-label required">客户:</label>
|
5
|
+
<div class="layui-input-block" style="width: 500px;">
|
6
|
+
<input type="text" name="name" lay-verify="required" placeholder="请输入客户" autocomplete="off"
|
7
7
|
class="layui-input" id="inputFocus">
|
8
8
|
</div>
|
9
9
|
</div>
|
@@ -11,22 +11,21 @@
|
|
11
11
|
<div class="layui-inline">
|
12
12
|
<label class="layui-form-label required">省:</label>
|
13
13
|
<div class="layui-input-block">
|
14
|
-
|
15
|
-
class="layui-input" placeholder="请输入省" >
|
14
|
+
<%= select_tag "province", options_for_select(EducodeSales::Common.where(clazz: 'area').pluck(:name)), { include_blank: true } %>
|
16
15
|
</div>
|
17
16
|
</div>
|
18
17
|
<br>
|
19
18
|
<div class="layui-inline">
|
20
19
|
<label class="layui-form-label ">市:</label>
|
21
20
|
<div class="layui-input-block">
|
22
|
-
<input type="text" name="city" autocomplete="off"
|
21
|
+
<input type="text" name="city" style="width: 223px;" autocomplete="off"
|
23
22
|
class="layui-input" placeholder="请输入市" >
|
24
23
|
</div>
|
25
24
|
</div>
|
26
25
|
<br>
|
27
26
|
<div class="layui-inline">
|
28
27
|
<label class="layui-form-label ">地址:</label>
|
29
|
-
<div class="layui-input-block">
|
28
|
+
<div class="layui-input-block" style="width: 500px;">
|
30
29
|
<input type="text" name="address" autocomplete="off"
|
31
30
|
class="layui-input" placeholder="请输入地址" >
|
32
31
|
</div>
|
@@ -51,7 +50,7 @@
|
|
51
50
|
<input type="checkbox" name="enterprise" lay-skin="primary" value="1" title="企业">
|
52
51
|
</div>
|
53
52
|
</div>
|
54
|
-
<div class="layui-inline" style="padding-left:
|
53
|
+
<div class="layui-inline" style="padding-left: 120px">
|
55
54
|
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交
|
56
55
|
</button>
|
57
56
|
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<div class="section">
|
2
2
|
<form class="layui-form select_year" action="">
|
3
|
-
<span>销售人员列表</span
|
3
|
+
<!-- <span>销售人员列表</span>-->
|
4
4
|
<div class="layui-input-inline" style="float: right">
|
5
5
|
<%= select_tag "years", options_for_select(@years,@year), {'lay-filter': 'year' } %>
|
6
6
|
</div>
|
@@ -50,6 +50,7 @@
|
|
50
50
|
</div>
|
51
51
|
</script>
|
52
52
|
<script type="text/html" id="bussinessBar">
|
53
|
+
<span>销售人员列表</span>
|
53
54
|
<div class="layui-btn-container">
|
54
55
|
</div>
|
55
56
|
</script>
|
@@ -84,7 +85,6 @@
|
|
84
85
|
}, {
|
85
86
|
field: 'area',
|
86
87
|
title: '负责区域',
|
87
|
-
width: 100,
|
88
88
|
templet:'<div><span title="{{d.area}}">{{d.area}}</span></div>'
|
89
89
|
}, {
|
90
90
|
field: 'business_a',
|
@@ -163,20 +163,20 @@
|
|
163
163
|
totalRow:'{{ parseInt(d.TOTAL_NUMS) }}',
|
164
164
|
width: 130
|
165
165
|
},
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
},
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
},
|
166
|
+
// {
|
167
|
+
// field: 'follow_school_rate',
|
168
|
+
// title: '学校覆盖率',
|
169
|
+
// sort:true,
|
170
|
+
// totalRow:true,
|
171
|
+
// width: 120
|
172
|
+
// },
|
173
|
+
// {
|
174
|
+
// field: 'follow_department_rate',
|
175
|
+
// title: '学院覆盖率',
|
176
|
+
// sort:true,
|
177
|
+
// totalRow:true,
|
178
|
+
// width: 120
|
179
|
+
// },
|
180
180
|
]
|
181
181
|
],
|
182
182
|
limit: 20,
|
@@ -100,8 +100,8 @@ json.totalRow do
|
|
100
100
|
json.business_e businesses_e_count.to_s
|
101
101
|
json.business_o businesses_o_count.to_s
|
102
102
|
json.school_count school_counts.to_s
|
103
|
-
json.follow_school_rate (follow_school_rates.to_f / @staffs.size).to_s + '%'
|
104
|
-
json.follow_department_rate (follow_department_rates.to_f / @staffs.size).to_s + '%'
|
103
|
+
json.follow_school_rate (follow_school_rates.to_f / @staffs.size).round(2).to_s + '%'
|
104
|
+
json.follow_department_rate (follow_department_rates.to_f / @staffs.size).round(2).to_s + '%'
|
105
105
|
end
|
106
106
|
json.code 0
|
107
107
|
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.6.
|
4
|
+
version: 0.6.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-12-
|
11
|
+
date: 2021-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|