educode_sales 0.9.69 → 0.9.70
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/customers_controller.rb +6 -1
- data/app/controllers/educode_sales/projects_controller.rb +3 -0
- data/app/controllers/educode_sales/teachers_controller.rb +4 -1
- data/app/models/educode_sales/eco_staff.rb +6 -0
- data/app/views/educode_sales/businesses/index.html.erb +8 -0
- data/app/views/educode_sales/businesses/index.json.jbuilder +2 -1
- data/app/views/educode_sales/businesses/time_line.html.erb +2 -1
- data/app/views/educode_sales/customers/edit_major.html.erb +5 -1
- data/app/views/educode_sales/customers/list.html.erb +0 -1
- data/app/views/educode_sales/projects/detail.html.erb +10 -6
- data/app/views/educode_sales/projects/index.html.erb +38 -8
- data/app/views/educode_sales/teachers/_index.html.erb +11 -0
- data/app/views/educode_sales/teachers/edit.html.erb +10 -3
- data/app/views/educode_sales/teachers/index.json.jbuilder +1 -0
- data/db/migrate/20230414031409_add_major_educode_sales_customer_follows.rb +12 -0
- data/db/migrate/20230414035655_create_educode_sales_eco_staffs.rb +11 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +4 -2
- data/db/migrate/20230411134203_add_realname_to_teacher.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 502334cc54a23143806d433d2f8049c0e9ae8961652b6af811d2225e6dfd4ece
|
4
|
+
data.tar.gz: 884955d1facd79b398128fa275ca71edfc18802101c1baa1d35a7233f94c768a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29ec5ea6847c23689ed1587710fbbde53b0bf4e71717a9c8cb232808e315fd881dfc17d3072c053d2d83329e0cfef801a31f9c5e51379eb0c7102594d456e31d
|
7
|
+
data.tar.gz: 89cbc11577607d7e2bc16acb0b74044955b3b33fbefadd3fdb2352f35f3912a2ebaed880112c267bfea3a5732291b077972ea7180427b3a7427b8c9cbfa20d56
|
@@ -392,8 +392,13 @@ module EducodeSales
|
|
392
392
|
def update
|
393
393
|
@school = School.find(params[:id])
|
394
394
|
if params[:department_id].present?
|
395
|
-
department = @school.departments.
|
395
|
+
department = @school.departments.find_by(id: params[:department_id])
|
396
|
+
if department
|
397
|
+
department.update(name: params[:department])
|
398
|
+
department.department_majors.find_by(id: params[:major_id])&.update(name: params[:major]) if params[:major_id].present?
|
399
|
+
end
|
396
400
|
end
|
401
|
+
|
397
402
|
|
398
403
|
ActiveRecord::Base.transaction do
|
399
404
|
property = SchoolProperty.find_or_create_by!(project_985: params[:project_985].present? ? 1 : 0,
|
@@ -143,6 +143,9 @@ module EducodeSales
|
|
143
143
|
if params[:q].present? && params[:q][:p_staff_id].present?
|
144
144
|
@businesses = @businesses.where(p_staff_id: params[:q][:p_staff_id])
|
145
145
|
end
|
146
|
+
if params[:q].present? && params[:q][:p_sale_staff_id].present?
|
147
|
+
@businesses = @businesses.where(p_sale_staff_id: params[:q][:p_sale_staff_id])
|
148
|
+
end
|
146
149
|
if params[:q].present? && params[:q][:p_special].present?
|
147
150
|
@businesses = @businesses.where(p_special: "#{params[:q][:p_special]}")
|
148
151
|
end
|
@@ -85,6 +85,9 @@ module EducodeSales
|
|
85
85
|
if params[:q].present? && params[:q][:name].present?
|
86
86
|
@teachers = @teachers.where("educode_sales_teachers.name like ?", "%#{params[:q][:name]}%")
|
87
87
|
end
|
88
|
+
if params[:q].present? && params[:q][:realname].present?
|
89
|
+
@teachers = @teachers.where("educode_sales_teachers.realname like ?", "%#{params[:q][:realname]}%")
|
90
|
+
end
|
88
91
|
if params[:q].present? && params[:q][:professional_title].present?
|
89
92
|
@teachers = @teachers.where("educode_sales_teachers.professional_title = ?", "#{params[:q][:professional_title]}")
|
90
93
|
end
|
@@ -393,7 +396,7 @@ module EducodeSales
|
|
393
396
|
|
394
397
|
private
|
395
398
|
def teacher_params
|
396
|
-
params.permit(:name, :professional_title, :job, :source_id, :wechat, :mobile)
|
399
|
+
params.permit(:name, :professional_title, :job, :source_id, :wechat, :mobile, :realname)
|
397
400
|
end
|
398
401
|
|
399
402
|
def load_teacher
|
@@ -528,6 +528,14 @@
|
|
528
528
|
sort: true,
|
529
529
|
hide: gon.filter.o_business_deployment
|
530
530
|
},
|
531
|
+
{
|
532
|
+
field: 'p_deploy_time',
|
533
|
+
width: 150,
|
534
|
+
title: '部署时间',
|
535
|
+
sort: true,
|
536
|
+
hide: gon.filter.p_deploy_time
|
537
|
+
},
|
538
|
+
|
531
539
|
{
|
532
540
|
field: 'budget_amount',
|
533
541
|
width: 105,
|
@@ -67,7 +67,8 @@ json.data do
|
|
67
67
|
json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
|
68
68
|
json.self_flag (d.staff_id == @current_admin.id) || (d.last_follow_up_id.in? follow_up_ids)
|
69
69
|
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
|
70
|
-
|
70
|
+
json.p_deploy_time d.p_deploy_time
|
71
|
+
end
|
71
72
|
end
|
72
73
|
|
73
74
|
json.totalRow do
|
@@ -8,14 +8,17 @@
|
|
8
8
|
</div>
|
9
9
|
</div>
|
10
10
|
<br>
|
11
|
+
<% if @department.present? %>
|
11
12
|
<div class="layui-inline">
|
12
13
|
<label class="layui-form-label">部门:</label>
|
13
14
|
<div class="layui-input-block" style="width: 500px;">
|
14
15
|
<input type="text" name="department" value="<%= @department&.name %>" placeholder="请输入部门" autocomplete="off" class="layui-input">
|
15
|
-
<%= hidden_field_tag "department_id",
|
16
|
+
<%= hidden_field_tag "department_id", @department.id %>
|
16
17
|
</div>
|
17
18
|
</div>
|
18
19
|
<br>
|
20
|
+
<% end %>
|
21
|
+
<% if @major.present? %>
|
19
22
|
<div class="layui-inline">
|
20
23
|
<label class="layui-form-label">专业:</label>
|
21
24
|
<div class="layui-input-block" style="width: 500px;">
|
@@ -24,6 +27,7 @@
|
|
24
27
|
</div>
|
25
28
|
</div>
|
26
29
|
<br>
|
30
|
+
<% end %>
|
27
31
|
<div class="layui-inline city_input">
|
28
32
|
<label class="layui-form-label ">省:</label>
|
29
33
|
<div class="layui-input-block" style="width: 500px;">
|
@@ -125,7 +125,7 @@
|
|
125
125
|
</div>
|
126
126
|
</div>
|
127
127
|
</div>
|
128
|
-
<div class="layui-row" style="padding-top: 5px
|
128
|
+
<div class="layui-row" style="padding-top: 5px">
|
129
129
|
<div class="layui-col-md6">
|
130
130
|
<labeL class="layui-form-label">实际验收时间:</labeL>
|
131
131
|
<div class="layui-input-block">
|
@@ -139,15 +139,15 @@
|
|
139
139
|
</div>
|
140
140
|
</div>
|
141
141
|
</div>
|
142
|
-
<div class="layui-row" style="padding-top: 5px
|
142
|
+
<div class="layui-row" style="padding-top: 5px">
|
143
143
|
<div class="layui-col-md6">
|
144
144
|
<labeL class="layui-form-label">实际回款时间:</labeL>
|
145
145
|
<div class="layui-input-block">
|
146
|
-
<input type="text" id="
|
146
|
+
<input type="text" id="edit_p_actual_money_time" name="p_actual_money_time" autocomplete="off" placeholder="请选择时间" value="<%= @project&.p_actual_money_time&.to_s(:date) %>" class="layui-input">
|
147
147
|
</div>
|
148
148
|
</div>
|
149
149
|
<div class="layui-col-md6">
|
150
|
-
<labeL class="layui-form-label"
|
150
|
+
<labeL class="layui-form-label">回款百分比(%):</labeL>
|
151
151
|
<div class="layui-input-block">
|
152
152
|
<input type="text" name="p_money" autocomplete="off" placeholder="请输入" value="<%= @project&.p_money %>" class="layui-input">
|
153
153
|
</div>
|
@@ -195,11 +195,15 @@
|
|
195
195
|
elem: '#p_accept_time'
|
196
196
|
});
|
197
197
|
laydate.render({
|
198
|
-
elem: '#
|
198
|
+
elem: '#p_actual_money_time'
|
199
199
|
});
|
200
200
|
laydate.render({
|
201
|
-
elem: '#
|
201
|
+
elem: '#edit_p_actual_money_time'
|
202
202
|
});
|
203
|
+
laydate.render({
|
204
|
+
elem: '#p_pre_money_time'
|
205
|
+
});
|
206
|
+
|
203
207
|
form.render();
|
204
208
|
|
205
209
|
|
@@ -48,13 +48,13 @@
|
|
48
48
|
<div class="layui-inline show_item_contract">
|
49
49
|
<label class="layui-form-label">指派人</label>
|
50
50
|
<div class="layui-input-inline">
|
51
|
-
<%= select_tag "
|
51
|
+
<%= select_tag "p_staff_id", options_for_select(EducodeSales::Staff.where(id: EducodeSales::Project.all.pluck(:p_staff_id)).map { |d| [d.user&.real_name, d.id] }, @project&.p_special), { 'lay-filter': 'p_special', include_blank: true } %>
|
52
52
|
</div>
|
53
53
|
</div>
|
54
54
|
<div class="layui-inline show_item_contract">
|
55
55
|
<label class="layui-form-label">销售经理</label>
|
56
56
|
<div class="layui-input-inline">
|
57
|
-
<%= select_tag "
|
57
|
+
<%= select_tag "p_sale_staff_id", options_for_select(EducodeSales::Staff.where(id: EducodeSales::Project.all.pluck(:p_sale_staff_id)).map { |d| [d.user&.real_name, d.id] }, @project&.p_special), { 'lay-filter': 'p_special', include_blank: true } %>
|
58
58
|
</div>
|
59
59
|
</div>
|
60
60
|
<div class="layui-inline show_item_contract">
|
@@ -476,8 +476,18 @@
|
|
476
476
|
form.on('submit(reset_business_search)', function (data) {
|
477
477
|
var field = data.field;
|
478
478
|
form.val('search_form', {
|
479
|
-
name: '',
|
480
|
-
|
479
|
+
name: '',
|
480
|
+
department: '',
|
481
|
+
bidded_date: '',
|
482
|
+
signed_date: '',
|
483
|
+
search_p_actual_money_time: '',
|
484
|
+
p_stage: '',
|
485
|
+
p_state: '',
|
486
|
+
p_special: '',
|
487
|
+
p_difficulty: '',
|
488
|
+
o_business_deployment: '',
|
489
|
+
p_staff_id: '',
|
490
|
+
p_sale_staff_id: ''
|
481
491
|
})
|
482
492
|
// business_type_list.setValue([])
|
483
493
|
// business_step_list.setValue([])
|
@@ -642,8 +652,18 @@
|
|
642
652
|
where: {q: search, sort: sort}
|
643
653
|
}, 'data');
|
644
654
|
form.val('search_form', {
|
645
|
-
name: '',
|
646
|
-
|
655
|
+
name: '',
|
656
|
+
department: '',
|
657
|
+
bidded_date: '',
|
658
|
+
signed_date: '',
|
659
|
+
search_p_actual_money_time: '',
|
660
|
+
p_stage: '',
|
661
|
+
p_state: '',
|
662
|
+
p_special: '',
|
663
|
+
p_difficulty: '',
|
664
|
+
o_business_deployment: '',
|
665
|
+
p_staff_id: '',
|
666
|
+
p_sale_staff_id: ''
|
647
667
|
})
|
648
668
|
$(".my-btn").addClass("selected-btn");
|
649
669
|
return false;
|
@@ -659,8 +679,18 @@
|
|
659
679
|
where: {q: search, sort: sort}
|
660
680
|
}, 'data');
|
661
681
|
form.val('search_form', {
|
662
|
-
name: '',
|
663
|
-
|
682
|
+
name: '',
|
683
|
+
department: '',
|
684
|
+
bidded_date: '',
|
685
|
+
signed_date: '',
|
686
|
+
search_p_actual_money_time: '',
|
687
|
+
p_stage: '',
|
688
|
+
p_state: '',
|
689
|
+
p_special: '',
|
690
|
+
p_difficulty: '',
|
691
|
+
o_business_deployment: '',
|
692
|
+
p_staff_id: '',
|
693
|
+
p_sale_staff_id: ''
|
664
694
|
})
|
665
695
|
$(".project_list-btn").addClass("selected-btn");
|
666
696
|
return false;
|
@@ -7,6 +7,12 @@
|
|
7
7
|
<input type="text" name="name" class="layui-input">
|
8
8
|
</div>
|
9
9
|
</div>
|
10
|
+
<div class="layui-inline">
|
11
|
+
<label class="layui-form-label">真实姓名</label>
|
12
|
+
<div class="layui-input-inline">
|
13
|
+
<input type="text" name="realname" class="layui-input">
|
14
|
+
</div>
|
15
|
+
</div>
|
10
16
|
<div class="layui-inline">
|
11
17
|
<label class="layui-form-label">单位</label>
|
12
18
|
<div class="layui-input-inline">
|
@@ -178,6 +184,11 @@
|
|
178
184
|
fixed: 'left',
|
179
185
|
templet: "#name"
|
180
186
|
},
|
187
|
+
{
|
188
|
+
field: 'realname',
|
189
|
+
width: 100,
|
190
|
+
title: '真实姓名',
|
191
|
+
},
|
181
192
|
{
|
182
193
|
field: 'school',
|
183
194
|
width: 160,
|
@@ -4,17 +4,24 @@
|
|
4
4
|
<div class="layui-inline">
|
5
5
|
<label class="layui-form-label required">姓名</label>
|
6
6
|
<div class="layui-input-block">
|
7
|
-
<input type="text" name="name" autocomplete="off" lay-verify="required"
|
7
|
+
<input type="text" name="name" autocomplete="off" lay-verify="required" style="width: 198px"
|
8
8
|
class="layui-input" placeholder="请输入" value="<%= @teacher.name %>">
|
9
9
|
</div>
|
10
10
|
</div>
|
11
|
+
<div class="layui-inline">
|
12
|
+
<label class="layui-form-label ">真实姓名</label>
|
13
|
+
<div class="layui-input-block">
|
14
|
+
<input type="text" name="realname" autocomplete="off" lay-verify="required" class="layui-input" placeholder="请输入" value="<%= @teacher.realname %>">
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<br>
|
11
18
|
<div class="layui-inline">
|
12
19
|
<label class="layui-form-label ">职称</label>
|
13
20
|
<div class="layui-input-block">
|
14
21
|
<%= select_tag "professional_title", options_for_select(['教授', '研究员', '副教授', '副研究员', '讲师', '助理研究员', '助理教授'], @teacher.professional_title), { include_blank: true } %>
|
15
22
|
</div>
|
16
23
|
</div>
|
17
|
-
|
24
|
+
|
18
25
|
<div class="layui-inline">
|
19
26
|
<label class="layui-form-label ">职务</label>
|
20
27
|
<div class="layui-input-block">
|
@@ -22,13 +29,13 @@
|
|
22
29
|
class="layui-input" placeholder="请输入" value="<%= @teacher.job %>">
|
23
30
|
</div>
|
24
31
|
</div>
|
32
|
+
<br>
|
25
33
|
<div class="layui-inline">
|
26
34
|
<label class="layui-form-label ">来源</label>
|
27
35
|
<div class="layui-input-block">
|
28
36
|
<%= select_tag "source_id", options_for_select(EducodeSales::Common.where(clazz: 'teacher_source').pluck(:name, :id), @teacher.source_id), { include_blank: true } %>
|
29
37
|
</div>
|
30
38
|
</div>
|
31
|
-
<br>
|
32
39
|
<div class="layui-inline">
|
33
40
|
<label class="layui-form-label ">微信号</label>
|
34
41
|
<div class="layui-input-block">
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class AddMajorEducodeSalesCustomerFollows < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
add_column :educode_sales_customer_follows, :major_id, :integer
|
4
|
+
add_column :educode_sales_businesses, :major_id, :integer
|
5
|
+
add_column :educode_sales_teachers, :realname, :string
|
6
|
+
|
7
|
+
add_column :educode_sales_customer_adds, :department_id, :integer
|
8
|
+
add_column :educode_sales_customer_adds, :major_id, :integer
|
9
|
+
add_column :educode_sales_customer_adds, :sale_id, :integer, comment: '销售经理'
|
10
|
+
add_column :educode_sales_customer_adds, :contact_way, :string, comment: '联系方式'
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: educode_sales
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.70
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
@@ -211,6 +211,7 @@ files:
|
|
211
211
|
- app/models/educode_sales/customer_add.rb
|
212
212
|
- app/models/educode_sales/customer_extension.rb
|
213
213
|
- app/models/educode_sales/customer_follow.rb
|
214
|
+
- app/models/educode_sales/eco_staff.rb
|
214
215
|
- app/models/educode_sales/filter.rb
|
215
216
|
- app/models/educode_sales/follow_up.rb
|
216
217
|
- app/models/educode_sales/idea.rb
|
@@ -606,11 +607,12 @@ files:
|
|
606
607
|
- db/migrate/20230329135141_create_educode_sales_business_watches.rb
|
607
608
|
- db/migrate/20230330141213_create_educode_sales_activity_follow_ups.rb
|
608
609
|
- db/migrate/20230405074036_add_year_to_sale_plans.rb
|
609
|
-
- db/migrate/20230411134203_add_realname_to_teacher.rb
|
610
610
|
- db/migrate/20230412083510_add_p_staff_id_to_businesses.rb
|
611
611
|
- db/migrate/20230412092000_create_business_histories.rb
|
612
612
|
- db/migrate/20230413015619_add_permissions_to_projects.rb
|
613
613
|
- db/migrate/20230413031029_add_pre_time_to_businesses.rb
|
614
|
+
- db/migrate/20230414031409_add_major_educode_sales_customer_follows.rb
|
615
|
+
- db/migrate/20230414035655_create_educode_sales_eco_staffs.rb
|
614
616
|
- lib/educode_sales.rb
|
615
617
|
- lib/educode_sales/engine.rb
|
616
618
|
- lib/educode_sales/version.rb
|