educode_sales 1.10.37 → 1.10.46
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/application_controller.rb +13 -0
- data/app/controllers/educode_sales/contracts_controller.rb +33 -3
- data/app/controllers/educode_sales/ideas_controller.rb +17 -7
- data/app/controllers/educode_sales/money_plan_records_controller.rb +14 -7
- data/app/controllers/educode_sales/money_plans_controller.rb +5 -1
- data/app/controllers/educode_sales/plans_controller.rb +14 -0
- data/app/controllers/educode_sales/sale_trends_controller.rb +82 -9
- data/app/controllers/educode_sales/teachers_controller.rb +7 -2
- data/app/helpers/educode_sales/sale_trends_helper.rb +410 -0
- data/app/views/educode_sales/businesses/index.html.erb +2 -2
- data/app/views/educode_sales/contracts/_list.html.erb +26 -2
- data/app/views/educode_sales/contracts/index.json.jbuilder +3 -1
- data/app/views/educode_sales/ideas/_index.html.erb +23 -2
- data/app/views/educode_sales/ideas/index.json.jbuilder +1 -1
- data/app/views/educode_sales/ideas/new.html.erb +11 -6
- data/app/views/educode_sales/money_plan_records/_index.html.erb +20 -7
- data/app/views/educode_sales/money_plan_records/index.json.jbuilder +3 -1
- data/app/views/educode_sales/money_plans/_index.html.erb +56 -42
- data/app/views/educode_sales/money_plans/index.json.jbuilder +3 -1
- data/app/views/educode_sales/plans/_target_track.html.erb +178 -0
- data/app/views/educode_sales/plans/index.html.erb +5 -0
- data/app/views/educode_sales/plans/target_track.js.erb +1 -0
- data/app/views/educode_sales/sale_trends/_return_money_forecast.html.erb +176 -0
- data/app/views/educode_sales/sale_trends/return_money_forecast.js.erb +1 -0
- data/app/views/educode_sales/sale_trends/trends.html.erb +6 -0
- data/app/views/educode_sales/teachers/_index.html.erb +21 -9
- data/config/routes.rb +2 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +10 -7
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee0e4fc5519c5e1dc171f8d0402f6f3e681e9b89636a7f424a642aaf88a23ce9
|
4
|
+
data.tar.gz: c060d33dfc08508f868182e5c3b8f8d780a20c03d8c300631a7a7c39316bfccc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d82966240ed50554d5525c93254d1f282fe9a604e350f9ae81309726187f43d419e9849b1047f6b996bd6bebd91c12d57b0ea1c9691e5913eb41a29da0df206
|
7
|
+
data.tar.gz: 433b7c1181791a6a47a5d35ff5df90363607e9d8c1592056d9fbf546b373c42a29d0bc67d92bdfc67b7f6f504970ff61edf55a2b5b992e3d993dc2fe3861cc14
|
@@ -41,6 +41,19 @@ module EducodeSales
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
+
def paginate(relation)
|
45
|
+
limit = params[:limit] || params[:per_page]
|
46
|
+
limit = (limit.to_i.zero? || limit.to_i > 100) ? 20 : limit.to_i
|
47
|
+
page = params[:page].to_i.zero? ? 1 : params[:page].to_i
|
48
|
+
offset = (page - 1) * limit
|
49
|
+
|
50
|
+
if relation.is_a?(Array)
|
51
|
+
relation[offset, limit]
|
52
|
+
else
|
53
|
+
relation.limit(limit).offset(offset)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
44
57
|
|
45
58
|
|
46
59
|
rescue_from CanCan::AccessDenied do |exception|
|
@@ -206,8 +206,8 @@ module EducodeSales
|
|
206
206
|
@businesses = @businesses.order("educode_sales_businesses.created_at desc")
|
207
207
|
end
|
208
208
|
|
209
|
-
|
210
|
-
|
209
|
+
if params[:page].present?
|
210
|
+
@businesses = @businesses.select("
|
211
211
|
distinct
|
212
212
|
educode_sales_businesses.*,
|
213
213
|
last_follow.invitation_at,
|
@@ -237,8 +237,38 @@ module EducodeSales
|
|
237
237
|
GROUP BY educode_sales_follow_ups.business_id
|
238
238
|
) AS total_follow_ups ON educode_sales_businesses.id = total_follow_ups.business_id
|
239
239
|
").includes(:users, last_follow_up: [:clazz, :assign_follow_ups]).page(params[:page]).per(params[:limit])
|
240
|
+
end
|
240
241
|
|
241
|
-
|
242
|
+
@businesses = @businesses.select("
|
243
|
+
distinct
|
244
|
+
educode_sales_businesses.*,
|
245
|
+
last_follow.invitation_at,
|
246
|
+
last_follow.budget_amount,
|
247
|
+
last_follow.o_business_deployment,
|
248
|
+
last_follow.service_time_long,
|
249
|
+
last_follow.service_end_time,
|
250
|
+
last_follow.service_start_time,
|
251
|
+
last_follow.reception_at,
|
252
|
+
last_follow.bidded_date,
|
253
|
+
last_follow.signed_date,
|
254
|
+
last_follow.year,
|
255
|
+
last_follow.created_at as latest_time,
|
256
|
+
last_follow.actual_amount,
|
257
|
+
last_follow.divide_rate,
|
258
|
+
last_follow.divide_amount,
|
259
|
+
(last_follow.total_amount - last_follow.actual_amount) as divide_money,
|
260
|
+
(last_follow.actual_amount - educode_sales_businesses.return_money) as wait_return_money,
|
261
|
+
last_follow.total_amount,
|
262
|
+
total_follow_ups.follow_ups_counts
|
263
|
+
").joins("
|
264
|
+
LEFT JOIN educode_sales_follow_ups AS last_follow ON educode_sales_businesses.last_follow_up_id = last_follow.id AND last_follow.deleted_at IS NULL
|
265
|
+
LEFT JOIN (
|
266
|
+
SELECT COUNT(*) AS follow_ups_counts, educode_sales_follow_ups.business_id
|
267
|
+
FROM educode_sales_follow_ups
|
268
|
+
WHERE educode_sales_follow_ups.deleted_at IS NULL
|
269
|
+
GROUP BY educode_sales_follow_ups.business_id
|
270
|
+
) AS total_follow_ups ON educode_sales_businesses.id = total_follow_ups.business_id
|
271
|
+
").includes(:users, last_follow_up: [:clazz, :assign_follow_ups])
|
242
272
|
end
|
243
273
|
end
|
244
274
|
end
|
@@ -44,6 +44,9 @@ module EducodeSales
|
|
44
44
|
@sale_staff_arr = EducodeSales::Staff.joins(:user).where(id: sale_staff_ids).pluck("concat(users.lastname,users.firstname)", :id)
|
45
45
|
filter = Filter.find_or_create_by(staff_id: @current_admin.id, clazz: "ideas")
|
46
46
|
gon.filter = filter.extras || {}
|
47
|
+
|
48
|
+
#协助人
|
49
|
+
@assist_staffs = Staff.where.not(role_id: 11).includes(:user).map{ |d| {name: d.user.real_name, value: d.id}}
|
47
50
|
end
|
48
51
|
format.json do
|
49
52
|
@ideas = params[:is_deleted].to_s == "true" ? Idea.deleted : Idea.not_deleted
|
@@ -54,14 +57,14 @@ module EducodeSales
|
|
54
57
|
level = @current_admin.role.role_areas.find_by(clazz: '方案管理').try(:level)
|
55
58
|
case level
|
56
59
|
when '自己'
|
57
|
-
idea_ids = @ideas.select { |d| Array(d.other_staff_ids).include?(@current_admin.id) || d.sale_staff_id == @current_admin.id || Array(d.assist_staff_ids).include?(@current_admin.id) || d.staff_id == @current_admin.id }.map { |d| d.id }
|
60
|
+
idea_ids = @ideas.select { |d| Array(d.other_staff_ids).include?(@current_admin.id.to_s) || d.sale_staff_id == @current_admin.id || Array(d.assist_staff_ids).include?(@current_admin.id.to_s) || d.staff_id == @current_admin.id }.map { |d| d.id }
|
58
61
|
@ideas = @ideas.where("educode_sales_ideas.creator_id = ? OR educode_sales_ideas.id in (?)", @current_admin.id, idea_ids)
|
59
62
|
when '区域'
|
60
63
|
# 查看区域商机,需要排除掉其它人员手上的监管学校
|
61
64
|
other_staff_school_id = EducodeSales::StaffSchool.where.not(staff_id: @current_admin.id).where("school_id IN (SELECT school_id FROM educode_sales_staff_schools WHERE staff_id = #{@current_admin.id}) IS NOT TRUE").distinct.pluck :school_id
|
62
65
|
|
63
66
|
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id) + StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id) - other_staff_school_id
|
64
|
-
idea_ids = @ideas.select { |d| Array(d.other_staff_ids).include?(@current_admin.id) || d.sale_staff_id == @current_admin.id || Array(d.assist_staff_ids).include?(@current_admin.id) || d.staff_id == @current_admin.id }.map { |d| d.id }
|
67
|
+
idea_ids = @ideas.select { |d| Array(d.other_staff_ids).include?(@current_admin.id.to_s) || d.sale_staff_id == @current_admin.id || Array(d.assist_staff_ids).include?(@current_admin.id.to_s) || d.staff_id == @current_admin.id }.map { |d| d.id }
|
65
68
|
@ideas = @ideas.left_joins(department: :school).where("schools.id in (?) OR educode_sales_ideas.creator_id = ? OR educode_sales_ideas.id in (?)", school_ids, @current_admin.id, idea_ids)
|
66
69
|
else
|
67
70
|
@ideas = @ideas
|
@@ -74,7 +77,7 @@ module EducodeSales
|
|
74
77
|
@ideas = @ideas.where("educode_sales_ideas.created_at >= ? AND educode_sales_ideas.created_at <= ?", date[0] + " 00:00:00", date[1] + " 23:59:59")
|
75
78
|
end
|
76
79
|
if params[:q].present? && params[:q][:name].present?
|
77
|
-
@ideas = @ideas.where("educode_sales_ideas.name like ?", "%#{params[:q][:name]}%")
|
80
|
+
@ideas = @ideas.joins(:business).where("educode_sales_ideas.name like ? or educode_sales_businesses.name like ?", "%#{params[:q][:name]}%", "%#{params[:q][:name]}%")
|
78
81
|
end
|
79
82
|
if params[:q].present? && params[:q][:school].present?
|
80
83
|
@ideas = @ideas.left_joins(:school).where("schools.name like ?", "%#{params[:q][:school]}%")
|
@@ -109,7 +112,12 @@ module EducodeSales
|
|
109
112
|
@ideas = @ideas.where(level: params[:q][:level])
|
110
113
|
end
|
111
114
|
|
112
|
-
|
115
|
+
if params[:q].present? && params[:q][:assist_staffs].present?
|
116
|
+
@ideas = @ideas.select{|d| d&.assist_staff_ids.include?(params[:q][:assist_staffs])}
|
117
|
+
end
|
118
|
+
@ideas_count = @ideas.count
|
119
|
+
|
120
|
+
@ideas = paginate @ideas
|
113
121
|
end
|
114
122
|
end
|
115
123
|
end
|
@@ -141,10 +149,11 @@ module EducodeSales
|
|
141
149
|
other_staff_ids = Array(params[:other_staff_ids].to_s.split(","))
|
142
150
|
if params[:business_id].present?
|
143
151
|
idea.business_id = params[:business_id]
|
152
|
+
idea.school_id = idea.business&.department&.school_id
|
144
153
|
elsif params[:school_id].present?
|
145
154
|
idea.name = params[:project_name]
|
146
155
|
end
|
147
|
-
if
|
156
|
+
if idea.school_id.blank?
|
148
157
|
idea.school_id = params[:school_id]
|
149
158
|
end
|
150
159
|
idea.attachment_ids = attachment_ids
|
@@ -180,10 +189,11 @@ module EducodeSales
|
|
180
189
|
# @idea.other_staff_ids = other_staff_ids
|
181
190
|
if params[:business_id].present?
|
182
191
|
@idea.business_id = params[:business_id]
|
192
|
+
@idea.school_id = @idea.business&.department&.school_id
|
183
193
|
elsif params[:school_id].present?
|
184
194
|
@idea.name = params[:project_name]
|
185
195
|
end
|
186
|
-
if
|
196
|
+
if @idea.school_id.blank?
|
187
197
|
@idea.school_id = params[:school_id]
|
188
198
|
end
|
189
199
|
check_changes
|
@@ -357,7 +367,7 @@ module EducodeSales
|
|
357
367
|
params.permit(:name, :level, :staff_id,
|
358
368
|
:status, :types, :model, :hardware, :project,
|
359
369
|
:money, :end_time, :content, :department_id,
|
360
|
-
:manager_name, :manager_phone, :school_name, :department_name, :attachment_id, :idea_type)
|
370
|
+
:manager_name, :manager_phone, :school_name, :department_name, :attachment_id, :idea_type, :school_id, :business_id)
|
361
371
|
end
|
362
372
|
|
363
373
|
def find_idea
|
@@ -18,6 +18,7 @@ module EducodeSales
|
|
18
18
|
format.json do
|
19
19
|
@money_plan_records = MoneyPlanRecord.left_joins(:money_plan_claims).group("educode_sales_money_plan_records.id").select("educode_sales_money_plan_records.*, COUNT(educode_sales_money_plan_claims.id) AS claim_num")
|
20
20
|
if @current_admin.is_admin?
|
21
|
+
@money_plan_records = @money_plan_records
|
21
22
|
else
|
22
23
|
level = @current_admin.role.role_areas.find_by(clazz: '回款管理').level
|
23
24
|
case level
|
@@ -79,7 +80,11 @@ module EducodeSales
|
|
79
80
|
else
|
80
81
|
@money_plan_records = @money_plan_records.order(created_at: :desc)
|
81
82
|
end
|
82
|
-
|
83
|
+
|
84
|
+
if params[:page].present?
|
85
|
+
@money_plan_records = @money_plan_records.page(params[:page]).per(params[:limit])
|
86
|
+
end
|
87
|
+
@money_plan_records = @money_plan_records
|
83
88
|
end
|
84
89
|
end
|
85
90
|
end
|
@@ -195,12 +200,14 @@ module EducodeSales
|
|
195
200
|
key_person.save
|
196
201
|
end
|
197
202
|
|
198
|
-
last_follow_up.money_plans.each do |d|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
end
|
203
|
+
# last_follow_up.money_plans.each do |d|
|
204
|
+
# money = d.dup
|
205
|
+
# money.staff = @current_admin
|
206
|
+
# money.follow_up_id = follow_up.id
|
207
|
+
# money.save
|
208
|
+
# end
|
209
|
+
# 上次的回款计划的跟进也要同步到最新的跟进id,不然回款计划列表会找不到
|
210
|
+
EducodeSales::MoneyPlan.where(business_id: d.id, id: params[:money_plan_ids]).update_all(follow_up_id: follow_up.id)
|
204
211
|
|
205
212
|
# 合同里签到日期全同步到最新跟进
|
206
213
|
last_follow_up.contract_date_lists.update_all(follow_up_id: follow_up.id)
|
@@ -59,7 +59,11 @@ module EducodeSales
|
|
59
59
|
else
|
60
60
|
@money_plans = @money_plans.order(date_at: :desc)
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
|
+
if params[:page].present?
|
64
|
+
@money_plans = @money_plans.page(params[:page]).per(params[:limit])
|
65
|
+
end
|
66
|
+
@money_plans = @money_plans
|
63
67
|
end
|
64
68
|
end
|
65
69
|
end
|
@@ -510,6 +510,20 @@ module EducodeSales
|
|
510
510
|
@months = (1..12).map { |d| d }
|
511
511
|
end
|
512
512
|
|
513
|
+
|
514
|
+
def target_track
|
515
|
+
respond_to do |format|
|
516
|
+
format.html do
|
517
|
+
|
518
|
+
end
|
519
|
+
format.js do
|
520
|
+
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
521
|
+
@staffs = Staff.joins(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id]}
|
522
|
+
gon.school_tags = SchoolTag.where(for_missions: true).map { |d| {value: d.id, name: d.name } }
|
523
|
+
end
|
524
|
+
end
|
525
|
+
end
|
526
|
+
|
513
527
|
private
|
514
528
|
|
515
529
|
def plan_params
|
@@ -418,6 +418,15 @@ module EducodeSales
|
|
418
418
|
end
|
419
419
|
end
|
420
420
|
|
421
|
+
#回款预测图
|
422
|
+
def return_money_forecast
|
423
|
+
respond_to do |format|
|
424
|
+
format.js do
|
425
|
+
return_forecast_by_money
|
426
|
+
end
|
427
|
+
end
|
428
|
+
end
|
429
|
+
|
421
430
|
def user_stat
|
422
431
|
respond_to do |format|
|
423
432
|
format.html do
|
@@ -537,7 +546,7 @@ module EducodeSales
|
|
537
546
|
data_1_hash = {}
|
538
547
|
data_1_total_hash = {}
|
539
548
|
data_1.each do |d|
|
540
|
-
data_1_hash[d.month] = d.count_type.round(2)
|
549
|
+
data_1_hash[d.month] = d.count_type ? d.count_type.round(2) : 0
|
541
550
|
end
|
542
551
|
|
543
552
|
last_month = 0
|
@@ -577,10 +586,14 @@ module EducodeSales
|
|
577
586
|
last_month = month.split("-")[0]
|
578
587
|
end
|
579
588
|
|
580
|
-
data_3 =
|
581
|
-
|
582
|
-
|
583
|
-
|
589
|
+
data_3 = EducodeSales::MoneyPlanRecord.from("(
|
590
|
+
SELECT distinct(educode_sales_money_plan_records.id), educode_sales_money_plan_records.amount, date_at
|
591
|
+
FROM educode_sales_money_plan_records
|
592
|
+
JOIN educode_sales_money_plan_claims ON educode_sales_money_plan_claims.money_plan_record_id = educode_sales_money_plan_records.id
|
593
|
+
GROUP BY educode_sales_money_plan_records.id
|
594
|
+
) AS educode_sales_money_plan_records
|
595
|
+
").
|
596
|
+
where("educode_sales_money_plan_records.date_at >= ? AND educode_sales_money_plan_records.date_at <= ? ", begin_at, end_at).
|
584
597
|
select("SUM(amount) AS count_type, DATE_FORMAT(date_at, '%Y-%m') AS month").
|
585
598
|
group("DATE_FORMAT(date_at, '%Y-%m')").
|
586
599
|
order("DATE_FORMAT(date_at, '%Y-%m')")
|
@@ -692,10 +705,14 @@ module EducodeSales
|
|
692
705
|
last_month = month.split("-")[0]
|
693
706
|
end
|
694
707
|
|
695
|
-
data_3 = EducodeSales::
|
696
|
-
|
697
|
-
|
698
|
-
|
708
|
+
data_3 = EducodeSales::MoneyPlanRecord.from("(
|
709
|
+
SELECT distinct(educode_sales_money_plan_records.id), educode_sales_money_plan_records.amount, date_at
|
710
|
+
FROM educode_sales_money_plan_records
|
711
|
+
JOIN educode_sales_money_plan_claims ON educode_sales_money_plan_claims.money_plan_record_id = educode_sales_money_plan_records.id
|
712
|
+
GROUP BY educode_sales_money_plan_records.id
|
713
|
+
) AS educode_sales_money_plan_records
|
714
|
+
").
|
715
|
+
where("educode_sales_money_plan_records.date_at >= ? AND educode_sales_money_plan_records.date_at <= ? ", begin_at, end_at).
|
699
716
|
select("SUM(amount) AS count_type, DATE_FORMAT(date_at, '%Y') AS year").
|
700
717
|
group("DATE_FORMAT(date_at, '%Y')").
|
701
718
|
order("DATE_FORMAT(date_at, '%Y')")
|
@@ -919,5 +936,61 @@ module EducodeSales
|
|
919
936
|
|
920
937
|
visit_analysis_charts(visit_count_year, visit_count_season, visit_count_month, visit_count_week, visit_type, title_names)
|
921
938
|
end
|
939
|
+
|
940
|
+
|
941
|
+
def return_forecast_by_money
|
942
|
+
property = params[:property] || nil
|
943
|
+
staff_id = params[:staff_id] || nil
|
944
|
+
@forecast_count_range = params[:forecast_count_range] || "month"
|
945
|
+
forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y-%m") }.uniq
|
946
|
+
sale_names = %w[实际回款额 计划回款额 实际回款 计划回款额-全部 计划回款额-o类]
|
947
|
+
case @forecast_count_range
|
948
|
+
when "week"
|
949
|
+
# 年初第一天周数是0会导致周数重复计算
|
950
|
+
if params[:forecast_date_day].present?
|
951
|
+
date = params[:forecast_date_day].split(" - ")
|
952
|
+
dates = (date[0].to_date..date[1].to_date).map { |d| d.strftime("%Y-%W") }.uniq.select { |d| d.split("-")[1] != '00' }
|
953
|
+
@return_forecast_count_data = return_money_forecast_week(dates, sale_names, staff_id, property)
|
954
|
+
else
|
955
|
+
forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y-%W") }.uniq.select { |d| d.split("-")[1] != '00' }
|
956
|
+
@return_forecast_count_data = return_money_forecast_week(forecast_default_dates, sale_names, staff_id, property)
|
957
|
+
end
|
958
|
+
when "quarter"
|
959
|
+
# 按年
|
960
|
+
if params[:forecast_date_year].present?
|
961
|
+
date = params[:forecast_date_year].split(" - ")
|
962
|
+
dates = (date[0]..date[1]).to_a
|
963
|
+
dates = dates.map { |d| [d.to_s + "-" + "1", d.to_s + "-" + "2", d.to_s + "-" + "3", d.to_s + "-" + "4"] }.flatten
|
964
|
+
@return_forecast_count_data = return_money_forecast_quarter(dates, sale_names, staff_id, property)
|
965
|
+
else
|
966
|
+
forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y") }.uniq
|
967
|
+
forecast_default_dates = forecast_default_dates.map { |d| [d.to_s + "-" + "1", d.to_s + "-" + "2", d.to_s + "-" + "3", d.to_s + "-" + "4"] }.flatten
|
968
|
+
@return_forecast_count_data = return_money_forecast_quarter(forecast_default_dates, sale_names, staff_id, property)
|
969
|
+
end
|
970
|
+
when "month" # 按月
|
971
|
+
if params[:forecast_date_month].present?
|
972
|
+
date = params[:forecast_date_month].split(" - ")
|
973
|
+
date[0] = (date[0] + "-01").to_date.to_s
|
974
|
+
date[1] = (date[1] + "-01").to_date.end_of_month.to_s
|
975
|
+
dates = ((date[0] + "-01").to_date..(date[1] + "-01").to_date).map { |d| d.strftime("%Y-%m") }.uniq
|
976
|
+
@return_forecast_count_data = return_money_forecast_month(dates, sale_names, staff_id, property)
|
977
|
+
else
|
978
|
+
@return_forecast_count_data = return_money_forecast_month(forecast_default_dates, sale_names, staff_id, property)
|
979
|
+
end
|
980
|
+
else
|
981
|
+
# 按年
|
982
|
+
if params[:forecast_date_year].present?
|
983
|
+
date = params[:forecast_date_year].split(" - ")
|
984
|
+
dates = (date[0]..date[1]).to_a
|
985
|
+
@return_forecast_count_data = return_money_forecast_year(dates, sale_names, staff_id, property)
|
986
|
+
else
|
987
|
+
forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y") }.uniq
|
988
|
+
@return_forecast_count_data = return_money_forecast_year(forecast_default_dates, sale_names, staff_id, property)
|
989
|
+
end
|
990
|
+
end
|
991
|
+
@return_forecast_count_data_0 = @return_forecast_count_data[0]
|
992
|
+
@return_forecast_count_data_1 = @return_forecast_count_data[1]
|
993
|
+
end
|
994
|
+
|
922
995
|
end
|
923
996
|
end
|
@@ -204,7 +204,7 @@ module EducodeSales
|
|
204
204
|
end
|
205
205
|
|
206
206
|
if params[:q].present? && params[:q][:is_contact].present?
|
207
|
-
@teachers = @teachers.where("last_follow.is_contact = ?"
|
207
|
+
@teachers = @teachers.where("last_follow.is_contact = ?", params[:q][:is_contact].to_i)
|
208
208
|
end
|
209
209
|
|
210
210
|
if params[:sort].present? && params[:sort][:field]
|
@@ -212,7 +212,12 @@ module EducodeSales
|
|
212
212
|
else
|
213
213
|
@teachers = @teachers.order("educode_sales_teachers.created_at desc")
|
214
214
|
end
|
215
|
-
@teachers = @teachers.
|
215
|
+
@teachers = @teachers.includes(:teacher_assign_follows, :department, :user, :follow_up, :activity_teachers, [assign_staffs: :staff])
|
216
|
+
if params[:type].to_s == 'export'
|
217
|
+
@teachers = @teachers.page(1).per(1000)
|
218
|
+
else
|
219
|
+
@teachers = @teachers.page(params[:page]).per(params[:limit])
|
220
|
+
end
|
216
221
|
end
|
217
222
|
|
218
223
|
end
|