educode_sales 0.7.8 → 0.8.2
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/application_controller.rb +14 -0
- data/app/controllers/educode_sales/assessments_controller.rb +126 -259
- data/app/controllers/educode_sales/businesses_controller.rb +66 -2
- data/app/controllers/educode_sales/customers_controller.rb +0 -3
- data/app/helpers/educode_sales/application_helper.rb +2 -2
- data/app/models/educode_sales/business.rb +8 -0
- data/app/models/educode_sales/business_relation_ship.rb +6 -0
- data/app/models/educode_sales/customer_follow.rb +1 -0
- data/app/models/educode_sales/filter.rb +15 -0
- data/app/models/educode_sales/follow_up.rb +2 -0
- data/app/models/educode_sales/role_area.rb +1 -1
- data/app/views/educode_sales/assessments/_setup.html.erb +92 -22
- data/app/views/educode_sales/assessments/edit.html.erb +3 -2
- data/app/views/educode_sales/assessments/index.html.erb +1 -2
- data/app/views/educode_sales/assessments/index.json.jbuilder +1 -1
- data/app/views/educode_sales/assessments/new.html.erb +2 -1
- data/app/views/educode_sales/assessments/progress.json.jbuilder +2 -198
- data/app/views/educode_sales/businesses/following_businesses.jbuilder +44 -0
- data/app/views/educode_sales/businesses/index.html.erb +189 -33
- data/app/views/educode_sales/businesses/index.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/show_follow.html.erb +1 -3
- data/app/views/educode_sales/money_plans/index.json.jbuilder +1 -1
- data/app/views/layouts/educode_sales/application.html.erb +1 -1
- data/config/routes.rb +4 -0
- data/db/migrate/20220420071909_create_educode_sales_business_relation_ships.rb +10 -0
- data/db/migrate/20220507020149_create_filter.rb +10 -0
- data/db/migrate/20220507091959_change_educode_sales_filter_column_length.rb +5 -0
- data/db/migrate/20220509073936_update_educode_sales_filters_filter_data.rb +9 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c7d5af9d8ef299b488469e4641429c5f7ef51411ee9749817d215920ab2eefe
|
4
|
+
data.tar.gz: 8ecea150b2f7ebf1c83b46873d79aad3561a803d45c3d96b28be8d96d6ac6d7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 670ed7ce415e605c9d93dd0eaf7f369beed38af7f5f576726181fb2232281e6eafcbbf9678fb97fb7b4263abfe9c857f19d80e81b55e23186d2e5fc0a08fe11a
|
7
|
+
data.tar.gz: cad4aa2546734ae5cc3807c0947c0d194449867d0086efffeb36248040dba564bd145f06cc96bbe87a2c094b9b62abb364a99d98a6149d0eb54ccf31019ec367
|
@@ -27,6 +27,20 @@ module EducodeSales
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
def filter
|
31
|
+
params[:check] = params[:check] == "true" ? 0:1
|
32
|
+
begin
|
33
|
+
filter = Filter.find_or_create_by!(staff_id: @current_admin.id, clazz: params[:type])
|
34
|
+
filter.extras["#{params[:name]}"] = params[:check]
|
35
|
+
filter.save!
|
36
|
+
render json: {success: true ,hidden: params[:check]}
|
37
|
+
rescue => e
|
38
|
+
render_failure("操作失败")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
|
30
44
|
rescue_from CanCan::AccessDenied do |exception|
|
31
45
|
redirect_to no_permission_path
|
32
46
|
end
|
@@ -2,6 +2,9 @@ require_dependency "educode_sales/application_controller"
|
|
2
2
|
|
3
3
|
module EducodeSales
|
4
4
|
class AssessmentsController < ApplicationController
|
5
|
+
before_action :progress_or_get_export_data, only: [:progress, :get_export_data]
|
6
|
+
|
7
|
+
|
5
8
|
def index
|
6
9
|
respond_to do |format|
|
7
10
|
format.html do
|
@@ -12,45 +15,47 @@ module EducodeSales
|
|
12
15
|
gon.export_menus << { title: '导出到Csv文件', event: 'export_csv' }
|
13
16
|
gon.export_menus << { title: '导出到Excel文件', event: 'export_excel' }
|
14
17
|
# index页面new弹出层下使用
|
15
|
-
gon.
|
18
|
+
gon.staff_ids = Staff.joins(:user).where(job_type: common.id).map do |d|
|
16
19
|
{value: d.id, name: d.user.real_name }
|
17
20
|
end
|
21
|
+
filter = Filter.find_or_create_by(staff_id: @current_admin.id, clazz: "assessments_setup")
|
22
|
+
if filter.extras.present?
|
23
|
+
gon.filter = filter.extras
|
24
|
+
else
|
25
|
+
gon.filter = {}
|
26
|
+
end
|
18
27
|
end
|
19
28
|
format.json do
|
20
|
-
@assessments = AssessmentsSetting.all
|
21
29
|
@year = params[:q].present? && params[:q][:assessment_year].present? ? params[:q][:assessment_year]:'2022'
|
22
30
|
@assessments_id = params[:q].present? && params[:q][:assessment_id].present? ? params[:q][:assessment_id]: '1'
|
23
|
-
@assessments =
|
31
|
+
@assessments = AssessmentsSetting.where("assessment_year >= ? and assessment_year <= ?", "#{@year}-01-01 00:00:00".to_date, "#{@year}-12-31 23:59:00".to_date)
|
24
32
|
@assessments = @assessments.where(assessment: @assessments_id).order("updated_at desc")
|
25
33
|
if params[:q].present? && params[:q][:staff_id].present?
|
26
34
|
@assessments = @assessments.where(staff_id: params[:q][:staff_id]).order("updated_at desc")
|
27
35
|
end
|
28
|
-
# 对数据进行分页 默认为page=1 limit=10
|
29
|
-
# @assessments = @assessments.order("id desc").page(params[:page]).per(params[:limit])
|
30
36
|
end
|
31
37
|
end
|
32
38
|
end
|
33
39
|
|
34
|
-
|
35
|
-
|
36
40
|
# 新增
|
37
41
|
def create
|
38
42
|
begin
|
39
|
-
|
40
|
-
|
41
|
-
|
43
|
+
assessment = AssessmentsSetting.new(params_create)
|
44
|
+
assessment.user_id = current_user.user_id
|
45
|
+
assessment.assessment_year = "#{params[:assessment_year]}-01-01"
|
46
|
+
AssessmentsSetting.transaction do
|
42
47
|
params[:staffs_ids].split(",").each do |d|
|
43
|
-
staff =
|
48
|
+
staff = assessment.dup
|
44
49
|
staff.staff_id = d.to_i
|
45
50
|
staff.save
|
46
51
|
end
|
52
|
+
end
|
47
53
|
render_success
|
48
54
|
rescue => e
|
49
55
|
render_failure '增加数据错误'
|
50
56
|
end
|
51
57
|
end
|
52
58
|
|
53
|
-
|
54
59
|
def new
|
55
60
|
render layout: false
|
56
61
|
end
|
@@ -73,166 +78,106 @@ module EducodeSales
|
|
73
78
|
render layout: false
|
74
79
|
end
|
75
80
|
|
76
|
-
#
|
81
|
+
# 根新
|
77
82
|
def update
|
78
83
|
@assessment = AssessmentsSetting.find_by(id: params[:id])
|
79
84
|
@assessment.update_attributes(params_update)
|
80
85
|
render_success
|
81
86
|
end
|
82
87
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
88
|
# 删除接口
|
88
89
|
def destroy
|
89
90
|
begin
|
90
91
|
assessment = AssessmentsSetting.find(params[:id])
|
91
92
|
assessment.destroy
|
92
93
|
render_success
|
93
|
-
rescue
|
94
|
-
render_failure '
|
94
|
+
rescue => e
|
95
|
+
render_failure '暂不能删除'
|
95
96
|
end
|
96
97
|
end
|
97
98
|
|
98
99
|
|
99
100
|
|
100
101
|
|
101
|
-
|
102
102
|
# 导出数据
|
103
103
|
def get_export_data
|
104
|
-
|
105
|
-
@staff_ids = Staff.joins(:user).where(job_type: common.id).pluck(:id)
|
106
|
-
@assessment_id = params[:assessment_id].present? ? params[:assessment_id]:'1'
|
107
|
-
@assessment_year = params[:assessment_year] ? params[:assessment_year] : '2022'
|
108
|
-
@assessments =AssessmentsSetting.where(assessment: @assessment_id).
|
109
|
-
where("assessment_year >= ? and assessment_year <= ?", "#{@assessment_year}-01-01 00:00:00".to_date, "#{@assessment_year}-12-31 23:59:00".to_date)
|
110
|
-
if params[:staff_id].present?
|
111
|
-
@assessments = @assessments.where(staff_id: params[:staff_id])
|
112
|
-
progress_main
|
113
|
-
else
|
114
|
-
# @assessments = @assessments.where(staff_id: @staff_ids) 注意 这样写有问题
|
115
|
-
@staff_ids.each do |s|
|
116
|
-
@assessments = @assessments.where(staff_id: s).order("updated_at desc")
|
117
|
-
progress_main
|
118
|
-
end
|
119
|
-
@assessments = AssessmentsSetting.where(assessment: @assessment_id).
|
120
|
-
where("assessment_year >= ? and assessment_year <= ?", "#{@assessment_year}-01-01 00:00:00".to_date, "#{@assessment_year}-12-31 23:59:00".to_date)
|
121
|
-
end
|
104
|
+
p 'get_export_data'
|
122
105
|
end
|
123
106
|
|
124
107
|
|
125
108
|
|
109
|
+
# 考核完成情况
|
110
|
+
def progress
|
111
|
+
p 'progress'
|
112
|
+
end
|
126
113
|
|
127
114
|
|
128
115
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
def progress
|
133
|
-
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
134
|
-
@staff_ids = Staff.joins(:user).where(job_type: common.id).pluck(:id)
|
116
|
+
def progress_or_get_export_data
|
117
|
+
# common = Common.find_by(clazz: 'staff_type', name: '销售')
|
118
|
+
# @staff_ids = Staff.joins(:user).where(job_type: common.id).pluck(:id)
|
135
119
|
@assessment_id = params[:q].present? && params[:q][:assessment_id].present? ? params[:q][:assessment_id]:'1'
|
136
|
-
@assessment_year = params[:q].present? && params[:q][:assessment_year] ? params[:q][:assessment_year] :
|
137
|
-
@assessments =AssessmentsSetting.where(assessment: @assessment_id)
|
138
|
-
|
139
|
-
|
140
|
-
|
120
|
+
@assessment_year = params[:q].present? && params[:q][:assessment_year].present? ? params[:q][:assessment_year] : Time.now.year
|
121
|
+
@assessments =AssessmentsSetting.where(assessment: @assessment_id)
|
122
|
+
.where("assessment_year >= ? and assessment_year <= ?", "#{@assessment_year}-01-01 00:00:00".to_date, "#{@assessment_year}-12-31 23:59:00".to_date)
|
123
|
+
.order("created_at desc")
|
124
|
+
if @assessments.present?
|
125
|
+
# 小优化
|
126
|
+
@staff_ids = params[:q].present? && params[:q][:staff_id].present? ? [params[:q][:staff_id].to_i]:@assessments.distinct.pluck(:staff_id)
|
141
127
|
progress_main
|
142
|
-
|
143
|
-
|
144
|
-
@staff_ids.each do |s|
|
145
|
-
@staff_id = s
|
146
|
-
@assessments = @assessments.where(staff_id: s)
|
147
|
-
progress_main
|
148
|
-
end
|
149
|
-
@assessments = AssessmentsSetting.where(assessment: @assessment_id)
|
150
|
-
.where("assessment_year >= ? and assessment_year <= ?","#{@assessment_year}-01-01 00:00:00".to_date, "#{@assessment_year}-12-31 23:59:59".to_date )
|
151
|
-
.order("updated_at desc")
|
128
|
+
# 注意一下
|
129
|
+
@assessments = @assessments.where(staff_id: @staff_ids)
|
152
130
|
end
|
153
131
|
end
|
154
132
|
|
155
133
|
|
156
|
-
|
157
|
-
|
158
134
|
# todo 主方法 统计用户的数据
|
159
135
|
def progress_main
|
160
|
-
if @assessments.present?
|
161
|
-
a = []
|
162
136
|
case @assessment_id
|
163
137
|
when '1' # 签单金额
|
164
138
|
busniness_jurisdiction
|
165
|
-
|
139
|
+
signed_count
|
166
140
|
when '2' # 回款金额
|
167
|
-
|
141
|
+
collection_count
|
168
142
|
when '3' # 拜访量
|
169
143
|
visits
|
170
|
-
|
171
|
-
@customers = @customers.where(id: school_ids)
|
172
|
-
busniness_visits(a) # 商机拜访量
|
173
|
-
customer_visits(a) # 客户拜访量
|
144
|
+
customer_and_busniness_visits
|
174
145
|
when '4' # 新增商机数
|
175
146
|
busniness_jurisdiction
|
176
|
-
busniness_add
|
147
|
+
busniness_add
|
177
148
|
end
|
178
|
-
update_assessments_progress(a)
|
179
|
-
else
|
180
|
-
end
|
181
149
|
end
|
182
150
|
|
183
151
|
|
184
152
|
|
185
|
-
|
186
153
|
# 签单金额
|
187
|
-
def
|
154
|
+
def signed_count
|
188
155
|
# 过滤x类商机
|
189
|
-
ids = Common.where(extras: %w[
|
190
|
-
@businesses = @businesses.joins(
|
156
|
+
ids = Common.where.not(extras: %w[x_class]).pluck(:id)
|
157
|
+
@businesses = @businesses.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id in (?) ",ids)
|
158
|
+
.where("educode_sales_follow_ups.signed_date >= ? and educode_sales_follow_ups.signed_date <= ?",
|
159
|
+
"#{@assessment_year}-01-01 00:00:00".to_date, "#{@assessment_year}-12-31 23:59:59".to_date)
|
191
160
|
# 得到最新阶段为已签单商机
|
192
161
|
s_stage_ids = Common.where(clazz: '商机阶段', name: ['已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
|
193
162
|
@businesses = @businesses.joins("
|
194
163
|
JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
|
195
164
|
").where("educode_sales_follow_ups.stage_id IN (?)",s_stage_ids)
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
case signed_date.to_s[0..6]
|
204
|
-
when "#{@assessment_year}-01"
|
205
|
-
a[0] = a[0].to_i + @follow_ups.first.actual_amount.to_i
|
206
|
-
when "#{@assessment_year}-02"
|
207
|
-
a[1] = a[1].to_i + @follow_ups.first.actual_amount.to_i
|
208
|
-
when "#{@assessment_year}-03"
|
209
|
-
a[2] = a[2].to_i + @follow_ups.first.actual_amount.to_i
|
210
|
-
when "#{@assessment_year}-04"
|
211
|
-
a[3] = a[3].to_i + @follow_ups.first.actual_amount.to_i
|
212
|
-
when "#{@assessment_year}-05"
|
213
|
-
a[4] = a[4].to_i + @follow_ups.first.actual_amount.to_i
|
214
|
-
when "#{@assessment_year}-06"
|
215
|
-
a[5] = a[5].to_i + @follow_ups.first.actual_amount.to_i
|
216
|
-
when "#{@assessment_year}-07"
|
217
|
-
a[6] = a[6].to_i + @follow_ups.first.actual_amount.to_i
|
218
|
-
when "#{@assessment_year}-08"
|
219
|
-
a[7] = a[7].to_i + @follow_ups.first.actual_amount.to_i
|
220
|
-
when "#{@assessment_year}-09"
|
221
|
-
a[8] = a[8].to_i + @follow_ups.first.actual_amount.to_i
|
222
|
-
when "#{@assessment_year}-10"
|
223
|
-
a[9] = a[9].to_i + @follow_ups.first.actual_amount.to_i
|
224
|
-
when "#{@assessment_year}-11"
|
225
|
-
a[10] = a[10].to_i + @follow_ups.first.actual_amount.to_i
|
226
|
-
when "#{@assessment_year}-12"
|
227
|
-
a[11] = a[11].to_i + @follow_ups.first.actual_amount.to_i
|
165
|
+
@staff_ids.each do |d|
|
166
|
+
# 注意
|
167
|
+
businesses = @businesses.where(staff_id: d)
|
168
|
+
data_count=[]
|
169
|
+
data_list = FollowUp.joins("JOIN educode_sales_businesses ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id")
|
170
|
+
.where("educode_sales_businesses.id in (?)",businesses.pluck(:id)).map do |m|
|
171
|
+
{value: m.actual_amount.to_i, date:m.signed_date.to_s[5..6].to_i}
|
228
172
|
end
|
173
|
+
count_data(data_list,data_count) # 统计数据
|
174
|
+
update_assessments_progress(data_count,d) # 批量更新assessment数据 事物 一个commit
|
229
175
|
end
|
230
|
-
}
|
231
176
|
end
|
232
177
|
|
233
178
|
|
234
|
-
# 回款金额
|
235
|
-
def
|
179
|
+
# 回款金额 权限
|
180
|
+
def collection_count
|
236
181
|
follow_up_ids = Business.pluck(:last_follow_up_id)
|
237
182
|
if @current_admin.is_admin?
|
238
183
|
@money_plans = MoneyPlan.joins(:follow_up).where(follow_up_id: follow_up_ids)
|
@@ -247,43 +192,25 @@ module EducodeSales
|
|
247
192
|
b_ids = Business.where(school_id: school_ids).pluck(:last_follow_up_id)
|
248
193
|
ids = a_ids + b_ids
|
249
194
|
@money_plans = MoneyPlan.joins(:follow_up).where(follow_up_id: ids)
|
250
|
-
|
195
|
+
else
|
251
196
|
@money_plans = MoneyPlan.joins(:follow_up).where(follow_up_id: follow_up_ids)
|
252
197
|
end
|
253
198
|
end
|
254
|
-
# todo 1 :实际回款 0:计划回款 where(clazz: 1 OR 实际回款 )
|
255
|
-
@money_plans = @money_plans.where(clazz: 1).where.not(date_at: nil
|
256
|
-
@
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
when "#{@assessment_year}-02"
|
261
|
-
a[1] = a[1].to_i + d.amount.to_i
|
262
|
-
when "#{@assessment_year}-03"
|
263
|
-
a[2] = a[2].to_i + d.amount.to_i
|
264
|
-
when "#{@assessment_year}-04"
|
265
|
-
a[3] = a[3].to_i + d.amount.to_i
|
266
|
-
when "#{@assessment_year}-05"
|
267
|
-
a[4] = a[4].to_i + d.amount.to_i
|
268
|
-
when "#{@assessment_year}-06"
|
269
|
-
a[5] = a[5].to_i + d.amount.to_i
|
270
|
-
when "#{@assessment_year}-07"
|
271
|
-
a[6] = a[6].to_i + d.amount.to_i
|
272
|
-
when "#{@assessment_year}-08"
|
273
|
-
a[7] = a[7].to_i + d.amount.to_i
|
274
|
-
when "#{@assessment_year}-09"
|
275
|
-
a[8] = a[8].to_i + d.amount.to_i
|
276
|
-
when "#{@assessment_year}-10"
|
277
|
-
a[9] = a[9].to_i + d.amount.to_i
|
278
|
-
when "#{@assessment_year}-11"
|
279
|
-
a[10] = a[10].to_i + d.amount.to_i
|
280
|
-
when "#{@assessment_year}-12"
|
281
|
-
a[11] = a[11].to_i + d.amount.to_i
|
199
|
+
# todo 1 :实际回款 0:计划回款 where(clazz: 1 OR 实际回款 )
|
200
|
+
@money_plans = @money_plans.where(clazz: 1).where.not(date_at: nil)
|
201
|
+
@staff_ids.each do |d|
|
202
|
+
data_count = []
|
203
|
+
data_list = @money_plans.where(staff_id: d).map do |m|
|
204
|
+
{date:m.date_at.to_s[5..6].to_i, value:m.amount.to_i}
|
282
205
|
end
|
206
|
+
count_data(data_list,data_count)
|
207
|
+
update_assessments_progress(data_count, d)
|
283
208
|
end
|
284
209
|
end
|
285
210
|
|
286
|
-
|
211
|
+
|
212
|
+
|
213
|
+
# 权限获取拜访量
|
287
214
|
def visits
|
288
215
|
if @current_admin.is_admin?
|
289
216
|
@customers = School.all
|
@@ -308,120 +235,44 @@ module EducodeSales
|
|
308
235
|
@customers = @customers.where(id: ids)
|
309
236
|
end
|
310
237
|
|
311
|
-
# 客户拜访量
|
312
|
-
def customer_visits(a)
|
313
|
-
@customers.each do |d|
|
314
|
-
customer_follows = EducodeSales::CustomerFollow.where(school_id: d.id)
|
315
|
-
customer_follows.each do |f|
|
316
|
-
case f.created_at.to_time.to_s[0..6]
|
317
|
-
when "#{@assessment_year}-01"
|
318
|
-
a[0] = a[0].to_i + 1
|
319
|
-
when "#{@assessment_year}-02"
|
320
|
-
a[1] = a[1].to_i + 1
|
321
|
-
when "#{@assessment_year}-03"
|
322
|
-
a[2] = a[2].to_i + 1
|
323
|
-
when "#{@assessment_year}-04"
|
324
|
-
a[3] = a[3].to_i + 1
|
325
|
-
when "#{@assessment_year}-05"
|
326
|
-
a[4] = a[4].to_i + 1
|
327
|
-
when "#{@assessment_year}-06"
|
328
|
-
a[5] = a[5].to_i + 1
|
329
|
-
when "#{@assessment_year}-07"
|
330
|
-
a[6] = a[6].to_i + 1
|
331
|
-
when "#{@assessment_year}-08"
|
332
|
-
a[7] = a[7].to_i + 1
|
333
|
-
when "#{@assessment_year}-09"
|
334
|
-
a[8] = a[8].to_i + 1
|
335
|
-
when "#{@assessment_year}-10"
|
336
|
-
a[9] = a[9].to_i + 1
|
337
|
-
when "#{@assessment_year}-11"
|
338
|
-
a[10] = a[10].to_i + 1
|
339
|
-
when "#{@assessment_year}-12"
|
340
|
-
a[11] = a[11].to_i + 1
|
341
|
-
end
|
342
|
-
end
|
343
|
-
end
|
344
|
-
end
|
345
|
-
|
346
238
|
|
347
|
-
#
|
348
|
-
def
|
349
|
-
@
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
a[1] = a[1].to_i + 1
|
358
|
-
when "#{@assessment_year}-03"
|
359
|
-
a[2] = a[2].to_i + 1
|
360
|
-
when "#{@assessment_year}-04"
|
361
|
-
a[3] = a[3].to_i + 1
|
362
|
-
when "#{@assessment_year}-05"
|
363
|
-
a[4] = a[4].to_i + 1
|
364
|
-
when "#{@assessment_year}-06"
|
365
|
-
a[5] = a[5].to_i + 1
|
366
|
-
when "#{@assessment_year}-07"
|
367
|
-
a[6] = a[6].to_i + 1
|
368
|
-
when "#{@assessment_year}-08"
|
369
|
-
a[7] = a[7].to_i + 1
|
370
|
-
when "#{@assessment_year}-09"
|
371
|
-
a[8] = a[8].to_i + 1
|
372
|
-
when "#{@assessment_year}-10"
|
373
|
-
a[9] = a[9].to_i + 1
|
374
|
-
when "#{@assessment_year}-11"
|
375
|
-
a[10] = a[10].to_i + 1
|
376
|
-
when "#{@assessment_year}-12"
|
377
|
-
a[11] = a[11].to_i + 1
|
378
|
-
end
|
239
|
+
# 拜访量
|
240
|
+
def customer_and_busniness_visits
|
241
|
+
@staff_ids.each do |m|
|
242
|
+
customers = @customers.where(id: EducodeSales::CustomerExtension.where(customer_staff_id: m).pluck(:school_id))
|
243
|
+
data_list = []
|
244
|
+
data_count = []
|
245
|
+
CustomerFollow.joins(:school).where(school_id: customers.pluck(:id))
|
246
|
+
.where("Educode_Sales_customer_follows.created_at >= ? and Educode_Sales_customer_follows.created_at <= ?","#{@assessment_year}-01-01 ","#{@assessment_year}-12-31 23:59:59" )
|
247
|
+
.each do |d|
|
248
|
+
data_list << {value: 1, date: d.created_at.to_s[5..6].to_i}
|
379
249
|
end
|
250
|
+
FollowUp.joins(:business).where("Educode_Sales_businesses.id in (?)",EducodeSales::Business.where(school_id: customers.pluck(:id)).pluck(:id))
|
251
|
+
.where("Educode_Sales_follow_ups.created_at >= ? and Educode_Sales_follow_ups.created_at <= ?","#{@assessment_year}-01-01 00:00:00", "#{@assessment_year}-12-31 23:59:59").each do |d|
|
252
|
+
data_list << {date: d.created_at.to_s[5..6].to_i, value: 1}
|
253
|
+
end
|
254
|
+
count_data(data_list,data_count)
|
255
|
+
assessment = @assessments.where(staff_id: m)
|
256
|
+
update_assessments_progress(data_count, assessment)
|
380
257
|
end
|
381
|
-
|
382
|
-
# busniness_jurisdiction
|
383
|
-
# ids = Common.where(extras: %w[a_class b_class c_class d_claass e_class o_class x_class]).pluck(:id)
|
384
|
-
# @businesses = @businesses.joins("JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id").where("educode_sales_follow_ups.clazz_id in (?) ",ids)
|
385
|
-
# @businesses = @businesses.where("educode_sales_businesses.follow_ups_count > ?",'0').where(staff_id: @staff_id)
|
258
|
+
end
|
386
259
|
|
387
260
|
|
388
261
|
|
389
262
|
|
390
263
|
# 新增商机数
|
391
|
-
def busniness_add
|
392
|
-
|
393
|
-
|
394
|
-
# 2.销售人员新增的商机数量,过滤E、O、X类商机,包含:ABCD类商机; 上面有连接follow_up表
|
395
|
-
ids = Common.where(extras: %w[a_class b_class c_class d_class]).pluck(:id) # 数组[1,5,2,15]
|
264
|
+
def busniness_add
|
265
|
+
@businesses = @businesses.where("educode_sales_businesses.created_at >= ? and educode_sales_businesses.created_at <= ?", "#{@assessment_year}-01-01 00:00:00","#{@assessment_year}-12-31 23:59:59")
|
266
|
+
ids = Common.where(extras: %w[a_class b_class c_class d_class]).pluck(:id)
|
396
267
|
@businesses = @businesses.joins("JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id").where("educode_sales_follow_ups.clazz_id in (?) ",ids)
|
397
|
-
@
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
when "#{@assessment_year}-02"
|
403
|
-
a[1] = a[1].to_i + 1
|
404
|
-
when "#{@assessment_year}-03"
|
405
|
-
a[2] = a[2].to_i + 1
|
406
|
-
when "#{@assessment_year}-04"
|
407
|
-
a[3] = a[3].to_i + 1
|
408
|
-
when "#{@assessment_year}-05"
|
409
|
-
a[4] = a[4].to_i + 1
|
410
|
-
when "#{@assessment_year}-06"
|
411
|
-
a[5] = a[5].to_i + 1
|
412
|
-
when "#{@assessment_year}-07"
|
413
|
-
a[6] = a[6].to_i + 1
|
414
|
-
when "#{@assessment_year}-08"
|
415
|
-
a[7] = a[7].to_i + 1
|
416
|
-
when "#{@assessment_year}-09"
|
417
|
-
a[8] = a[8].to_i + 1
|
418
|
-
when "#{@assessment_year}-10"
|
419
|
-
a[9] = a[9].to_i + 1
|
420
|
-
when "#{@assessment_year}-11"
|
421
|
-
a[10] = a[10].to_i + 1
|
422
|
-
when "#{@assessment_year}-12"
|
423
|
-
a[11] = a[11].to_i + 1
|
268
|
+
@staff_ids.each do |d|
|
269
|
+
businesses = @businesses.where(staff_id: d)
|
270
|
+
data_count = []
|
271
|
+
data_list = businesses.map do |m|
|
272
|
+
{date: m.created_at.to_s[5..6].to_i, value: 1}
|
424
273
|
end
|
274
|
+
count_data(data_list,data_count) # 统计数据
|
275
|
+
update_assessments_progress(data_count, d) # 批量更新assessment数据 事物 一个commit
|
425
276
|
end
|
426
277
|
end
|
427
278
|
|
@@ -430,7 +281,7 @@ module EducodeSales
|
|
430
281
|
def busniness_jurisdiction
|
431
282
|
# busniness 权限
|
432
283
|
if @current_admin.is_admin?
|
433
|
-
@businesses = Business
|
284
|
+
@businesses = Business.all
|
434
285
|
else
|
435
286
|
level = @current_admin.role.role_areas.find_by(clazz: '商机管理').level
|
436
287
|
case level
|
@@ -443,29 +294,45 @@ module EducodeSales
|
|
443
294
|
business_ids = Business.joins(last_follow_up: :assign_follow_ups).where("educode_sales_assign_follow_ups.staff_id = ?", @current_admin.id).pluck(:id)
|
444
295
|
@businesses = Business.joins("JOIN departments ON educode_sales_businesses.department_id = departments.id").where("departments.school_id in (?) OR educode_sales_businesses.staff_id = #{@current_admin.id} OR educode_sales_businesses.id in (?)", school_ids, business_ids)
|
445
296
|
else
|
446
|
-
@businesses = Business
|
297
|
+
@businesses = Business.all
|
447
298
|
end
|
448
299
|
end
|
449
300
|
end
|
450
301
|
|
302
|
+
|
451
303
|
# 更新assessments_settings表中数据
|
452
|
-
def update_assessments_progress(
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
304
|
+
def update_assessments_progress(data_count,staff_id)
|
305
|
+
data_count[12] = data_count[0].to_i + data_count[1].to_i + data_count[2].to_i
|
306
|
+
data_count[13] = data_count[3].to_i + data_count[4].to_i + data_count[5].to_i
|
307
|
+
data_count[14] = data_count[6].to_i + data_count[7].to_i + data_count[8].to_i
|
308
|
+
data_count[15] = data_count[9].to_i + data_count[10].to_i + data_count[11].to_i
|
309
|
+
data_count[16] = data_count[12].to_i + data_count[13].to_i + data_count[14].to_i + data_count[15].to_i
|
310
|
+
# 开启事物 处理 批量修改数据
|
311
|
+
assessments = @assessments.where(staff_id: staff_id)
|
312
|
+
assessments.update(annual_progress: data_count[16], first_quarter_progress: data_count[12], second_quarter_progress: data_count[13], third_quarter_progress: data_count[14], fourth_quarter_progress: data_count[15],
|
313
|
+
january_progress: data_count[0], february_progress: data_count[1], march_progress: data_count[2], april_progress: data_count[3], may_progress: data_count[4], june_progress: data_count[5],
|
314
|
+
july_progress: data_count[6], august_progress: data_count[7], september_progress: data_count[8], october_progress: data_count[9], november_progress: data_count[10], december_progress: data_count[11])
|
315
|
+
|
316
|
+
end
|
317
|
+
|
318
|
+
# 将统计到的数据转入a中
|
319
|
+
def count_data(data_list,data_count)
|
320
|
+
data_list.each do |d|
|
321
|
+
if data_count[d[:date]-1].present?
|
322
|
+
data_count[d[:date]-1] = data_count[d[:date]-1] + d[:value]
|
323
|
+
else
|
324
|
+
data_count[d[:date]-1] = d[:value]
|
462
325
|
end
|
463
|
-
|
326
|
+
end
|
464
327
|
end
|
465
328
|
|
466
329
|
|
467
330
|
|
468
331
|
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
|
469
336
|
private
|
470
337
|
def params_create
|
471
338
|
params.permit( :annual, :assessment,:assessment_year, :first_quarter, :second_quarter, :third_quarter, :fourth_quarter,
|