educode_sales 0.9.55 → 0.9.56

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: d84bb1c7e9e34758e91acc40d652ddd0d5349078f7415634e9b543354e801f7a
4
- data.tar.gz: e27fd016f131694941d502c8e9111fc3eb530f8f95484af1518754966602ca80
3
+ metadata.gz: d43d1ba82cba7ea2e8d642794ff31eea996e7c404c814a9bd7c0b2f01ce089b2
4
+ data.tar.gz: 4260ff16cbd4be8cd7346d33d3ef621d8f39890f909843a8bc242a80d7670df6
5
5
  SHA512:
6
- metadata.gz: be84a8610f48ec6db17c36264699f12e4de5adf8d3452b4a7ef07940c85d5003ad4f1667ae90c93f5434fbc781ada0fc08e8a2005c96267c4a74435a143bb06d
7
- data.tar.gz: 78f9a6bdff957b4459d3792992c86a9bc7b53507e2f4acd51626535d9be53e474072f766196b71f6b626e896c235f90d2c18eb83ee4ec4ff540c2af82a10caf0
6
+ metadata.gz: b1608e8de32122e8d73a535740d92655b08c1961657d2a638690e45647a528bbf82b9631e45982024223a7ddf60c35d263c2c2e942c1b7937890cc247b7b845b
7
+ data.tar.gz: 26d67e6a7bb5b1a0b0e32bbbdabdc5df567012575c5518c674b7c23bb31beb13c601244e86a5269f7e85c64db123bf014fce2f80d0b6ae7b73403446ebfa1b64
@@ -41,12 +41,13 @@ module EducodeSales
41
41
  end
42
42
  end
43
43
  @year = params[:q].present? && params[:q][:assessment_year].present? ? params[:q][:assessment_year]:Time.now.year
44
- @assessments_id = params[:q].present? && params[:q][:assessment_id].present? ? params[:q][:assessment_id]: '1'
44
+ # @assessments_id = params[:q].present? && params[:q][:assessment_id].present? ? params[:q][:assessment_id]: '1'
45
45
  @assessments = @assessments.where("assessment_year >= ? and assessment_year <= ?", "#{@year}-01-01 00:00:00".to_date, "#{@year}-12-31 23:59:00".to_date)
46
- @assessments = @assessments.where(assessment: @assessments_id).order("updated_at desc")
46
+ @assessments = @assessments.where(assessment: params[:q][:assessment_id]) if params[:q].present? && params[:q][:assessment_id].present?
47
47
  if params[:q].present? && params[:q][:staff_id].present?
48
- @assessments = @assessments.where(staff_id: params[:q][:staff_id]).order("updated_at desc")
48
+ @assessments = @assessments.where(staff_id: params[:q][:staff_id])
49
49
  end
50
+ @assessments = @assessments.page(params[:page]).per(params[:limit]).order("created_at desc")
50
51
  end
51
52
  end
52
53
  end
@@ -87,6 +88,7 @@ module EducodeSales
87
88
  begin
88
89
  assessment = AssessmentsSetting.new(params_create)
89
90
  assessment.user_id = current_user.user_id
91
+ assessment.total_score = (params[:first_quarter_score].to_f + params[:second_quarter_score].to_f + params[:third_quarter_score].to_f + params[:fourth_quarter_score].to_f).round(2)
90
92
  assessment.assessment_year = "#{params[:assessment_year]}-01-01"
91
93
  AssessmentsSetting.transaction do
92
94
  params[:staffs_ids].split(",").each do |d|
@@ -118,6 +120,7 @@ module EducodeSales
118
120
  # 根新
119
121
  def update
120
122
  @assessment = AssessmentsSetting.find_by(id: params[:id])
123
+ @assessment.total_score = (params[:first_quarter_score].to_f + params[:second_quarter_score].to_f + params[:third_quarter_score].to_f + params[:fourth_quarter_score].to_f).round(2)
121
124
  @assessment.update_attributes(params_update)
122
125
  render_success
123
126
  end
@@ -382,12 +385,16 @@ module EducodeSales
382
385
  private
383
386
  def params_create
384
387
  params.permit( :annual, :assessment,:assessment_year, :first_quarter, :second_quarter, :third_quarter, :fourth_quarter,
385
- :january, :february, :march, :april, :may, :june, :july, :august, :september, :october, :november, :december)
388
+ :january, :february, :march, :april, :may, :june, :july, :august, :september, :october, :november, :december,
389
+ :first_quarter_score, :second_quarter_score, :third_quarter_score, :fourth_quarter_score,
390
+ :january_score, :february_score, :march_score, :april_score, :may_score, :june_score, :july_score, :august_score, :september_score, :october_score, :november_score, :december_score, :cycle)
386
391
  end
