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