educode_sales 1.10.59 → 1.10.71
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/assets/javascripts/educode_sales/application.js +1 -0
- data/app/assets/javascripts/educode_sales/functions.js +24 -0
- data/app/controllers/educode_sales/application_controller.rb +11 -3
- data/app/controllers/educode_sales/business_courses_controller.rb +19 -8
- data/app/controllers/educode_sales/follow_ups_controller.rb +4 -0
- data/app/controllers/educode_sales/plans_controller.rb +448 -124
- data/app/controllers/educode_sales/shixuns_controller.rb +20 -10
- data/app/controllers/educode_sales/subjects_controller.rb +10 -6
- data/app/controllers/educode_sales/teacher_follows_controller.rb +4 -0
- data/app/controllers/educode_sales/teachers_controller.rb +3 -0
- data/app/models/educode_sales/business.rb +5 -5
- data/app/models/educode_sales/sales_target.rb +10 -0
- data/app/models/educode_sales/sales_target_log.rb +11 -0
- data/app/views/educode_sales/business_courses/index.html.erb +1 -1
- data/app/views/educode_sales/business_courses/new.html.erb +2 -2
- data/app/views/educode_sales/businesses/_follows.html.erb +107 -100
- data/app/views/educode_sales/businesses/index.html.erb +6 -3
- data/app/views/educode_sales/businesses/index.json.jbuilder +2 -2
- data/app/views/educode_sales/businesses/show_follow.json.jbuilder +1 -1
- data/app/views/educode_sales/contracts/_follows.html.erb +75 -69
- data/app/views/educode_sales/contracts/_list.html.erb +283 -249
- data/app/views/educode_sales/contracts/index.json.jbuilder +1 -1
- data/app/views/educode_sales/follow_ups/index.json.jbuilder +1 -1
- data/app/views/educode_sales/plans/_year_execute.html.erb +294 -159
- data/app/views/educode_sales/plans/_year_target.html.erb +330 -215
- data/app/views/educode_sales/plans/index.html.erb +3 -4
- data/app/views/educode_sales/plans/staff_year_business.html.erb +96 -0
- data/app/views/educode_sales/plans/staff_year_business.json.jbuilder +22 -0
- data/app/views/educode_sales/plans/staff_year_target.json.jbuilder +35 -0
- data/app/views/educode_sales/plans/staff_year_target_log.html.erb +62 -0
- data/app/views/educode_sales/plans/staff_year_target_log.json.jbuilder +34 -0
- data/app/views/educode_sales/plans/years_all_target.json.jbuilder +5 -4
- data/app/views/educode_sales/sales_details/_index.html.erb +6 -3
- data/app/views/educode_sales/shixun_dectects/markdown.html.erb +40 -1
- data/app/views/educode_sales/shixuns/index.html.erb +106 -97
- data/app/views/educode_sales/shixuns/new.html.erb +2 -2
- data/app/views/educode_sales/staffs/index.json.jbuilder +1 -1
- data/app/views/educode_sales/subjects/index.html.erb +1 -1
- data/app/views/educode_sales/subjects/new.html.erb +2 -2
- data/app/views/educode_sales/teachers/_follows.html.erb +24 -17
- data/app/views/educode_sales/teachers/_index.html.erb +6 -0
- data/app/views/layouts/educode_sales/application.html.erb +6 -3
- data/config/environments/development.rb +16 -0
- data/config/routes.rb +7 -0
- data/db/migrate/20230729085359_create_educode_sales_sales_target_histories.rb +1 -1
- data/lib/educode_sales/version.rb +1 -1
- metadata +11 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8bb3032484ff8a665cb7f216b4a99850b3cf4d4fa863dd533102458ab865b603
|
|
4
|
+
data.tar.gz: 14451a898ca11a00b18c19604c471bb7d14acca2c5fd30ff2db13202bd38cc4b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a9c9a067531e4a5c6ea32d614206f962d042f5a876d0c0786bb654167f87e8a7dda940629aa63baaaf94be010bbbfb1a1ca3c1d1d4a321de41c3c7220574d1df
|
|
7
|
+
data.tar.gz: 2fc32f16d342cd16105de2faff7438fe16a6cf1496e2228fff2211ea4e99aa1b2bf35ec54265adfc5e5ddf8840c343f0a6114274ddad4b6f58e7721046808666
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
layui.define(function(exports){
|
|
2
|
+
let functions = {
|
|
3
|
+
initTableColumnsFilter: function (tableId, cols) {
|
|
4
|
+
var local = layui.data('table-filter-' + tableId);
|
|
5
|
+
layui.each(cols, function(index, item) {
|
|
6
|
+
if (item.field !== 'undefined' && item.field in local) {
|
|
7
|
+
item.hide = local[item.field];
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
return cols;
|
|
11
|
+
},
|
|
12
|
+
observerTableColumnFilter: function (that) {
|
|
13
|
+
that.elem.next().on('mousedown', 'input[lay-filter="LAY_TABLE_TOOL_COLS"]+', function(){
|
|
14
|
+
var input = $(this).prev()[0];
|
|
15
|
+
layui.data ('table-filter-'+ that.id, {
|
|
16
|
+
key: input.name,
|
|
17
|
+
value: input.checked
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
// 其他公共方法...
|
|
22
|
+
};
|
|
23
|
+
exports('functions', functions);
|
|
24
|
+
});
|
|
@@ -5,11 +5,19 @@ module EducodeSales
|
|
|
5
5
|
before_action :authenticate_request
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
def is_commissioner_above?
|
|
9
|
-
return
|
|
10
|
-
|
|
8
|
+
def is_commissioner_above?(clazz_type="business")
|
|
9
|
+
return true if @current_admin.is_admin?
|
|
10
|
+
case clazz_type
|
|
11
|
+
when "business"
|
|
12
|
+
can?(:all_business, EducodeSales::BusinessDeliverSubject)
|
|
13
|
+
when "shixun"
|
|
14
|
+
can?(:all_shixun, EducodeSales::BusinessDeliverSubject)
|
|
15
|
+
when "subject"
|
|
16
|
+
can?(:all_subject, EducodeSales::BusinessDeliverSubject)
|
|
17
|
+
end
|
|
11
18
|
end
|
|
12
19
|
|
|
20
|
+
|
|
13
21
|
def subject_members
|
|
14
22
|
common = Common.find_by(clazz: 'staff_type', name: '课程')
|
|
15
23
|
@manages = Staff.joins(:user).where(job_type: common.id.to_i).where.not(role_id: 11).map { |d| {name: d.user.real_name, value: d.id}}
|
|
@@ -5,11 +5,20 @@ module EducodeSales
|
|
|
5
5
|
# 商机交付课程
|
|
6
6
|
class BusinessCoursesController < ApplicationController
|
|
7
7
|
include BusinessCoursesHelper
|
|
8
|
-
include
|
|
8
|
+
include SubjectHelper
|
|
9
9
|
before_action :subject_members, :subject_url
|
|
10
|
+
before_action :have_permission?, only: %i(index new create edit)
|
|
11
|
+
|
|
12
|
+
# 查看cancancan Gem优化代码
|
|
13
|
+
def have_permission?
|
|
14
|
+
have_permission = can?(:business, EducodeSales::BusinessDeliverSubject) || can?(:all_business, EducodeSales::BusinessDeliverSubject)
|
|
15
|
+
|
|
16
|
+
have_permission || @current_admin.is_admin ? "" : authorize!(:business, BusinessDeliverSubject)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
10
20
|
|
|
11
21
|
def index
|
|
12
|
-
authorize! :business, BusinessDeliverSubject
|
|
13
22
|
respond_to do |format|
|
|
14
23
|
format.html do
|
|
15
24
|
end
|
|
@@ -50,7 +59,6 @@ module EducodeSales
|
|
|
50
59
|
end
|
|
51
60
|
|
|
52
61
|
def edit
|
|
53
|
-
authorize! :business, BusinessDeliverSubject
|
|
54
62
|
if params[:id]
|
|
55
63
|
# 查询商机信息 和交付状态等
|
|
56
64
|
@item = BusinessDeliverSubject.joins(:business)
|
|
@@ -73,7 +81,6 @@ module EducodeSales
|
|
|
73
81
|
end
|
|
74
82
|
|
|
75
83
|
def update
|
|
76
|
-
authorize! :business, BusinessDeliverSubject
|
|
77
84
|
# 开启事务
|
|
78
85
|
ActiveRecord::Base.transaction do
|
|
79
86
|
@business = BusinessDeliverSubject.find_by(id: params[:id])
|
|
@@ -108,7 +115,6 @@ module EducodeSales
|
|
|
108
115
|
end
|
|
109
116
|
|
|
110
117
|
def new
|
|
111
|
-
authorize! :business, BusinessDeliverSubject
|
|
112
118
|
staffs = Staff.where.not(role_id: 11).includes(:user)
|
|
113
119
|
@businesses = Business
|
|
114
120
|
# 要求只能是已签单的商机
|
|
@@ -118,7 +124,6 @@ module EducodeSales
|
|
|
118
124
|
end
|
|
119
125
|
|
|
120
126
|
def create
|
|
121
|
-
authorize! :business, BusinessDeliverSubject
|
|
122
127
|
# 开启事务
|
|
123
128
|
ActiveRecord::Base.transaction do
|
|
124
129
|
item = BusinessDeliverSubject.find_by(business_id: params[:business][:business_id])
|
|
@@ -149,10 +154,16 @@ module EducodeSales
|
|
|
149
154
|
@businesses = Business.joins(:last_follow_up, :school)
|
|
150
155
|
.where("educode_sales_businesses.name LIKE '%#{params[:q]}%' and educode_sales_follow_ups.stage_id = #{stage_id} ")
|
|
151
156
|
.where("educode_sales_businesses.id not in (?) ", BusinessDeliverSubject.pluck(:business_id).map(&:to_i)) # todo 数组中包含nil会导致查询失败,无法找到数据
|
|
152
|
-
.select("educode_sales_businesses.*, schools.name as s_name, schools.id as s_id")
|
|
153
157
|
|
|
158
|
+
|
|
159
|
+
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
|
160
|
+
@staffs = Staff.find(current_user.id)
|
|
161
|
+
if @staffs.present? && common.id.to_i == @staffs.job_type.to_i
|
|
162
|
+
@businesses = @businesses.where(staff_id:current_user.id)
|
|
163
|
+
end
|
|
154
164
|
@count = @businesses.count("educode_sales_businesses.id")
|
|
155
|
-
@businesses = @businesses.
|
|
165
|
+
@businesses = @businesses.select("educode_sales_businesses.*, schools.name as s_name, schools.id as s_id")
|
|
166
|
+
.page(params[:page]).per(10)
|
|
156
167
|
render json: {
|
|
157
168
|
data: @businesses,
|
|
158
169
|
code: 0
|
|
@@ -79,6 +79,10 @@ module EducodeSales
|
|
|
79
79
|
|
|
80
80
|
end
|
|
81
81
|
|
|
82
|
+
if params[:q].present? && params[:q][:staff].present?
|
|
83
|
+
@follow_ups = @follow_ups.joins(business: [staff: :user]).where("CONCAT(users.lastname, users.firstname) like ?", "%#{params[:q][:staff]}%")
|
|
84
|
+
end
|
|
85
|
+
|
|
82
86
|
@follow_ups = @follow_ups.includes(:staff, :clazz, :stage, key_person: :teacher, business: [department: :school])
|
|
83
87
|
|
|
84
88
|
if params[:sort].present? && params[:sort][:field]
|