educode_sales 0.9.77 → 0.9.78

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: b3c38e0feb88d220e6ec75559d93b49c38d308dd939efbb54f37b1afb106a28f
4
- data.tar.gz: d9daee968f4335493daf6ffd1efaab8769cbb0d71c2d2869f84f1d074aea7a3f
3
+ metadata.gz: 7b22a3361ca68bbfaa0704aa28aeecb7f2906973b836971183936c3c13910fbe
4
+ data.tar.gz: 35b7435979cecacdc00bae4b28bf3112e8e6cb5a1b36cd2a8035e91fc817d36b
5
5
  SHA512:
6
- metadata.gz: a092214b3fe5caa3b0767a87a9eb936911d98d57b489a4e6da26c0c0b2e3c848bfdce972648fc4cda518fd42d7a1a688fb97eb1cac07c5cab9885fbda3548d87
7
- data.tar.gz: 2ef105b4bf305ef64d4c310522bcb451cfa08c3c034eda3db3552c4473d268967994d58979b1359cf2b614b41d95cedac6466d1b7f5419d32132b06ea2d994a2
6
+ metadata.gz: 18719f022f0e3d7d1d91f4f111ecd8b234b450e5244874bf21fce753220e2a7c8e0bb02341c88ac8e6d2f9a5dd4f6540d72c41b1db9f0b1a76025654b8c006d0
7
+ data.tar.gz: 5a6d3f438a743d0004351c9d2361c60b2b79da3d468a4776954fc577f263bcd784022bca5c3ba2cddb094dfba9a66be609ef7614469ba5b6b66461183f8decbe
@@ -17,18 +17,18 @@ module EducodeSales
17
17
  # 项目类型
18
18
  bussiness_type = EducodeSales::Business.include_types(params[:type]) || []
19
19
  end
20
-
20
+
21
21
  business_step = []
22
22
  if params[:step]
23
23
  # 项目阶段
24
24
  business_step = EducodeSales::Business.include_steps(params[:step]) || []
25
25
  end
26
-
27
-
26
+
27
+
28
28
  gon.business_type = Common.where(clazz: 'business_type').map do |d|
29
29
  {value: d.id, name: d.name, selected: bussiness_type.include?(d.extras)}
30
30
  end
31
-
31
+
32
32
  gon.business_step = Common.where(clazz: 'business_step', name: ['已中标', '已签单', '已验收', '回款中', '服务中', '已结束']).order("position").map do |d|
33
33
  {value: d.id, name: d.name, selected: business_step.include?(d.name)}
34
34
  end
@@ -98,7 +98,7 @@ module EducodeSales
98
98
  if params[:q].present? && params[:q][:business_type].present?
99
99
  @businesses = @businesses.where("educode_sales_businesses.clazz_id in (?)", params[:q][:business_type].split(",").map(&:to_i))
100
100
  end
101
-
101
+
102
102
  if params[:q].present? && params[:q][:business_step].present?