387
392
 
388
393
  def params_update
389
394
  params.permit( :annual, :first_quarter, :second_quarter, :third_quarter, :fourth_quarter,
390
- :january, :february, :march, :april, :may, :june, :july, :august, :september, :october, :november, :december)
395
+ :january, :february, :march, :april, :may, :june, :july, :august, :september, :october, :november, :december,
396
+ :first_quarter_score, :second_quarter_score, :third_quarter_score, :fourth_quarter_score,
397
+ :january_score, :february_score, :march_score, :april_score, :may_score, :june_score, :july_score, :august_score, :september_score, :october_score, :november_score, :december_score)
391
398
  end
392
399
 
393
400
  end
@@ -55,7 +55,11 @@ module EducodeSales
55
55
  {value: d.id, name: d.name, selected: bussiness_type.include?(d.extras)}
56
56
  end
57
57
 
58
- gon.business_step = Common.where(clazz: 'business_step').order("position").map do |d|
58
+ gon.business_step = Common.where(clazz: 'business_step', name: ['已中标', '已签单', '已验收', '回款中', '服务中', '已结束']).order("position").map do |d|
59
+ {value: d.id, name: d.name, selected: business_step.include?(d.name)}
60
+ end
61
+
62
+ gon.contract_business_step = Common.where(clazz: 'business_step').order("position").map do |d|
59
63
  {value: d.id, name: d.name, selected: business_step.include?(d.name)}
60
64
  end
61
65
 
@@ -95,7 +99,7 @@ module EducodeSales
95
99
  end
96
100
  end
97
101
  format.json do
98
- if params[:q] && (params[:q][:clazz] == 'area' || params[:q][:clazz] == 'special')
102
+ if params[:q] && (params[:q][:clazz] == 'area' || params[:q][:clazz] == 'special' || params[:q][:clazz] == 'delete_list')
99
103
  if params[:q][:clazz] == 'special'
100
104
  school_ids = []
101
105
  # 专项商机
@@ -110,6 +114,8 @@ module EducodeSales
110
114
 
111
115
  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
112
116
  @businesses = Business.joins("JOIN departments AS dp ON educode_sales_businesses.department_id = dp.id").where("dp.school_id in (?)", school_ids)
117
+ elsif params[:q][:clazz] == 'delete_list'
118
+ @businesses = Business.unscoped.where.not(deleted_at: nil)
113
119
  end
114
120
  else
115
121
  if @current_admin.is_admin?
@@ -180,11 +186,21 @@ module EducodeSales
180
186
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
181
187
  ").where("educode_sales_follow_ups.staff_id = ?", params[:q][:staff_id]).ids
182
188
  business_ids = part_a_ids + part_b_ids
183
- @businesses = EducodeSales::Business.where(id:business_ids)
189
+ if params[:q][:clazz] == 'delete_list'
190
+ @businesses = EducodeSales::Business.unscoped.where(id:business_ids)
191
+ else
192
+ @businesses = EducodeSales::Business.where(id:business_ids)
193
+ end
184
194
  end
185
195
  if params[:q].present? && params[:q][:business_type].present?
186
196
  @businesses = @businesses.where("educode_sales_businesses.clazz_id in (?)", params[:q][:business_type].split(",").map(&:to_i))
187
197
  end
