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 +4 -4
- data/app/controllers/educode_sales/assessments_controller.rb +12 -5
- data/app/controllers/educode_sales/businesses_controller.rb +19 -3
- data/app/models/educode_sales/assessments_setting.rb +29 -13
- data/app/views/educode_sales/assessments/_finished.html.erb +6 -6
- data/app/views/educode_sales/assessments/_setup.html.erb +294 -66
- data/app/views/educode_sales/assessments/edit.html.erb +233 -121
- data/app/views/educode_sales/assessments/index.json.jbuilder +22 -1
- data/app/views/educode_sales/assessments/new.html.erb +259 -105
- data/app/views/educode_sales/businesses/_contract.html.erb +1007 -0
- data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +1 -0
- data/app/views/educode_sales/businesses/index.html.erb +58 -8
- data/app/views/educode_sales/businesses/index.json.jbuilder +2 -1
- data/app/views/educode_sales/teachers/_index.html.erb +1 -1
- data/app/views/educode_sales/teachers/edit.html.erb +0 -7
- data/app/views/educode_sales/teachers/index.json.jbuilder +2 -2
- data/app/views/educode_sales/teachers/new.html.erb +0 -6
- data/db/migrate/20230306131055_add_score_to_assessments_settings.rb +26 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +8 -7
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d43d1ba82cba7ea2e8d642794ff31eea996e7c404c814a9bd7c0b2f01ce089b2
|
4
|
+
data.tar.gz: 4260ff16cbd4be8cd7346d33d3ef621d8f39890f909843a8bc242a80d7670df6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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:
|
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])
|
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
|
-
|
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
|
-
|
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"
|
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: '
|
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: '
|
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: '
|
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: '
|
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: '
|
115
|
+
,{field: 'score_4', title: '分值', width: 100, totalRow:true}
|
116
116
|
|
117
117
|
]]
|
118
118
|
});
|