educode_sales 1.10.26 → 1.10.29
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 +8 -1
- data/app/controllers/educode_sales/contracts_controller.rb +33 -12
- data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
- data/app/controllers/educode_sales/ideas_controller.rb +20 -1
- data/app/controllers/educode_sales/money_plan_records_controller.rb +6 -2
- data/app/controllers/educode_sales/money_plans_controller.rb +5 -1
- data/app/controllers/educode_sales/plans_controller.rb +43 -1
- data/app/models/educode_sales/idea.rb +13 -1
- data/app/models/educode_sales/idea_follow.rb +7 -0
- data/app/views/educode_sales/businesses/index.html.erb +62 -4
- data/app/views/educode_sales/businesses/index.json.jbuilder +5 -0
- data/app/views/educode_sales/businesses/key_person.html.erb +5 -0
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +56 -6
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +40 -2
- data/app/views/educode_sales/ideas/_index.html.erb +70 -17
- data/app/views/educode_sales/ideas/edit.html.erb +3 -3
- data/app/views/educode_sales/ideas/new.html.erb +4 -4
- data/app/views/educode_sales/ideas/new_follow_up.html.erb +47 -10
- data/app/views/educode_sales/plans/_monthPlan.html.erb +2 -0
- data/app/views/educode_sales/plans/_monthly.html.erb +1 -1
- data/app/views/educode_sales/plans/_weekly.html.erb +1 -0
- data/app/views/educode_sales/plans/_yearPlan.html.erb +1 -1
- data/app/views/educode_sales/plans/index.html.erb +57 -30
- data/app/views/educode_sales/plans/month_plan.js.erb +1 -0
- data/app/views/educode_sales/plans/monthly.js.erb +1 -0
- data/app/views/educode_sales/plans/weekly.js.erb +1 -0
- data/app/views/educode_sales/plans/year_plan.js.erb +1 -0
- data/app/views/educode_sales/teachers/add_keys.html.erb +0 -1
- data/app/views/layouts/educode_sales/application.html.erb +384 -338
- data/config/routes.rb +5 -0
- data/db/migrate/20230704124921_add_plan_a_date_to_follow_ups.rb +9 -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: b133a8fca27810c1c165bdab01c812af7c4ee76a0f80b02be3fcc064a353e4f9
|
|
4
|
+
data.tar.gz: 3631d821e73722d263dc9f724f09b19abd7dc0a9559a114f41f5bf204a334cb2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b3f72cb4af3f4f343fefc8438d08bc041d3f3526e639a0714196fbd63c91b9a322e03d2fc2548632b97aeed7cd6a7425a2bc5c9e798563b10be870124e504539
|
|
7
|
+
data.tar.gz: 40fbf3c2c51e50c8eaac57940279e8ec16708b1bfddc6d3673aed16033aa07aaadfaa8f69a28f9f527987afe515e77f565272298ac1f915deeb883535d27a048
|
|
@@ -115,7 +115,7 @@ module EducodeSales
|
|
|
115
115
|
end
|
|
116
116
|
end
|
|
117
117
|
format.json do
|
|
118
|
-
if params[:q] && (params[:q][:clazz] == 'area' || params[:q][:clazz] == 'special' || params[:q][:clazz] == 'delete_list')
|
|
118
|
+
if params[:q] && (params[:q][:clazz] == 'area' || params[:q][:clazz] == 'special' || params[:q][:clazz] == 'delete_list' || params[:q][:clazz] == 'plan_year')
|
|
119
119
|
if params[:q][:clazz] == 'special'
|
|
120
120
|
school_ids = []
|
|
121
121
|
# 专项商机
|
|
@@ -132,6 +132,8 @@ module EducodeSales
|
|
|
132
132
|
@businesses = Business.joins("JOIN departments AS dp ON educode_sales_businesses.department_id = dp.id").where("dp.school_id in (?)", school_ids)
|
|
133
133
|
elsif params[:q][:clazz] == 'delete_list'
|
|
134
134
|
@businesses = Business.unscoped.where(state_id: [1, 3])
|
|
135
|
+
elsif params[:q][:clazz] == 'plan_year'
|
|
136
|
+
@businesses = Business.joins(:last_follow_up).where("educode_sales_follow_ups.plan_a_date > :year OR educode_sales_follow_ups.plan_return_date > :year OR educode_sales_follow_ups.invitation_at > :year", year: Time.now.beginning_of_year)
|
|
135
137
|
end
|
|
136
138
|
else
|
|
137
139
|
if @current_admin.is_admin?
|
|
@@ -390,6 +392,11 @@ module EducodeSales
|
|
|
390
392
|
@businesses = @businesses.select("
|
|
391
393
|
distinct
|
|
392
394
|
educode_sales_businesses.*,
|
|
395
|
+
last_follow.plan_a_date,
|
|
396
|
+
last_follow.plan_a_money,
|
|
397
|
+
last_follow.invitation_money,
|
|
398
|
+
last_follow.plan_return_date,
|
|
399
|
+
last_follow.plan_return_money,
|
|
393
400
|
last_follow.invitation_at,
|
|
394
401
|
last_follow.budget_amount,
|
|
395
402
|
last_follow.o_business_deployment,
|
|
@@ -54,7 +54,12 @@ module EducodeSales
|
|
|
54
54
|
business_ids = @businesses.joins(last_follow_up: :assign_follow_ups).where("educode_sales_assign_follow_ups.staff_id = ?", @current_admin.id).pluck(:id)
|
|
55
55
|
assign_business_ids = EducodeSales::Business.joins(:assign_staffs).where("educode_sales_assign_staffs.staff_id = ?", @current_admin.id).pluck(:id)
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
if @current_admin.staff_school_tags.present?
|
|
58
|
+
# 如果设置专项客户类型,则视为专项经理,根据专项客户查看对应商机
|
|
59
|
+
school_ids += School.joins(:school_tags).where("school_tags.id in (?)", @current_admin.staff_school_tags.pluck(:school_tag_id)).pluck(:id)
|
|
60
|
+
end
|
|
61
|
+
@businesses = @businesses.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.uniq, business_ids + assign_business_ids)
|
|
62
|
+
|
|
58
63
|
end
|
|
59
64
|
end
|
|
60
65
|
|
|
@@ -365,20 +370,36 @@ module EducodeSales
|
|
|
365
370
|
current_2_actual = v
|
|
366
371
|
end
|
|
367
372
|
|
|
368
|
-
if i == 1 && last_follow_up
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
elsif i == 0 && last_follow_up
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
end
|
|
373
|
+
# if i == 1 && last_follow_up
|
|
374
|
+
# # 验收时间
|
|
375
|
+
# last_follow_up.reception_at = v
|
|
376
|
+
# elsif i == 0 && last_follow_up
|
|
377
|
+
# # 合同部署时间
|
|
378
|
+
# last_follow_up.deploy_time = v
|
|
379
|
+
# @business.p_deploy_time = v
|
|
380
|
+
# end
|
|
376
381
|
end
|
|
377
382
|
|
|
378
383
|
end
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
384
|
+
data.each do |row|
|
|
385
|
+
# 全部为空的值去掉选项
|
|
386
|
+
row.select! do |d|
|
|
387
|
+
s = d.uniq
|
|
388
|
+
s.size == 1 && s[0].blank? ? false : true
|
|
389
|
+
end
|
|
390
|
+
end
|
|
391
|
+
if last_follow_up
|
|
392
|
+
if data[0].present?
|
|
393
|
+
# 合同部署时间
|
|
394
|
+
last_follow_up.deploy_time = data[0][-1][-1]
|
|
395
|
+
@business.p_deploy_time = data[0][-1][-1]
|
|
396
|
+
end
|
|
397
|
+
if data[1].present?
|
|
398
|
+
# 验收时间
|
|
399
|
+
last_follow_up.reception_at = data[1][-1][-1]
|
|
400
|
+
end
|
|
401
|
+
end
|
|
402
|
+
|
|
382
403
|
current_week = Time.now.strftime('%W')
|
|
383
404
|
staff_manage_ids = @business&.last_follow_up&.assign_follow_ups.present? ? @business.last_follow_up.assign_follow_ups.pluck(:staff_id) : [@business.staff_id]
|
|
384
405
|
if current_1_plan && current_1_plan.to_date.strftime('%W') == current_week
|
|
@@ -409,7 +409,7 @@ module EducodeSales
|
|
|
409
409
|
end
|
|
410
410
|
|
|
411
411
|
def follow_up_params
|
|
412
|
-
params.permit(:clazz_id, :stage_id, :invitation_at, :reception_at, :total_amount, :actual_amount, :divide_amount, :divide_rate, :budget_amount, :description, :advise, :place_id, :bidded_date, :signed_date, :year, :o_business_deployment, :deploy_time, :rival)
|
|
412
|
+
params.permit(:clazz_id, :stage_id, :invitation_at, :reception_at, :total_amount, :actual_amount, :divide_amount, :divide_rate, :budget_amount, :description, :advise, :place_id, :bidded_date, :signed_date, :year, :o_business_deployment, :deploy_time, :rival, :plan_a_date, :plan_a_money, :invitation_money, :plan_return_date, :plan_return_money)
|
|
413
413
|
end
|
|
414
414
|
|
|
415
415
|
# 更新部门和部门下老师用户的状态
|
|
@@ -42,6 +42,8 @@ module EducodeSales
|
|
|
42
42
|
@creator_arr = EducodeSales::Staff.joins(:user).where(id: creator_ids).pluck("concat(users.lastname,users.firstname)", :id)
|
|
43
43
|
@staff_arr = EducodeSales::Staff.joins(:user).where(id: staff_ids).pluck("concat(users.lastname,users.firstname)", :id)
|
|
44
44
|
@sale_staff_arr = EducodeSales::Staff.joins(:user).where(id: sale_staff_ids).pluck("concat(users.lastname,users.firstname)", :id)
|
|
45
|
+
filter = Filter.find_or_create_by(staff_id: @current_admin.id, clazz: "ideas")
|
|
46
|
+
gon.filter = filter.extras || {}
|
|
45
47
|
end
|
|
46
48
|
format.json do
|
|
47
49
|
@ideas = params[:is_deleted].to_s == "true" ? Idea.deleted : Idea.not_deleted
|
|
@@ -142,9 +144,16 @@ module EducodeSales
|
|
|
142
144
|
idea.department_id = idea.business&.department_id
|
|
143
145
|
end
|
|
144
146
|
idea.attachment_ids = attachment_ids
|
|
147
|
+
|
|
145
148
|
# idea.assist_staff_ids = assist_staff_ids
|
|
146
149
|
# idea.other_staff_ids = other_staff_ids
|
|
147
150
|
idea.save
|
|
151
|
+
attachment_ids.each do |a|
|
|
152
|
+
attachment = Attachment.find_by_id(a)
|
|
153
|
+
attachment.container_id = idea.id
|
|
154
|
+
attachment.container_type = 'EducodeSales::Idea'
|
|
155
|
+
attachment.save
|
|
156
|
+
end
|
|
148
157
|
render_success
|
|
149
158
|
end
|
|
150
159
|
|
|
@@ -217,7 +226,9 @@ module EducodeSales
|
|
|
217
226
|
|
|
218
227
|
def new_follow_up
|
|
219
228
|
@idea = Idea.find(params[:id])
|
|
220
|
-
|
|
229
|
+
staffs = Staff.where.not(role_id: 11).includes(:user)
|
|
230
|
+
gon.sale_staffs = staffs.map { |d| { name: d.user.real_name, value: d.id, selected: d.id == @idea.sale_staff_id } }
|
|
231
|
+
gon.idea_staffs = staffs.map { |d| { name: d.user.real_name, value: d.id, selected: d.id == @idea.staff_id } }
|
|
221
232
|
render layout: false
|
|
222
233
|
end
|
|
223
234
|
|
|
@@ -264,6 +275,14 @@ module EducodeSales
|
|
|
264
275
|
if follow_up.save
|
|
265
276
|
idea.last_idea_follow_id = follow_up.id
|
|
266
277
|
idea.save
|
|
278
|
+
attachment_ids = Array(params[:attachment_ids].to_s.split(","))
|
|
279
|
+
attachment_ids.each do |a|
|
|
280
|
+
attachment = Attachment.find_by_id(a)
|
|
281
|
+
attachment.container_id = idea.id
|
|
282
|
+
attachment.container_type = 'EducodeSales::Idea'
|
|
283
|
+
attachment.description = follow_up.id.to_s
|
|
284
|
+
attachment.save
|
|
285
|
+
end
|
|
267
286
|
render_success
|
|
268
287
|
else
|
|
269
288
|
render_failure follow_up
|
|
@@ -25,8 +25,12 @@ module EducodeSales
|
|
|
25
25
|
@money_plan_records = @money_plan_records.where(staff_id: @current_admin.id)
|
|
26
26
|
when '区域'
|
|
27
27
|
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id) + StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id)
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
if @current_admin.staff_school_tags.present?
|
|
29
|
+
# 如果设置专项客户类型,则视为专项经理,根据专项客户查看对应商机
|
|
30
|
+
school_ids += School.joins(:school_tags).where("school_tags.id in (?)", @current_admin.staff_school_tags.pluck(:school_tag_id)).pluck(:id)
|
|
31
|
+
end
|
|
32
|
+
b_ids = Business.where(school_id: school_ids.uniq).pluck(:id)
|
|
33
|
+
@money_plan_records = @money_plan_records.joins(:business).where("educode_sales_businesses.id in (?) OR educode_sales_money_plan_records.staff_id = ?", b_ids, @current_admin.id)
|
|
30
34
|
end
|
|
31
35
|
end
|
|
32
36
|
|
|
@@ -20,7 +20,11 @@ module EducodeSales
|
|
|
20
20
|
@money_plans = @money_plans.where(staff_id: @current_admin.id)
|
|
21
21
|
when '区域'
|
|
22
22
|
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id) + StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id)
|
|
23
|
-
|
|
23
|
+
if @current_admin.staff_school_tags.present?
|
|
24
|
+
# 如果设置专项客户类型,则视为专项经理,根据专项客户查看对应商机
|
|
25
|
+
school_ids += School.joins(:school_tags).where("school_tags.id in (?)", @current_admin.staff_school_tags.pluck(:school_tag_id)).pluck(:id)
|
|
26
|
+
end
|
|
27
|
+
b_ids = Business.where(school_id: school_ids.uniq).pluck(:id)
|
|
24
28
|
@money_plans = @money_plans.where("educode_sales_businesses.id in (?) OR educode_sales_money_plans.staff_id = ?", b_ids, @current_admin.id)
|
|
25
29
|
end
|
|
26
30
|
end
|
|
@@ -22,7 +22,14 @@ module EducodeSales
|
|
|
22
22
|
@sale_plans = SalePlan.where(staff_id: @current_admin.id)
|
|
23
23
|
when '区域'
|
|
24
24
|
staff_ids = Staff.joins(user: [user_extension: [department: :school]]).where("schools.province in (?)", @current_admin.areas.pluck(:name)).pluck(:id)
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
school_ids = StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id)
|
|
27
|
+
if @current_admin.staff_school_tags.present?
|
|
28
|
+
# 如果设置专项客户类型,则视为专项经理,根据专项客户查看对应商机
|
|
29
|
+
school_ids += School.joins(:school_tags).where("school_tags.id in (?)", @current_admin.staff_school_tags.pluck(:school_tag_id)).pluck(:id)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
business_ids = Business.where(school_id: school_ids.uniq).pluck(:id)
|
|
26
33
|
@sale_plans = SalePlan.where("staff_id in (?) OR educode_sales_sale_plans.staff_id = ? OR educode_sales_sale_plans.business_id in (?)", staff_ids, @current_admin.id,business_ids)
|
|
27
34
|
else
|
|
28
35
|
@sale_plans = SalePlan
|
|
@@ -468,6 +475,41 @@ module EducodeSales
|
|
|
468
475
|
render layout: false
|
|
469
476
|
end
|
|
470
477
|
|
|
478
|
+
def week_plan
|
|
479
|
+
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
|
480
|
+
@staffs = Staff.includes(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id] }
|
|
481
|
+
@years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
|
|
482
|
+
@months = (1..12).map { |d| d }
|
|
483
|
+
end
|
|
484
|
+
|
|
485
|
+
def weekly
|
|
486
|
+
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
|
487
|
+
@staffs = Staff.includes(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id] }
|
|
488
|
+
@years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
|
|
489
|
+
@months = (1..12).map { |d| d }
|
|
490
|
+
end
|
|
491
|
+
|
|
492
|
+
def monthly
|
|
493
|
+
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
|
494
|
+
@staffs = Staff.includes(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id] }
|
|
495
|
+
@years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
|
|
496
|
+
@months = (1..12).map { |d| d }
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
def month_plan
|
|
500
|
+
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
|
501
|
+
@staffs = Staff.includes(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id] }
|
|
502
|
+
@years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
|
|
503
|
+
@months = (1..12).map { |d| d }
|
|
504
|
+
end
|
|
505
|
+
|
|
506
|
+
def year_plan
|
|
507
|
+
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
|
508
|
+
@staffs = Staff.includes(:user).where(job_type: common.id).map { |d| [d.user.real_name, d.id] }
|
|
509
|
+
@years = (1..(Time.now.year - 2020)).map { |d| 2020 + d }
|
|
510
|
+
@months = (1..12).map { |d| d }
|
|
511
|
+
end
|
|
512
|
+
|
|
471
513
|
private
|
|
472
514
|
|
|
473
515
|
def plan_params
|
|
@@ -25,7 +25,7 @@ module EducodeSales
|
|
|
25
25
|
enum model: %w[本地版 线上版 混合版]
|
|
26
26
|
enum idea_type: %w[建设方案 申报论证 市场调研 课程建设 报价清单 交流汇报 招标参数 资质申报 产品手册 宣传海报 课题论文 投标支持 其他类]
|
|
27
27
|
|
|
28
|
-
serialize :assist_staff_ids,Array
|
|
28
|
+
serialize :assist_staff_ids, Array
|
|
29
29
|
serialize :attachment_ids, Array
|
|
30
30
|
serialize :other_staff_ids, Array
|
|
31
31
|
|
|
@@ -35,6 +35,18 @@ module EducodeSales
|
|
|
35
35
|
self.update(deleted_at: nil, deleter_id: nil, is_deleted: false)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
+
def sync_data
|
|
39
|
+
# {"content"=>"123", "idea_id"=>15, "school_id"=>nil, "money"=>123.0, "advise"=>"123", "sale_staff_id"=>8, "idea_staff_id"=>12, "staff_id"=>2, "comment"=>nil, "created_at"=>Mon, 01 May 2023 11:12:48 CST +08:00, "updated_at"=>Mon, 01 Ma023 11:14:06 CST +08:00}
|
|
40
|
+
# {"school_id"=>38739, "name"=>"java项目", "level"=>"高", "staff_id"=>24,"types"=>"低定制", "model"=>"本地版", "hardware"=>111.011, "project"=>333.011, "money"=>222.01, "creator_id"=>2, "end_time"=>Sat, 08 Apr 2023, "history_type"=>n"=>"4441111", "deleter_id"=>nil, "is_deleted"=>false, "deleted_at"=>nil, "department_id"=>35794, "manager_name"=>"王旭11111", "manager_phone"=>"131011111111111", "history_record"=>nil, "created_at"=>Thu, 23 Mar 2023 11:27:22 CST +08:00, "updated_at"=>Tue, 04 Jul 20217:57:32 CST +08:00, "school_name"=>"湖南科技大学1111", "department_name"=>"计算机科学与技术11111", "sale_staff_id"=>53, "idea_staff_id"=>nil, "assist_staff_ids"=>["10"], "attachment_id"=>nil, "attachment_ids"=>["4390068"], "idea_type"=>"建设方案", "other_staff_ids" "12", "13", "14", "16", "17", "18"], "idea_follows_count"=>2, "last_idea_follow_id"=>11, "advise"=>"123123", "business_id"=>nil}
|
|
41
|
+
|
|
42
|
+
last_follow = self.idea_follows.order(created_at: :desc).first
|
|
43
|
+
if last_follow
|
|
44
|
+
self.update(status: last_follow.status, last_idea_follow_id: last_follow.id, staff_id: last_follow.idea_staff_id, sale_staff_id: last_follow.sale_staff_id)
|
|
45
|
+
else
|
|
46
|
+
self.update(last_idea_follow_id: nil)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
38
50
|
def assist_staffs
|
|
39
51
|
Staff.where(id: self.assist_staff_ids)
|
|
40
52
|
end
|
|
@@ -170,6 +170,7 @@
|
|
|
170
170
|
<% if can?(:audit_business, EducodeSales::Business) %>
|
|
171
171
|
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right delete-btn" lay-event="delete_list">审核商机</button>
|
|
172
172
|
<% end %>
|
|
173
|
+
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right plan_year" lay-event="plan_year">本年计划</button>
|
|
173
174
|
</div>
|
|
174
175
|
</script>
|
|
175
176
|
<script type="text/html" id="delete_bar">
|
|
@@ -522,6 +523,20 @@
|
|
|
522
523
|
sort: true,
|
|
523
524
|
hide: gon.filter.latest_time
|
|
524
525
|
},
|
|
526
|
+
{
|
|
527
|
+
field: 'plan_a_date',
|
|
528
|
+
width: 150,
|
|
529
|
+
title:'计划A类时间',
|
|
530
|
+
sort: true,
|
|
531
|
+
hide: gon.filter.plan_a_date
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
field: 'plan_a_money',
|
|
535
|
+
width: 150,
|
|
536
|
+
title: '计划A类金额',
|
|
537
|
+
sort: true,
|
|
538
|
+
hide: gon.filter.plan_a_money
|
|
539
|
+
},
|
|
525
540
|
{
|
|
526
541
|
field: 'invitation_at',
|
|
527
542
|
width: 150,
|
|
@@ -530,11 +545,25 @@
|
|
|
530
545
|
hide: gon.filter.invitation_at
|
|
531
546
|
},
|
|
532
547
|
{
|
|
533
|
-
field: '
|
|
534
|
-
width:
|
|
535
|
-
title: '
|
|
548
|
+
field: 'invitation_money',
|
|
549
|
+
width: 150,
|
|
550
|
+
title: '计划投标金额',
|
|
536
551
|
sort: true,
|
|
537
|
-
hide: gon.filter.
|
|
552
|
+
hide: gon.filter.invitation_money
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
field: 'plan_return_date',
|
|
556
|
+
width: 135,
|
|
557
|
+
title: '计划回款时间',
|
|
558
|
+
sort: true,
|
|
559
|
+
hide: gon.filter.plan_return_date
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
field: 'plan_return_money',
|
|
563
|
+
width: 135,
|
|
564
|
+
title: '计划回款金额',
|
|
565
|
+
sort: true,
|
|
566
|
+
hide: gon.filter.plan_return_money
|
|
538
567
|
},
|
|
539
568
|
{
|
|
540
569
|
field: 'budget_amount',
|
|
@@ -544,6 +573,13 @@
|
|
|
544
573
|
sort: true,
|
|
545
574
|
hide: gon.filter.budget_amount
|
|
546
575
|
},
|
|
576
|
+
{
|
|
577
|
+
field: 'bidded_date',
|
|
578
|
+
width: 105,
|
|
579
|
+
title: '中标时间',
|
|
580
|
+
sort: true,
|
|
581
|
+
hide: gon.filter.bidded_date
|
|
582
|
+
},
|
|
547
583
|
{
|
|
548
584
|
field: 'total_amount',
|
|
549
585
|
width: 100,
|
|
@@ -1067,6 +1103,8 @@
|
|
|
1067
1103
|
$(".area-btn").addClass("selected-btn");
|
|
1068
1104
|
} else if (search['clazz'] == 'delete_list') {
|
|
1069
1105
|
$(".delete-btn").addClass("selected-btn");
|
|
1106
|
+
} else if (search['clazz'] == 'plan_year') {
|
|
1107
|
+
$(".plan_year").addClass("selected-btn");
|
|
1070
1108
|
} else {
|
|
1071
1109
|
$(".all-btn").addClass("selected-btn");
|
|
1072
1110
|
}
|
|
@@ -1249,6 +1287,26 @@
|
|
|
1249
1287
|
|
|
1250
1288
|
return false;
|
|
1251
1289
|
}
|
|
1290
|
+
else if (obj.event === 'plan_year') {
|
|
1291
|
+
search = {"clazz": "plan_year"}
|
|
1292
|
+
business_type_list.setValue([])
|
|
1293
|
+
table.reload('businesses_table', {
|
|
1294
|
+
url: '/missions/businesses',
|
|
1295
|
+
cols: cols_table,
|
|
1296
|
+
page: {
|
|
1297
|
+
curr: 1
|
|
1298
|
+
},
|
|
1299
|
+
where: {q: search, sort: sort}
|
|
1300
|
+
}, 'data');
|
|
1301
|
+
|
|
1302
|
+
form.val('search_form', {
|
|
1303
|
+
name: '', department: '', staff_id: '', business_type: '', business_step: '',
|
|
1304
|
+
place_id: '', date: '', area: ''
|
|
1305
|
+
})
|
|
1306
|
+
$(".plan_year").addClass("selected-btn");
|
|
1307
|
+
|
|
1308
|
+
return false;
|
|
1309
|
+
}
|
|
1252
1310
|
else if (obj.event === 'delete') {
|
|
1253
1311
|
var checkStatus = table.checkStatus('currentTableId'),
|
|
1254
1312
|
data = checkStatus.data;
|
|
@@ -76,6 +76,11 @@ json.data do
|
|
|
76
76
|
json.self_flag (d.staff_id == @current_admin.id) || (d.last_follow_up_id.in? follow_up_ids)
|
|
77
77
|
json.followed d.users.pluck(:user_id).include?(@current_admin.user.id) ? 1 : 0 # d.users.where(user_id:@current_admin.user.id).first ? 1 : 0
|
|
78
78
|
json.p_deploy_time d.p_deploy_time
|
|
79
|
+
json.plan_a_date d.last_follow_up&.plan_a_date&.to_s
|
|
80
|
+
json.plan_a_money d.last_follow_up&.plan_a_money&.round(6)
|
|
81
|
+
json.invitation_money d.last_follow_up&.invitation_money&.to_s
|
|
82
|
+
json.plan_return_date d.last_follow_up&.plan_return_date&.to_s
|
|
83
|
+
json.plan_return_money d.last_follow_up&.plan_return_money&.round(6)
|
|
79
84
|
end
|
|
80
85
|
end
|
|
81
86
|
|
|
@@ -37,6 +37,21 @@
|
|
|
37
37
|
<%= select_tag "stage_id", options_for_select(@stages, @last_follow_up&.stage_id), { 'lay-filter': 'stage_id', class: 'required', } %>
|
|
38
38
|
</div>
|
|
39
39
|
</div>
|
|
40
|
+
</br>
|
|
41
|
+
<div class="layui-inline">
|
|
42
|
+
<label class="layui-form-label">计划A类时间</label>
|
|
43
|
+
<div class="layui-input-inline">
|
|
44
|
+
<input type="text" class="layui-input" name="plan_a_date" autocomplete="off" id="plan_a_date"
|
|
45
|
+
value="<%= @last_follow_up&.plan_a_date %>"
|
|
46
|
+
placeholder="请选择日期">
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="layui-inline">
|
|
50
|
+
<label class="layui-form-label">计划A类金额(万)</label>
|
|
51
|
+
<div class="layui-input-inline">
|
|
52
|
+
<input name="plan_a_money" class="layui-input" value="<%= @last_follow_up&.plan_a_money.to_f.round(6) %>">
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
40
55
|
<br>
|
|
41
56
|
<div class="layui-inline">
|
|
42
57
|
<label class="layui-form-label">计划投标时间</label>
|
|
@@ -46,14 +61,29 @@
|
|
|
46
61
|
placeholder="请选择日期">
|
|
47
62
|
</div>
|
|
48
63
|
</div>
|
|
49
|
-
|
|
50
|
-
<label class="layui-form-label"
|
|
64
|
+
<div class="layui-inline">
|
|
65
|
+
<label class="layui-form-label">计划投标金额(万)</label>
|
|
51
66
|
<div class="layui-input-inline">
|
|
52
|
-
<input
|
|
53
|
-
value="<%= @last_follow_up&.bidded_date %>"
|
|
54
|
-
placeholder="请选择日期">
|
|
67
|
+
<input name="invitation_money" class="layui-input" value="<%= @last_follow_up&.invitation_money.to_f.round(6) %>">
|
|
55
68
|
</div>
|
|
56
69
|
</div>
|
|
70
|
+
</br>
|
|
71
|
+
<div class="layui-inline">
|
|
72
|
+
<label class="layui-form-label">计划回款时间</label>
|
|
73
|
+
<div class="layui-input-inline">
|
|
74
|
+
<input type="text" class="layui-input" name="plan_return_date" autocomplete="off" id="plan_return_date"
|
|
75
|
+
value="<%= @last_follow_up&.plan_return_date %>"
|
|
76
|
+
placeholder="请选择日期">
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="layui-inline">
|
|
80
|
+
<label class="layui-form-label">计划回款金额(万)</label>
|
|
81
|
+
<div class="layui-input-inline">
|
|
82
|
+
<input name="plan_return_money" class="layui-input" value="<%= @last_follow_up&.plan_return_money.to_f.round(6) %>">
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
|
|
57
87
|
<br>
|
|
58
88
|
<!--
|
|
59
89
|
<div class="layui-inline">
|
|
@@ -88,6 +118,14 @@
|
|
|
88
118
|
</div> -->
|
|
89
119
|
|
|
90
120
|
<br class="service_show layui-hide">
|
|
121
|
+
<div class="layui-inline">
|
|
122
|
+
<label class="layui-form-label">中标时间</label>
|
|
123
|
+
<div class="layui-input-inline">
|
|
124
|
+
<input type="text" class="layui-input" name="bidded_date" autocomplete="off" id="invitation_at_add"
|
|
125
|
+
value="<%= @last_follow_up&.bidded_date %>"
|
|
126
|
+
placeholder="请选择日期">
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
91
129
|
<div class="layui-inline">
|
|
92
130
|
<label class="layui-form-label">中标额(万)</label>
|
|
93
131
|
<div class="layui-input-inline">
|
|
@@ -247,6 +285,14 @@
|
|
|
247
285
|
laydate.render({
|
|
248
286
|
elem: '#reception_at_add'
|
|
249
287
|
});
|
|
288
|
+
|
|
289
|
+
laydate.render({
|
|
290
|
+
elem: '#plan_a_date'
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
laydate.render({
|
|
294
|
+
elem: '#plan_return_date'
|
|
295
|
+
})
|
|
250
296
|
var sales_list = xmSelect.render({
|
|
251
297
|
el: '#assign_follow',
|
|
252
298
|
remoteSearch: true,
|
|
@@ -358,6 +404,10 @@
|
|
|
358
404
|
<style>
|
|
359
405
|
.new_place_select xm-select > .xm-body {
|
|
360
406
|
width: 300px;
|
|
361
|
-
|
|
407
|
+
!important;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
.layui-form-label {
|
|
411
|
+
width: 120px;
|
|
362
412
|
}
|
|
363
413
|
</style>
|
|
@@ -35,6 +35,19 @@
|
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
37
|
<br>
|
|
38
|
+
<div class="layui-inline">
|
|
39
|
+
<label class="layui-form-label">计划A类时间:</label>
|
|
40
|
+
<div class="layui-input-inline">
|
|
41
|
+
<%= @follow_up.plan_a_date.to_s %>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="layui-inline">
|
|
45
|
+
<label class="layui-form-label">计划A类金额:</label>
|
|
46
|
+
<div class="layui-input-inline">
|
|
47
|
+
<%= @follow_up.plan_a_money&.round(6) %>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</br>
|
|
38
51
|
<div class="layui-inline">
|
|
39
52
|
<label class="layui-form-label">计划投标时间:</label>
|
|
40
53
|
<div class="layui-input-inline">
|
|
@@ -42,9 +55,22 @@
|
|
|
42
55
|
</div>
|
|
43
56
|
</div>
|
|
44
57
|
<div class="layui-inline">
|
|
45
|
-
<label class="layui-form-label"
|
|
58
|
+
<label class="layui-form-label">计划投标金额:</label>
|
|
46
59
|
<div class="layui-input-inline">
|
|
47
|
-
<%= @follow_up.
|
|
60
|
+
<%= @follow_up.invitation_money&.round(6) %>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</br>
|
|
64
|
+
<div class="layui-inline">
|
|
65
|
+
<label class="layui-form-label">计划回款时间:</label>
|
|
66
|
+
<div class="layui-input-inline">
|
|
67
|
+
<%= @follow_up.plan_return_date.to_s %>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="layui-inline">
|
|
71
|
+
<label class="layui-form-label">计划回款金额:</label>
|
|
72
|
+
<div class="layui-input-inline">
|
|
73
|
+
<%= @follow_up.plan_return_money&.round(6) %>
|
|
48
74
|
</div>
|
|
49
75
|
</div>
|
|
50
76
|
<br>
|
|
@@ -86,6 +112,12 @@
|
|
|
86
112
|
<%= @follow_up.total_amount.to_f.round(6) %>万
|
|
87
113
|
</div>
|
|
88
114
|
</div>
|
|
115
|
+
<div class="layui-inline">
|
|
116
|
+
<label class="layui-form-label">中标时间:</label>
|
|
117
|
+
<div class="layui-input-inline">
|
|
118
|
+
<%= @follow_up.bidded_date.to_s %>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
89
121
|
<div class="layui-inline">
|
|
90
122
|
<label class="layui-form-label">合同额:</label>
|
|
91
123
|
<div class="layui-input-inline">
|
|
@@ -222,3 +254,9 @@
|
|
|
222
254
|
});
|
|
223
255
|
}
|
|
224
256
|
</script>
|
|
257
|
+
<style>
|
|
258
|
+
|
|
259
|
+
.layui-form-label {
|
|
260
|
+
width: 120px;
|
|
261
|
+
}
|
|
262
|
+
</style>
|