198
+ if params[:q].present? && params[:q][:contract].present?
199
+ contract_ids = Common.where(clazz: '商机阶段', name: ['已中标', '已签单', '已验收', '回款中', '服务中', '已结束']).pluck(:id)
200
+ @businesses = @businesses.joins("
201
+ JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
202
+ ").where("educode_sales_follow_ups.stage_id in (?)", contract_ids)
203
+ end
188
204
  if params[:q].present? && params[:q][:business_step].present?
189
205
  @businesses = @businesses.joins("
190
206
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
@@ -4,10 +4,35 @@ module EducodeSales
4
4
  belongs_to :staff
5
5
  belongs_to :user
6
6
 
7
-
8
- CLAZZ = {7 => '中标指标', 1 => '签单指标', 2 => '回款指标', 3 => '拜访量', 4 => '新增商机数', 5 => '大v建课指标', 6 => '课堂使用指标'}
9
-
10
-
7
+ enum cycle: ['按季', '按月']
8
+
9
+
10
+ CLAZZ = {
11
+ 7 => '销售指标', 1 => '签单指标', 2 => '回款指标', 3 => '商机跟进', 4 => '商机挖掘-A类商机', 5 => '商机挖掘-B类商机', 6 => '客户拜访-线下拜访', 8 => '客户拜访-线上拜访',
12
+ 9 => '注册数据-学生', 10 => '注册数据-老师', 11 => '会议组织-区域性会议', 12 => '会议组织-单校会议', 13 => '生态合作-虚拟教研室', 14 => '生态合作-特软', 15 => '生态合作-大V合作',
13
+ 16 => '重要事项', 17 => '临时任务'
14
+ }
15
+
16
+
17
+
18
+ def unit_name
19
+ case self.assessment
20
+ when 1, 2, 7
21
+ '万元'
22
+ when 3
23
+ '条'
24
+ when 4, 5
25
+ '项'
26
+ when 6, 8, 11, 12
27
+ '次'
28
+ when 9, 10, 15
29
+ '人'
30
+ when 16, 17
31
+ '件'
32
+ when 13, 14
33
+ '个人'
34
+ end
35
+ end
11
36
  # todo 签单金额 : assessment_id(1)
12
37
  # todo 回款金额 : assessment_id(2)
13
38
  # todo 拜访量 : assessment_id(3)
@@ -17,15 +42,6 @@ module EducodeSales
17
42
 
18
43
 
19
44
 
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
45
  end
30
46
  end
31
47
 
@@ -35,7 +35,7 @@
35
35
  </div>
36
36
  <script type="text/html" id="progress_Toolbar">
37
37
  <div class="layui-btn-container">
38
- <span class="table-label">指标完成情况 单位:万元</span>
38
+ <span class="table-label">指标完成情况</span>
39
39
  <% if can?(:export_result, EducodeSales::AssessmentsSetting) %>
40
40
  <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm data-count-edit export_more-btn pull-right" style="color: #0000FF;" data-name="export" data-id="export">
41
41
  导出<i class="layui-icon layui-icon-down layui-nav-more" style="font-size: 12px"></i></button>
@@ -76,7 +76,7 @@
76
76
  ,{field: 'name', title: '考核人员', width: 120, rowspan: 6,fixed:'left'}
77
77
  ,{field: 'year', align: 'center', title: '考核年度', width: 100, rowspan: 6}
78
78
  ,{field: 'assessment', title: '指标类型', width: 120, rowspan: 6}
79
- ,{field: 'name', title: '绩效分', width: 120, rowspan: 6}
79
+ // ,{field: 'name', title: '分值', width: 120, rowspan: 6}
80
80
  ,{align: 'center', title: '年度任务', colspan: 5}
81
81
  ,{align: 'center', title: '一季度任务', colspan: 4}
82
82
  ,{align: 'center', title: '二季度任务', colspan: 5}
@@ -93,26 +93,26 @@
93
93
  ,{field: 'quarter_1', title: '任务', width: 100, totalRow:true}
94
94
  ,{field: 'progress_1', title: '完成', width: 100, totalRow:true}
95
95
  ,{field: 'rate_1', title: '完成率', width: 100, totalRow:true}
96
- ,{field: 'score_1', title: '绩效得分', width: 100, totalRow:true}
96
+ ,{field: 'score_1', title: '分值', width: 100, totalRow:true}
97
97
 
98
98
  ,{field: 'quarter_2', title: '任务', width: 100, totalRow:true}
99
99
  ,{field: 'quarter_2_total', title: '累计任务', width: 100, totalRow:true}
100
100
  ,{field: 'progress_2', title: '完成', width: 100, totalRow:true}
101
101
  ,{field: 'rate_2', title: '完成率', width: 100, totalRow:true}
102
- ,{field: 'score_2', title: '绩效得分', width: 100, totalRow:true}
102
+ ,{field: 'score_2', title: '分值', width: 100, totalRow:true}
103
103
 
104
104
 
105
105
  ,{field: 'quarter_3', title: '任务', width: 100, totalRow:true}
106
106
  ,{field: 'quarter_3_total', title: '累计任务', width: 100, totalRow:true}
107
107
  ,{field: 'progress_3', title: '完成', width: 100, totalRow:true}
108
108
  ,{field: 'rate_3', title: '完成率', width: 100, totalRow:true}
109
- ,{field: 'score_3', title: '绩效得分', width: 100, totalRow:true}
109
+ ,{field: 'score_3', title: '分值', width: 100, totalRow:true}
110
110
 
111
111
  ,{field: 'quarter_4', title: '任务', width: 100, totalRow:true}
112
112
  ,{field: 'quarter_4_total', title: '累计任务', width: 100, totalRow:true}
113
113
  ,{field: 'progress_4', title: '完成', width: 100, totalRow:true}
114
114
  ,{field: 'rate_4', title: '完成率', width: 100, totalRow:true}
115
- ,{field: 'score_4', title: '绩效得分', width: 100, totalRow:true}
115
+ ,{field: 'score_4', title: '分值', width: 100, totalRow:true}
116
116
 
117
117
  ]]
118
118
  });