educode_sales 1.10.59 → 1.10.70
Sign up to get free protection for your applications and to get access to all the features.
- 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: d8e7d99a35f1c2905d166e4644cba3607d02f8dbc7a998b361b2c22955df75a0
|
4
|
+
data.tar.gz: 897fd624ffd57dbc1ea3da2de4a3e9c19c2fe979e425d46515fb44cea2533110
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2eaa9f36661e787d056d8f4d4a9445c90d7e4d12ada69e94233dd215ac6da96d477b065dc281c9a97f6267bc3ad8119c771f9d8ef86467992b97eafc3cfd04ac
|
7
|
+
data.tar.gz: '0974f6a51e7c44078b2c55a86bce052599a3cec4c40048359c7ffb2b97e91357cc8a291e6c82986beb938f5cb4fce8361c576b33fac14a672a98e61a79f5fe49'
|
@@ -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]
|