educode_sales 1.10.33 → 1.10.35
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
- data/app/controllers/educode_sales/businesses_controller.rb +13 -1
- data/app/controllers/educode_sales/ideas_controller.rb +16 -8
- data/app/controllers/educode_sales/sale_trends_controller.rb +14 -2
- data/app/views/educode_sales/ideas/_index.html.erb +2 -2
- data/app/views/educode_sales/ideas/edit.html.erb +16 -2
- data/app/views/educode_sales/ideas/new.html.erb +17 -20
- data/lib/educode_sales/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 733d10f3f04531daa5d9aed3a9a9d8d34e41c74ca57ce61b817360147b914d61
|
4
|
+
data.tar.gz: 80527d327ad6f4cee282df6608140f1df12edac667b9882559d52e405ad0f14c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82c1b9e3da991893900a0b5b28ff034ee6b818128f491fe3c9eb8b3b26025cdd283ce365c5ec5f495340d4fef314e78167941c6f89ced2533b0e6f08e7dd6f75
|
7
|
+
data.tar.gz: e710d633ca97617cb7c946d56c071f16d8339d208e851ef24b2a905c3d027aabf7dfbd38d1158793eadca1286af25fee759bc128e0e8de2b542de9649cd5bfa6
|
Binary file
|
@@ -133,7 +133,19 @@ module EducodeSales
|
|
133
133
|
elsif params[:q][:clazz] == 'delete_list'
|
134
134
|
@businesses = Business.unscoped.where(state_id: [1, 3])
|
135
135
|
elsif params[:q][:clazz] == 'plan_year'
|
136
|
-
@
|
136
|
+
if @current_admin.is_admin?
|
137
|
+
@businesses = Business
|
138
|
+
else
|
139
|
+
# 年度计划,按负责区域和专项客户类型查看对应的年度商机
|
140
|
+
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id) + StaffSchool.where(staff_id: @current_admin.id).pluck(:school_id)
|
141
|
+
if @current_admin.staff_school_tags.present?
|
142
|
+
# 如果设置专项客户类型,则视为专项经理,根据专项客户查看对应商机
|
143
|
+
school_ids += School.joins(:school_tags).where("school_tags.id in (?)", @current_admin.staff_school_tags.pluck(:school_tag_id)).pluck(:id)
|
144
|
+
end
|
145
|
+
@businesses = Business.joins("JOIN departments ON educode_sales_businesses.department_id = departments.id").where("departments.school_id in (?) ", school_ids.uniq)
|
146
|
+
end
|
147
|
+
|
148
|
+
@businesses = @businesses.joins(:last_follow_up).where("educode_sales_follow_ups.plan_a_date > :year OR educode_sales_follow_ups.plan_return_date > :year OR educode_sales_follow_ups.invitation_at > :year", year: Time.now.beginning_of_year)
|
137
149
|
end
|
138
150
|
else
|
139
151
|
if @current_admin.is_admin?
|
@@ -139,9 +139,13 @@ module EducodeSales
|
|
139
139
|
assist_staff_ids = Array(params[:assist_staff_ids].to_s.split(","))
|
140
140
|
attachment_ids = Array(params[:attachment_ids].to_s.split(","))
|
141
141
|
other_staff_ids = Array(params[:other_staff_ids].to_s.split(","))
|
142
|
-
if
|
143
|
-
idea.
|
144
|
-
|
142
|
+
if params[:business_id].present?
|
143
|
+
idea.business_id = params[:business_id]
|
144
|
+
elsif params[:school_id].present?
|
145
|
+
idea.name = params[:project_name]
|
146
|
+
end
|
147
|
+
if params[:school_id].present?
|
148
|
+
idea.school_id = params[:school_id]
|
145
149
|
end
|
146
150
|
idea.attachment_ids = attachment_ids
|
147
151
|
|
@@ -174,9 +178,13 @@ module EducodeSales
|
|
174
178
|
@idea.attachment_ids = attachment_ids
|
175
179
|
other_staff_ids = Array(params[:other_staff_ids].to_s.split(","))
|
176
180
|
# @idea.other_staff_ids = other_staff_ids
|
177
|
-
if
|
178
|
-
@idea.
|
179
|
-
|
181
|
+
if params[:business_id].present?
|
182
|
+
@idea.business_id = params[:business_id]
|
183
|
+
elsif params[:school_id].present?
|
184
|
+
@idea.name = params[:project_name]
|
185
|
+
end
|
186
|
+
if params[:school_id].present?
|
187
|
+
@idea.school_id = params[:school_id]
|
180
188
|
end
|
181
189
|
check_changes
|
182
190
|
@idea.save
|
@@ -348,8 +356,8 @@ module EducodeSales
|
|
348
356
|
def idea_params
|
349
357
|
params.permit(:name, :level, :staff_id,
|
350
358
|
:status, :types, :model, :hardware, :project,
|
351
|
-
:money, :end_time, :content, :department_id,
|
352
|
-
:manager_name, :manager_phone, :school_name, :department_name, :attachment_id, :idea_type
|
359
|
+
:money, :end_time, :content, :department_id,
|
360
|
+
:manager_name, :manager_phone, :school_name, :department_name, :attachment_id, :idea_type)
|
353
361
|
end
|
354
362
|
|
355
363
|
def find_idea
|
@@ -24,7 +24,13 @@ module EducodeSales
|
|
24
24
|
@actual_service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.stage_id IN (?)", s_stage_ids).sum(:actual_amount).round(2)
|
25
25
|
|
26
26
|
|
27
|
-
@return_amount = EducodeSales::MoneyPlanRecord.
|
27
|
+
@return_amount = EducodeSales::MoneyPlanRecord.from("(
|
28
|
+
SELECT distinct(educode_sales_money_plan_records.id), educode_sales_money_plan_records.amount
|
29
|
+
FROM educode_sales_money_plan_records
|
30
|
+
JOIN educode_sales_money_plan_claims ON educode_sales_money_plan_claims.money_plan_record_id = educode_sales_money_plan_records.id
|
31
|
+
GROUP BY educode_sales_money_plan_records.id
|
32
|
+
) AS educode_sales_money_plan_records
|
33
|
+
").sum("amount").round(2)
|
28
34
|
# @return_amount = Business.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", x).where.not("educode_sales_money_plans.clazz!= ?", 1).sum(:amount).round(2)
|
29
35
|
# # @return_amount = total_return[0]['return_money']&.round(2) || 0
|
30
36
|
# @receivable_amount = @goal_amount - @return_amount
|
@@ -54,7 +60,13 @@ module EducodeSales
|
|
54
60
|
@actual_service_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.signed_date >= ? AND educode_sales_follow_ups.signed_date <= ? AND educode_sales_follow_ups.stage_id IN (?)", "#{@year}-01-01", "#{@year}-12-31", s_stage_ids).sum(:actual_amount).round(2)
|
55
61
|
# @return_amount = Business.joins(last_follow_up: :money_plans).where("educode_sales_follow_ups.clazz_id != ?", x).where.not("educode_sales_money_plans.clazz!= ?", 1).where("educode_sales_money_plans.date_at >= ? AND educode_sales_money_plans.date_at <= ? ", year_time, year_over_time).sum(:amount).round(2)
|
56
62
|
|
57
|
-
@return_amount = EducodeSales::MoneyPlanRecord.
|
63
|
+
@return_amount = EducodeSales::MoneyPlanRecord.from("(
|
64
|
+
SELECT distinct(educode_sales_money_plan_records.id), educode_sales_money_plan_records.amount, date_at
|
65
|
+
FROM educode_sales_money_plan_records
|
66
|
+
JOIN educode_sales_money_plan_claims ON educode_sales_money_plan_claims.money_plan_record_id = educode_sales_money_plan_records.id
|
67
|
+
GROUP BY educode_sales_money_plan_records.id
|
68
|
+
) AS educode_sales_money_plan_records
|
69
|
+
").where("educode_sales_money_plan_records.date_at >= ? AND educode_sales_money_plan_records.date_at <= ? ", year_time, year_over_time).sum(:amount).round(2)
|
58
70
|
# 往年累计已中标合同
|
59
71
|
# @former_goal_amount = Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_follow_ups.bidded_date <= ? AND educode_sales_follow_ups.stage_id IN (?)", "#{@year}-12-31", stage_ids).sum(:actual_amount).round(2)
|
60
72
|
# # 往年累计已回款
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</div>
|
57
57
|
</div>
|
58
58
|
<div class="layui-inline">
|
59
|
-
<label class="layui-form-label"
|
59
|
+
<label class="layui-form-label">商机名称</label>
|
60
60
|
<div class="layui-input-inline">
|
61
61
|
<input type="text" class="layui-input" id="name" name="name" placeholder=" - " autocomplete="off">
|
62
62
|
</div>
|
@@ -167,7 +167,7 @@
|
|
167
167
|
{
|
168
168
|
field: 'name',
|
169
169
|
width: 160,
|
170
|
-
title: '
|
170
|
+
title: '商机名称',
|
171
171
|
hide: gon.filter.name
|
172
172
|
},
|
173
173
|
{
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<div class="layui-col-md6">
|
10
10
|
<labeL class="layui-form-label required">单位:</labeL>
|
11
11
|
<div class="layui-input-block">
|
12
|
-
<div id="
|
12
|
+
<div id="" style="width: 600px;"></div>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
15
|
<div class="layui-col-md6">
|
@@ -41,7 +41,7 @@
|
|
41
41
|
</div>
|
42
42
|
</div>
|
43
43
|
<div class="layui-col-md6">
|
44
|
-
<labeL class="layui-form-label"
|
44
|
+
<labeL class="layui-form-label">商机名称:</labeL>
|
45
45
|
<div class="layui-input-block">
|
46
46
|
<div id="business_id" style="width: 600px;"></div>
|
47
47
|
</div>
|
@@ -53,6 +53,20 @@
|
|
53
53
|
</div>
|
54
54
|
</div>
|
55
55
|
</div>
|
56
|
+
<div class="layui-row" style="padding-top: 15px;">
|
57
|
+
<div class="layui-col-md6">
|
58
|
+
<labeL class="layui-form-label">单位:</labeL>
|
59
|
+
<div class="layui-input-block">
|
60
|
+
<div id="school_id"></div>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
<div class="layui-col-md6">
|
64
|
+
<labeL class="layui-form-label">项目名称:</labeL>
|
65
|
+
<div class="layui-input-block">
|
66
|
+
<input type="text" name="project_name" value="<%= @idea&.name %>" autocomplete="off" placeholder="请输入项目名称" class="layui-input">
|
67
|
+
</div>
|
68
|
+
</div>
|
69
|
+
</div>
|
56
70
|
<div class="layui-row" style="padding-top: 15px;display: none">
|
57
71
|
<div class="layui-col-md6" style="display: none">
|
58
72
|
<labeL class="layui-form-label">方案经理:</labeL>
|
@@ -5,20 +5,6 @@
|
|
5
5
|
<div class="layui-row">
|
6
6
|
<h2 style="padding-left: 25px">方案信息</h2>
|
7
7
|
</div>
|
8
|
-
<div class="layui-row" style="padding-top: 15px;display: none">
|
9
|
-
<div class="layui-col-md6">
|
10
|
-
<labeL class="layui-form-label required">单位:</labeL>
|
11
|
-
<div class="layui-input-block">
|
12
|
-
<div id="school_id" style="width: 600px;"></div>
|
13
|
-
</div>
|
14
|
-
</div>
|
15
|
-
<div class="layui-col-md6">
|
16
|
-
<labeL class="layui-form-label">部门:</labeL>
|
17
|
-
<div class="layui-input-block">
|
18
|
-
<div id="department_id" style="width: 600px;"></div>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
8
|
<div class="layui-row" style="padding-top: 15px">
|
23
9
|
<div class="layui-col-md6">
|
24
10
|
<labeL class="layui-form-label">单位联系人:</labeL>
|
@@ -41,9 +27,9 @@
|
|
41
27
|
</div>
|
42
28
|
</div>
|
43
29
|
<div class="layui-col-md6">
|
44
|
-
<labeL class="layui-form-label"
|
30
|
+
<labeL class="layui-form-label">商机名称:</labeL>
|
45
31
|
<div class="layui-input-block">
|
46
|
-
<div id="business_id"
|
32
|
+
<div id="business_id"></div>
|
47
33
|
</div>
|
48
34
|
</div>
|
49
35
|
<div class="layui-col-md6" style="display: none">
|
@@ -53,6 +39,20 @@
|
|
53
39
|
</div>
|
54
40
|
</div>
|
55
41
|
</div>
|
42
|
+
<div class="layui-row" style="padding-top: 15px;">
|
43
|
+
<div class="layui-col-md6">
|
44
|
+
<labeL class="layui-form-label">单位:</labeL>
|
45
|
+
<div class="layui-input-block">
|
46
|
+
<div id="school_id"></div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
<div class="layui-col-md6">
|
50
|
+
<labeL class="layui-form-label">项目名称:</labeL>
|
51
|
+
<div class="layui-input-block">
|
52
|
+
<input type="text" name="project_name" autocomplete="off" placeholder="请输入项目名称" class="layui-input">
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
56
|
<div class="layui-row" style="padding-top: 15px;display: none">
|
57
57
|
<div class="layui-col-md6" style="display: none">
|
58
58
|
<labeL class="layui-form-label">方案经理:</labeL>
|
@@ -412,10 +412,6 @@
|
|
412
412
|
|
413
413
|
//监听提交
|
414
414
|
form.on('submit(saveBtn)', function (data) {
|
415
|
-
// if (department.getValue() == "" && department_id == "") {
|
416
|
-
// layer.alert("请选择单位部门")
|
417
|
-
// return false;
|
418
|
-
// } else {
|
419
415
|
|
420
416
|
var schools = [];
|
421
417
|
school_list.getValue().forEach(function (d) {
|
@@ -438,6 +434,7 @@
|
|
438
434
|
data.field.assist_staff_ids = assist_staff_list.getValue('valueStr');
|
439
435
|
data.field.other_staff_ids = other_staff_list.getValue('valueStr');
|
440
436
|
data.field.attachment_ids = attachment_list.getValue('valueStr');
|
437
|
+
data.field.school_id = school_list.getValue('valueStr');
|
441
438
|
request.authPost("missions/ideas/", data.field, function (res) {
|
442
439
|
if (res.success == false) {
|
443
440
|
layer.alert(res.msg)
|
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: 1.10.
|
4
|
+
version: 1.10.35
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- app/assets/images/educode_sales/icon-login.png
|
106
106
|
- app/assets/images/educode_sales/icon.png
|
107
107
|
- app/assets/images/educode_sales/indexLogo.png
|
108
|
+
- app/assets/images/educode_sales/indexlogo.png
|
108
109
|
- app/assets/images/educode_sales/loading-0.gif
|
109
110
|
- app/assets/images/educode_sales/loading-1.gif
|
110
111
|
- app/assets/images/educode_sales/loading-2.gif
|
@@ -757,7 +758,7 @@ homepage: https://www.educoder.net
|
|
757
758
|
licenses:
|
758
759
|
- MIT
|
759
760
|
metadata: {}
|
760
|
-
post_install_message:
|
761
|
+
post_install_message:
|
761
762
|
rdoc_options: []
|
762
763
|
require_paths:
|
763
764
|
- lib
|
@@ -772,8 +773,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
772
773
|
- !ruby/object:Gem::Version
|
773
774
|
version: '0'
|
774
775
|
requirements: []
|
775
|
-
rubygems_version: 3.0.
|
776
|
-
signing_key:
|
776
|
+
rubygems_version: 3.0.9
|
777
|
+
signing_key:
|
777
778
|
specification_version: 4
|
778
779
|
summary: Summary of EducodeSales.
|
779
780
|
test_files: []
|