103
103
  @businesses = @businesses.joins("
104
104
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
@@ -158,14 +158,14 @@ module EducodeSales
158
158
  # 销售经理
159
159
  @businesses = @businesses.joins("LEFT JOIN educode_sales_assign_follow_ups ON educode_sales_assign_follow_ups.follow_up_id = educode_sales_businesses.last_follow_up_id").
160
160
  where("(educode_sales_assign_follow_ups.id IS NOT NULL AND educode_sales_assign_follow_ups.staff_id = ?) OR (educode_sales_assign_follow_ups.id IS NULL AND educode_sales_businesses.staff_id = ?)", params[:q][:sales_staff_id], params[:q][:sales_staff_id])
161
-
161
+
162
162
  end
163
163
 
164
164
  if params[:q].present? && params[:q][:after_sales_staff_id].present?
165
165
  # 售后工程师
166
166
  @businesses = @businesses.joins("LEFT JOIN educode_sales_assign_staffs ON educode_sales_assign_staffs.sourcable_type = 'EducodeSales::Business' AND educode_sales_assign_staffs.sourcable_id = educode_sales_businesses.id").
167
167
  where("educode_sales_assign_staffs.staff_id = ?", params[:q][:after_sales_staff_id])
168
-
168
+
169
169
  end
170
170
 
171
171
  # 商机变化
@@ -225,6 +225,8 @@ module EducodeSales
225
225
  common = Common.find_by(clazz: 'staff_type', name: '销售')
226
226
  staffs = Staff.joins(:user).where(job_type: common.id).where.not(role_id: 11)
227
227
  @staffs = staffs.map { |d| [d.user.real_name, d.id]}
228
+ role = Role.find_by(name: '售后工程师')
229
+ @after_sales_staffs = Staff.joins(:user).where(role_id: role.id).map { |d| [d.user.real_name, d.id]}
228
230
  end
229
231
 
230
232
  def new_follow_up
@@ -332,7 +334,7 @@ module EducodeSales
332
334
  follow_up.staff = @current_admin
333
335
 
334
336
  last_follow_up = @business.last_follow_up
335
-
337
+
336
338
  if follow_up.save!
337
339
  contract_lists = EducodeSales::ContractDateList.clazzs.invert
338
340
  data.each_with_index do |s, i|
@@ -357,9 +359,11 @@ module EducodeSales
357
359
  end
358
360
 
359
361
  def assign
360
- common = Common.find_by(clazz: 'staff_type', name: '销售')
361
- staffs = Staff.joins(:user).where(job_type: common.id).where.not(role_id: 11)
362
- gon.sales_staffs = staffs.map { |d| {name: d.user.real_name, value: d.id } }
362
+ role = Role.find_by( name: '售后工程师')
363
+ staffs = Staff.joins(:user).where(role_id: role.id)
364
+ business = Business.find(params[:id])
365
+ selected_staff_ids = business.assign_staffs.pluck(:staff_id)
366
+ gon.sales_staffs = staffs.map { |d| {name: d.user.real_name, value: d.id, selected: selected_staff_ids.include?(d.id) } }
363
367
  render layout: false
364
368
  end
365
369
 
@@ -385,9 +389,12 @@ module EducodeSales
385
389
 
386
390
  def assign_staff
387
391
  @business = Business.find(params[:id])
392
+ assign_staffs = []
388
393
  params[:to_id].split(",").each do |i|
389
- @business.assign_staffs.create({staff_id: i})
394
+ assign_staffs << AssignStaff.find_or_initialize_by(sourcable_id: @business.id, staff_id: i, sourcable_type: "EducodeSales::Business")
390
395
  end
396
+ @business.assign_staffs = assign_staffs
397
+ @business.save
391
398
  render_success
392
399
  end
393
400
 
@@ -19,7 +19,7 @@ module EducodeSales
19
19
  has_many :business_watches, dependent: :destroy
20
20
  has_many :business_histories, dependent: :destroy
21
21
 
22
- has_many :assign_staffs, as: :sourcable # 售后人员
22
+ has_many :assign_staffs, as: :sourcable, dependent: :destroy # 售后人员
23
23
 
24
24
  # 关联关注
25
25
  has_many :users, :class_name => 'EducodeSales::BusinessRelationShip', foreign_key: 'business_id', :dependent => :destroy
@@ -46,7 +46,7 @@
46
46
  <div class="layui-inline">
47
47
  <label class="layui-form-label">售后工程师</label>
48
48
  <div class="layui-input-inline">
49
- <%= select_tag "after_sales_staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true , "lay-search": "" } %>
49
+ <%= select_tag "after_sales_staff_id", options_for_select(@after_sales_staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true , "lay-search": "" } %>
50
50
  </div>
51
51
  </div>
52
52
  <div class="layui-inline show_item_contract" style="<%= params[:name] || params[:type] ? '' : 'display:none;' %>">
@@ -161,7 +161,7 @@
161
161
  elem: '#date',
162
162
  range: true
163
163
  });
164
-
164
+
165
165
  laydate.render({
166
166
  elem: '#invitation_at',
167
167
  range: true
@@ -525,7 +525,7 @@
525
525
  },
526
526
  where: {q: search, sort: sort}
527
527
  }, 'data');
528
-
528
+
529
529
  return false;
530
530
  });
531
531
 
@@ -533,7 +533,7 @@
533
533
  var field = data.field;
534
534
  form.val('search_form', {
535
535
  name: '', department: '', staff_id: '', business_type: '', business_step: '',
536
- place_id: '', date: '', area: '', invitation_at: '', business_year: '', number: ''
536
+ place_id: '', date: '', area: '', invitation_at: '', business_year: '', number: '', o_business_deployment: '',after_sales_staff_id: ''
537
537
  })
538
538
  business_type_list.setValue([])
539
539
  business_step_list.setValue([])
@@ -581,10 +581,10 @@
581
581
  layer.full(sindex);
582
582
  });
583
583
  return false;
584
- }
584
+ }
585
585
  });
586
-
587
-
586
+
587
+
588
588
  });
589
589
  </script>
590
590
  <style>
@@ -37,7 +37,7 @@
37
37
  request.post('missions/contracts/' + parent.id +"/assign_staff", {to_id: staff_list_select.getValue('valueStr')}, function (res) {
38
38
  layer.close(index);
39
39
  layer.close(parentIndex)
40
- // parent.table.reload('contact_table')
40
+ parent.table.reload('contact_table')
41
41
  })
42
42
  });
43
43
  return false;
@@ -2,60 +2,60 @@
2
2
  <form class="layui-form form-value">
