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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5de22a63054e2a25d82a48c86687b07143302a4216d3690cb5431fcf17ca7672
4
- data.tar.gz: b375afaa7854500c9bc3a7dbc6a8f83ef3c86e89bc9d5cf826280fde12102c98
3
+ metadata.gz: 502334cc54a23143806d433d2f8049c0e9ae8961652b6af811d2225e6dfd4ece
4
+ data.tar.gz: 884955d1facd79b398128fa275ca71edfc18802101c1baa1d35a7233f94c768a
5
5
  SHA512:
6
- metadata.gz: 015b587adf4090852c386117efff6d8fd7ea39a3a0bb6191d806cc96a68cb2c83e8cd487de8bcc7a221052fb4ebbe1eb0a67660865ddaadaf8746f4e309273f7
7
- data.tar.gz: aae61faba2cf647fa61460ba958c89d761d8321a9eaa0bdc66855a8336bdc6552387f7d48f86fb9cd400a6e478ae58c7153e7311c5c85adc3de51f39a95fbc01
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.find(params[:department_id]).update(name: params[:department])
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
@@ -0,0 +1,6 @@
1
+ module EducodeSales
2
+ class EcoStaff < ApplicationRecord
3
+ belongs_to :staff
4
+ belongs_to :sourcable, :polymorphic => true
5
+ end
6
+ end
@@ -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
- end
70
+ json.p_deploy_time d.p_deploy_time
71
+ end
71
72
  end
72
73
 
73
74
  json.totalRow do
@@ -101,6 +101,7 @@
101
101
  });
102
102
 
103
103
  })
104
+ });
104
105
  function demo(){
105
106
  layer.closeAll()
106
107
  business_id = parent.business_id
@@ -120,5 +121,5 @@
120
121
  layer.full(sindex);
121
122
  });
122
123
  }
123
- });
124
+
124
125
  </script>
@@ -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", @@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;">
@@ -145,7 +145,6 @@
145
145
  field: 'department',
146
146
  width: 160,
147
147
  title: '部门',
148
- templet: "#department"
149
148
  },
150
149
  {
151
150
  field: 'major',
@@ -125,7 +125,7 @@
125
125
  </div>
126
126
  </div>
127
127
  </div>
128
- <div class="layui-row" style="padding-top: 5px;display: none">
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;display: none">
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="p_actual_money_time" name="p_actual_money_time" autocomplete="off" placeholder="请选择时间" value="<%= @project&.p_actual_money_time&.to_s(:date) %>" class="layui-input">
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">回款:</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: '#p_pre_money_time'
198
+ elem: '#p_actual_money_time'
199
199
  });
200
200
  laydate.render({
201
- elem: '#p_actual_money_time'
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 "p_special", 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 } %>
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 "p_special", 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 } %>
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: '', department: '', bidded_date: '', signed_date: '', search_p_actual_money_time: '',
480
- p_stage: '', p_state: '', p_special: '', p_difficulty: '', o_business_deployment: ''
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: '', department: '', bidded_date: '', signed_date: '', search_p_actual_money_time: '',
646
- p_stage: '', p_state: '', p_special: '', p_difficulty: '', o_business_deployment: ''
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: '', department: '', bidded_date: '', signed_date: '', search_p_actual_money_time: '',
663
- p_stage: '', p_state: '', p_special: '', p_difficulty: '', o_business_deployment: ''
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
- <br>
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">
@@ -38,6 +38,7 @@ json.data do
38
38
  json.teacher_assist d.teacher_assign_follows.map{|t| t.staff.user.real_name}.join(',')
39
39
  teacher_follows_count += d.teacher_follows_count
40
40
  courses_counts += d.courses_count
41
+ json.realname d.realname
41
42
  end
42
43
  end
43
44
 
@@ -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
@@ -0,0 +1,11 @@
1
+ class CreateEducodeSalesEcoStaffs < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_eco_staffs do |t|
4
+ t.references :staff, index: true
5
+ t.string :sourcable_type
6
+ t.integer :sourcable_id
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.9.69'
2
+ VERSION = '0.9.70'
3
3
  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.69
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
@@ -1,5 +0,0 @@
1
- class AddRealnameToTeacher < ActiveRecord::Migration[5.2]
2
- def change
3
- add_column :teachers, :realname, :string
4
- end
5
- end