3
3
  <div class="layui-form-item" style="padding: 10px 25px 0;">
4
4
  <div class="layui-inline">
5
- <label class="layui-form-label">单位:</label>
5
+ <label class="layui-form-label" style="width: 160px;">单位:</label>
6
6
  <div class="layui-input-inline">
7
7
  <%= @follow_up.business.department&.school&.name %>
8
8
  </div>
9
9
  </div>
10
10
  <%if @follow_up.business.number.present?%>
11
11
  <div class="layui-inline">
12
- <label class="layui-form-label">编号:</label>
12
+ <label class="layui-form-label" style="width: 160px;">编号:</label>
13
13
  <div class="layui-input-inline">
14
14
  <%= @follow_up.business.number %>
15
15
  </div>
16
16
  </div>
17
17
  <%end %>
18
18
  <div class="layui-inline">
19
- <label class="layui-form-label">部门:</label>
19
+ <label class="layui-form-label" style="width: 160px;">部门:</label>
20
20
  <div class="layui-input-inline">
21
21
  <%= @follow_up.business.department&.name %>
22
22
  </div>
23
23
  </div>
24
24
  <br>
25
25
  <div class="layui-inline">
26
- <label class="layui-form-label">项目类型:</label>
26
+ <label class="layui-form-label" style="width: 160px;">项目类型:</label>
27
27
  <div class="layui-input-inline">
28
28
  <%= @follow_up.clazz.name %>
29
29
  </div>
30
30
  </div>
31
31
  <div class="layui-inline">
32
- <label class="layui-form-label">项目阶段:</label>
32
+ <label class="layui-form-label" style="width: 160px;">项目阶段:</label>
33
33
  <div class="layui-input-inline">
34
34
  <%= @follow_up.stage.name %>
35
35
  </div>
36
36
  </div>
37
37
  <br>
38
38
  <div class="layui-inline">
39
- <label class="layui-form-label">招标时间:</label>
39
+ <label class="layui-form-label" style="width: 160px;">招标时间:</label>
40
40
  <div class="layui-input-inline">
41
41
  <%= @follow_up.invitation_at.to_s %>
42
42
  </div>
43
43
  </div>
44
44
  <div class="layui-inline">
45
- <label class="layui-form-label">中标时间:</label>
45
+ <label class="layui-form-label" style="width: 160px;">中标时间:</label>
46
46
  <div class="layui-input-inline">
47
47
  <%= @follow_up.bidded_date.to_s %>
48
48
  </div>
49
49
  </div>
50
50
  <br>
51
51
  <div class="layui-inline">
52
- <label class="layui-form-label">签单时间:</label>
52
+ <label class="layui-form-label" style="width: 160px;">签单时间:</label>
53
53
  <div class="layui-input-inline">
54
54
  <%= @follow_up.signed_date.to_s %>
55
55
  </div>
56
56
  </div>
57
57
  <div class="layui-inline">
58
- <label class="layui-form-label">验收时间:</label>
58
+ <label class="layui-form-label" style="width: 160px;">验收时间:</label>
59
59
  <div class="layui-input-inline">
60
60
  <%= @follow_up.reception_at.to_s %>
61
61
  </div>
@@ -64,7 +64,7 @@
64
64
  <br>
65
65
  <%if @follow_up.clazz_id == EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.id %>
66
66
  <div class="layui-inline">
67
- <label class="layui-form-label">服务期:</label>
67
+ <label class="layui-form-label" style="width: 160px;">服务期:</label>
68
68
  <div class="layui-input-inline">
69
69
  <%= @follow_up.service_start_time.to_s + "-" + @follow_up.service_end_time.to_s %>
70
70
  </div>
@@ -72,7 +72,7 @@
72
72
  <%end %>
73
73
  <%if @follow_up.clazz_id == EducodeSales::Common.find_by(extras: EducodeSales::Common::OTYPE)&.id %>
74
74
  <div class="layui-inline">
75
- <label class="layui-form-label">部署类型:</label>
75
+ <label class="layui-form-label" style="width: 160px;">部署类型:</label>
76
76
  <div class="layui-input-inline">
77
77
  <%=@show_follow_recored_deployment%>
78
78
  </div>
@@ -81,46 +81,46 @@
81
81
  <br>
82
82
 
83
83
  <div class="layui-inline">
84
- <label class="layui-form-label">中标额:</label>
84
+ <label class="layui-form-label" style="width: 160px;">中标额:</label>
85
85
  <div class="layui-input-inline">
86
86
  <%= @follow_up.total_amount.to_f.round(6) %>万
87
87
  </div>
88
88
  </div>
89
89
  <div class="layui-inline">
90
- <label class="layui-form-label">合同额:</label>
90
+ <label class="layui-form-label" style="width: 160px;">合同额:</label>
91
91
  <div class="layui-input-inline">
92
92
  <%= @follow_up.actual_amount.to_f.round(6) %>万
93
93
  </div>
94
94
  </div>
95
95
  <br>
96
96
  <div class="layui-inline">
97
- <label class="layui-form-label">渠道:</label>
97
+ <label class="layui-form-label" style="width: 160px;">渠道:</label>
98
98
  <div class="layui-input-inline">
99
99
  <%= @follow_up.place&.name %>
100
100
  </div>
101
101
  </div>
102
102
  <div class="layui-inline">
103
- <label class="layui-form-label">渠道分成:</label>
103
+ <label class="layui-form-label" style="width: 160px;">渠道分成:</label>
104
104
  <div class="layui-input-inline">
105
105
  <%= @follow_up.divide_amount.to_f.round(6) %>万
106
106
  </div>
107
107
  </div>
108
108
  <br/>
109
109
  <div class="layui-inline">
110
- <label class="layui-form-label">预算金额:</label>
110
+ <label class="layui-form-label" style="width: 160px;">预算金额:</label>
111
111
  <div class="layui-input-inline">
112
112
  <%= @follow_up.budget_amount.to_f.round(6) %>万
113
113
  </div>
114
114
  </div>
115
115
  <div class="layui-inline">
116
- <label class="layui-form-label">分成比例:</label>
116
+ <label class="layui-form-label" style="width: 160px;">分成比例:</label>
117
117
  <div class="layui-input-inline">
118
118
  <%= @follow_up.divide_rate.to_f.round(2) %>%
119
119
  </div>
120
120
  </div>
121
121
  <div class="layui-form-item">
122
122
  <div class="layui-inline">
123
- <label class="layui-form-label">所属年度:</label>
123
+ <label class="layui-form-label" style="width: 160px;">所属年度:</label>
124
124
  <div class="layui-input-inline">
125
125
  <%= @follow_up&.year %>年
126
126
  </div>
@@ -128,13 +128,13 @@
128
128
  </div>
129
129
  <div class="layui-form-item">
130
130
  <div class="layui-inline">
131
- <label class="layui-form-label">项目资金来源:</label>
131
+ <label class="layui-form-label" style="width: 160px;">项目资金来源:</label>
132
132
  <div class="layui-input-inline">
133
133
  <%= @follow_up&.funding_source %>
134
134
  </div>
135
135
  </div>
136
136
  <div class="layui-inline">
137
- <label class="layui-form-label">签约单位:</label>
137
+ <label class="layui-form-label" style="width: 160px;">签约单位:</label>
138
138
  <div class="layui-input-inline" style="width: 300px">
139
139
  <%= @follow_up.signed_department&.school&.name || '' %>
140
140
  </div>
@@ -142,24 +142,24 @@
142
142
  </div>
143
143
  <div class="layui-form-item">
144
144
  <label class="layui-form-label" style="width: 150px;">售后工程师:</label>
145
- <div class="layui-input-inline">
145
+ <div class="layui-input-inline" style="width: 350px;">
146
146
  <%= @business.assign_staffs.map{|d| d.staff.user.full_name}.join("、") %>
147
147
  </div>
148
148
  </div>
149
149
  <div class="layui-form-item layui-form-text">
150
- <label class="layui-form-label"><%= @trend.clazz %>:</label>
150
+ <label class="layui-form-label" style="width: 160px;"><%= @trend.clazz %>:</label>
151
151
  <div class="layui-input-block" style="padding-right: 20px;">
152
152
  <pre><%= @trend.content %></pre>
153
153
  </div>
154
154
  </div>
155
155
  <div class="layui-form-item layui-form-text">
156
- <label class="layui-form-label">时间:</label>
156
+ <label class="layui-form-label" style="width: 160px;">时间:</label>
157
157
  <div class="layui-input-block" style="padding-right: 20px;">
158
158
  <pre><%= @follow_up.created_at.to_s %></pre>
159
159
  </div>
160
160
  </div>
161
161
  <div class="layui-form-item layui-form-text">
162
- <label class="layui-form-label">跟进人:</label>
162
+ <label class="layui-form-label" style="width: 160px;">跟进人:</label>
163
163
  <div class="layui-input-block" style="padding-right: 20px;">
164
164
  <pre><%= @follow_up.staff.user.real_name %></pre>
165
165
  </div>
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.9.77'
2
+ VERSION = '0.9.78'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.77
4
+ version: 0.9.78
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-03 00:00:00.000000000 Z
11
+ date: 2023-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -685,7 +685,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
685
685
  - !ruby/object:Gem::Version
686
686
  version: '0'
687
687
  requirements: []
688
- rubygems_version: 3.0.9
688
+ rubygems_version: 3.0.0
689
689
  signing_key:
690
690
  specification_version: 4
691
691
  summary: Summary of EducodeSales.