educode_sales 0.9.73 → 0.9.74
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/contracts_controller.rb +309 -0
- data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
- data/app/controllers/educode_sales/home_controller.rb +7 -0
- data/app/controllers/educode_sales/ideas_controller.rb +146 -76
- data/app/controllers/educode_sales/roles_controller.rb +2 -1
- data/app/controllers/educode_sales/upload_files_controller.rb +3 -0
- data/app/models/educode_sales/assign_staff.rb +6 -0
- data/app/models/educode_sales/contract_date_list.rb +6 -0
- data/app/models/educode_sales/follow_up.rb +6 -0
- data/app/models/educode_sales/idea.rb +16 -5
- data/app/models/educode_sales/idea_follow.rb +11 -0
- data/app/models/educode_sales/permission.rb +2 -1
- data/app/models/educode_sales/role_area.rb +2 -1
- data/app/views/educode_sales/businesses/_contract_list.html.erb +160 -0
- data/app/views/educode_sales/contracts/_follows.html.erb +323 -0
- data/app/views/educode_sales/contracts/_list.html.erb +596 -0
- data/app/views/educode_sales/contracts/follow_ups.json.jbuilder +23 -0
- data/app/views/educode_sales/contracts/index.html.erb +50 -0
- data/app/views/educode_sales/contracts/index.json.jbuilder +74 -0
- data/app/views/educode_sales/contracts/list.js.erb +1 -0
- data/app/views/educode_sales/contracts/new_follow_up.html.erb +671 -0
- data/app/views/educode_sales/home/staff_business.json.jbuilder +9 -0
- data/app/views/educode_sales/idea_recycles/detail.html.erb +4 -4
- data/app/views/educode_sales/idea_recycles/index.html.erb +5 -5
- data/app/views/educode_sales/ideas/_follows.html.erb +258 -0
- data/app/views/educode_sales/ideas/_index.html.erb +544 -0
- data/app/views/educode_sales/ideas/detail.html.erb +7 -7
- data/app/views/educode_sales/ideas/edit.html.erb +77 -15
- data/app/views/educode_sales/ideas/files.html.erb +157 -0
- data/app/views/educode_sales/ideas/files.json.jbuilder +13 -0
- data/app/views/educode_sales/ideas/follow_ups.json.jbuilder +14 -0
- data/app/views/educode_sales/ideas/index.html.erb +12 -353
- data/app/views/educode_sales/ideas/index.json.jbuilder +7 -1
- data/app/views/educode_sales/ideas/new.html.erb +81 -25
- data/app/views/educode_sales/ideas/new_follow_up.html.erb +105 -0
- data/app/views/educode_sales/ideas/search_new.html.erb +1 -1
- data/app/views/educode_sales/ideas/show_schools.html.erb +84 -0
- data/app/views/educode_sales/ideas/show_schools.json.jbuilder +12 -0
- data/app/views/educode_sales/ideas/show_teachers.html.erb +372 -0
- data/app/views/educode_sales/ideas/upload_file.html.erb +43 -0
- data/app/views/educode_sales/projects/detail.html.erb +1 -1
- data/app/views/educode_sales/projects/edit.html.erb +1 -1
- data/app/views/educode_sales/roles/edit.html.erb +16 -0
- data/app/views/layouts/educode_sales/application.html.erb +5 -5
- data/config/routes.rb +19 -0
- data/db/migrate/20230227061043_create_educode_sales_ideas.rb +2 -2
- data/db/migrate/20230430023424_add_plan_signed_date_to_follow_ups.rb +21 -0
- data/db/migrate/20230430040332_create_educode_sales_contract_date_lists.rb +15 -0
- data/db/migrate/20230430104708_create_idea_follows.rb +25 -0
- data/db/migrate/20230430121335_add_permissions_for_ideas.rb +16 -0
- data/db/migrate/20230430134710_create_educode_sales_assign_staffs.rb +11 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +30 -2
@@ -63,8 +63,8 @@
|
|
63
63
|
<dd><a href="/missions/businesses" class="<%= current?('layui-this', businesses_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/4.商机管理.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>商机管理</a>
|
64
64
|
</dd>
|
65
65
|
<% end %>
|
66
|
-
<% if can? :
|
67
|
-
<dd><a href="/missions/
|
66
|
+
<% if can? :read_contract, EducodeSales::Business %>
|
67
|
+
<dd><a href="/missions/contracts" class="<%= current?('layui-this', contracts_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/4.商机管理.png",size:"15"%><i style="font-size: 25px; padding-right: 15px"></i>合同管理</a>
|
68
68
|
</dd>
|
69
69
|
<% end %>
|
70
70
|
<% if can? :read, EducodeSales::MoneyPlan %>
|
@@ -148,9 +148,9 @@
|
|
148
148
|
<dd>
|
149
149
|
<a href="/missions/ideas" class="<%= current?('layui-this', ideas_path) %>"><i style="padding-right: 35px"></i><%= image_tag "educode_sales/6.销售计划.png", size: "15" %>
|
150
150
|
<i style="font-size: 25px; padding-right: 15px"></i>方案管理</a></dd>
|
151
|
-
<dd
|
152
|
-
<a href="/missions/idea_recycles" class="
|
153
|
-
<i style="font-size: 25px; padding-right: 15px"></i>方案回收站</a></dd
|
151
|
+
<!-- <dd>-->
|
152
|
+
<!-- <a href="/missions/idea_recycles" class="<%#= current?('layui-this', idea_recycles_path) %>"><i style="padding-right: 35px"></i><%#= image_tag "educode_sales/回收站.png", size: "15" %>-->
|
153
|
+
<!-- <i style="font-size: 25px; padding-right: 15px"></i>方案回收站</a></dd>-->
|
154
154
|
</dl>
|
155
155
|
</li>
|
156
156
|
<% end %>
|
data/config/routes.rb
CHANGED
@@ -14,6 +14,7 @@ EducodeSales::Engine.routes.draw do
|
|
14
14
|
get :sales_staff, to: "home#sales_staff"
|
15
15
|
get :sales_place, to: "home#sales_place"
|
16
16
|
get :staff_schools, to: "home#staff_schools"
|
17
|
+
get :staff_business, to: "home#staff_business"
|
17
18
|
get :staff_departments, to: "home#staff_departments"
|
18
19
|
get :filter, to: "application#filter"
|
19
20
|
|
@@ -21,6 +22,15 @@ EducodeSales::Engine.routes.draw do
|
|
21
22
|
resources :sessions do
|
22
23
|
end
|
23
24
|
|
25
|
+
resources :contracts do
|
26
|
+
collection do
|
27
|
+
get :follow_ups
|
28
|
+
get :list
|
29
|
+
get :new_follow_up
|
30
|
+
post :add_follow_ups
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
24
34
|
resources :logs
|
25
35
|
|
26
36
|
resources :user_behaviors
|
@@ -291,8 +301,17 @@ EducodeSales::Engine.routes.draw do
|
|
291
301
|
collection do
|
292
302
|
get :detail
|
293
303
|
get :history
|
304
|
+
get :show_teachers
|
305
|
+
get :new_follow_up
|
306
|
+
get :follow_ups
|
307
|
+
post :add_advise
|
308
|
+
get :upload_file
|
294
309
|
end
|
295
310
|
member do
|
311
|
+
get :show_schools
|
312
|
+
post :follow_up
|
313
|
+
put :update_advise
|
314
|
+
get :files
|
296
315
|
end
|
297
316
|
end
|
298
317
|
resources :idea_recycles do
|
@@ -11,10 +11,10 @@ class CreateEducodeSalesIdeas < ActiveRecord::Migration[5.2]
|
|
11
11
|
t.float :hardware, comment: "硬件规模"
|
12
12
|
t.float :project, comment: "项目规模"
|
13
13
|
t.float :money, comment: "项目预算"
|
14
|
-
t.integer :creator_id, comment: "
|
14
|
+
t.integer :creator_id, comment: "申请人"
|
15
15
|
t.date :end_time, comment: "截止时间"
|
16
16
|
t.integer :history_type, comment: "历史合作"
|
17
|
-
t.text :content, comment: "
|
17
|
+
t.text :content, comment: "需求说明"
|
18
18
|
t.integer :deleter_id, comment: "删除人"
|
19
19
|
t.boolean :is_deleted, default: false, comment: "是否删除"
|
20
20
|
t.datetime :deleted_at, comment: "删除时间"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class AddPlanSignedDateToFollowUps < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
add_column :educode_sales_follow_ups, :plan_signed_date, :date, comment: '计划签单时间'
|
4
|
+
add_column :educode_sales_follow_ups, :bidded_days, :integer, comment: '签单中标后天数'
|
5
|
+
add_column :educode_sales_follow_ups, :service_years, :integer, comment: '服务期验收后年数'
|
6
|
+
add_column :educode_sales_follow_ups, :signed_department_id, :integer, comment: '签约单位'
|
7
|
+
add_column :educode_sales_follow_ups, :signed_clazz, :integer, comment: '签约类型'
|
8
|
+
add_column :educode_sales_follow_ups, :info_clazz, :integer, comment: '信息类型'
|
9
|
+
add_column :educode_sales_follow_ups, :contract_name, :string, comment: '合同名称'
|
10
|
+
add_column :educode_sales_follow_ups, :funding_source, :integer, comment: '资金来源'
|
11
|
+
|
12
|
+
EducodeSales::Permission.find_or_create_by(name: '查看数据', subject: 'Business', action: 'read_contract', clazz: 'contract')
|
13
|
+
EducodeSales::Permission.find_or_create_by(name: '添加跟进记录', subject: 'Business', action: 'add_contract_follow', clazz: 'contract')
|
14
|
+
EducodeSales::Permission.find_or_create_by(name: '指派售后', subject: 'Business', action: 'assign_contract', clazz: 'contract')
|
15
|
+
EducodeSales::Role.all.each do |r|
|
16
|
+
a = r.role_areas.find_or_initialize_by(clazz: 'Contract')
|
17
|
+
a.save
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateEducodeSalesContractDateLists < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :educode_sales_contract_date_lists do |t|
|
4
|
+
t.references :follow_up
|
5
|
+
t.date :promise_date, comment: '约定日期'
|
6
|
+
t.integer :num, comment: '天数/工作日/年'
|
7
|
+
t.integer :clazz, comment: '类型:交货,验收,预收款,交付款,验收款,质保金'
|
8
|
+
t.date :plan_date, comment: '计划日期'
|
9
|
+
t.date :actual_date, comment: '实际日期'
|
10
|
+
t.references :staff
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class CreateIdeaFollows < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
# 序号、最新进展、所属商机、单位、预算、状态、团队建议、销售经理、方案经理、跟进人、跟进时间、操作(详情、团队建议))
|
4
|
+
create_table :educode_sales_idea_follows do |t|
|
5
|
+
t.text :content
|
6
|
+
t.references :idea
|
7
|
+
t.references :school
|
8
|
+
t.float :money
|
9
|
+
t.integer :status
|
10
|
+
t.text :advise
|
11
|
+
t.references :sale_staff
|
12
|
+
t.references :idea_staff
|
13
|
+
t.references :staff
|
14
|
+
t.text :comment
|
15
|
+
|
16
|
+
t.timestamps
|
17
|
+
end
|
18
|
+
add_column :educode_sales_ideas, :idea_type, :integer
|
19
|
+
add_column :educode_sales_ideas, :other_staff_ids, :text
|
20
|
+
add_column :educode_sales_ideas, :idea_follows_count, :integer, default: 0
|
21
|
+
add_column :educode_sales_ideas, :last_idea_follow_id, :integer
|
22
|
+
add_column :educode_sales_ideas, :advise, :text
|
23
|
+
add_column :educode_sales_ideas, :business_id, :integer
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class AddPermissionsForIdeas < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
last_position = EducodeSales::Permission.all.order(position: :asc).last&.position.to_i
|
4
|
+
|
5
|
+
# 附件管理权限
|
6
|
+
EducodeSales::Permission.create(name: '查看附件', subject: 'Idea', action: 'show_file', clazz: 'idea', position: last_position + 1)
|
7
|
+
EducodeSales::Permission.create(name: '上传附件', subject: 'Idea', action: 'upload_file', clazz: 'idea', position: last_position + 2)
|
8
|
+
EducodeSales::Permission.create(name: '下载附件', subject: 'Idea', action: 'download_file', clazz: 'idea', position: last_position + 3)
|
9
|
+
EducodeSales::Permission.create(name: '删除附件', subject: 'Idea', action: 'delete_file', clazz: 'idea', position: last_position + 4)
|
10
|
+
EducodeSales::Permission.create(name: '查看跟进记录', subject: 'Idea', action: 'follow', clazz: 'idea', position: last_position + 8)
|
11
|
+
EducodeSales::Permission.create(name: '添加跟进记录', subject: 'Idea', action: 'add_follow', clazz: 'idea', position: last_position + 9)
|
12
|
+
EducodeSales::Permission.create(name: '编辑跟进记录', subject: 'Idea', action: 'update_follow', clazz: 'idea', position: last_position + 10)
|
13
|
+
EducodeSales::Permission.create(name: '删除跟进记录', subject: 'Idea', action: 'destroy_follow', clazz: 'idea', position: last_position + 11)
|
14
|
+
EducodeSales::Permission.create(name: '团队建议', subject: 'Idea', action: 'advise', clazz: 'idea', position: last_position + 12)
|
15
|
+
end
|
16
|
+
end
|
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: 0.9.
|
4
|
+
version: 0.9.74
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- app/controllers/educode_sales/assessments_controller.rb
|
149
149
|
- app/controllers/educode_sales/businesses_controller.rb
|
150
150
|
- app/controllers/educode_sales/commons_controller.rb
|
151
|
+
- app/controllers/educode_sales/contracts_controller.rb
|
151
152
|
- app/controllers/educode_sales/customer_extensions_controller.rb
|
152
153
|
- app/controllers/educode_sales/customer_follows_controller.rb
|
153
154
|
- app/controllers/educode_sales/customers_controller.rb
|
@@ -197,6 +198,7 @@ files:
|
|
197
198
|
- app/models/educode_sales/application_record.rb
|
198
199
|
- app/models/educode_sales/assessments_setting.rb
|
199
200
|
- app/models/educode_sales/assign_follow_up.rb
|
201
|
+
- app/models/educode_sales/assign_staff.rb
|
200
202
|
- app/models/educode_sales/business.rb
|
201
203
|
- app/models/educode_sales/business_clazz_change.rb
|
202
204
|
- app/models/educode_sales/business_export_record.rb
|
@@ -207,6 +209,7 @@ files:
|
|
207
209
|
- app/models/educode_sales/business_relation_ship.rb
|
208
210
|
- app/models/educode_sales/business_watch.rb
|
209
211
|
- app/models/educode_sales/common.rb
|
212
|
+
- app/models/educode_sales/contract_date_list.rb
|
210
213
|
- app/models/educode_sales/course_subject.rb
|
211
214
|
- app/models/educode_sales/customer.rb
|
212
215
|
- app/models/educode_sales/customer_add.rb
|
@@ -216,6 +219,7 @@ files:
|
|
216
219
|
- app/models/educode_sales/filter.rb
|
217
220
|
- app/models/educode_sales/follow_up.rb
|
218
221
|
- app/models/educode_sales/idea.rb
|
222
|
+
- app/models/educode_sales/idea_follow.rb
|
219
223
|
- app/models/educode_sales/idea_history.rb
|
220
224
|
- app/models/educode_sales/key_person.rb
|
221
225
|
- app/models/educode_sales/login_history.rb
|
@@ -268,6 +272,7 @@ files:
|
|
268
272
|
- app/views/educode_sales/assessments/new.html.erb
|
269
273
|
- app/views/educode_sales/assessments/progress.json.jbuilder
|
270
274
|
- app/views/educode_sales/businesses/_contract.html.erb
|
275
|
+
- app/views/educode_sales/businesses/_contract_list.html.erb
|
271
276
|
- app/views/educode_sales/businesses/_follows.html.erb
|
272
277
|
- app/views/educode_sales/businesses/contract.html.erb
|
273
278
|
- app/views/educode_sales/businesses/contract.json.jbuilder
|
@@ -300,6 +305,13 @@ files:
|
|
300
305
|
- app/views/educode_sales/commons/index.json.jbuilder
|
301
306
|
- app/views/educode_sales/commons/new.html.erb
|
302
307
|
- app/views/educode_sales/commons/show.json.jbuilder
|
308
|
+
- app/views/educode_sales/contracts/_follows.html.erb
|
309
|
+
- app/views/educode_sales/contracts/_list.html.erb
|
310
|
+
- app/views/educode_sales/contracts/follow_ups.json.jbuilder
|
311
|
+
- app/views/educode_sales/contracts/index.html.erb
|
312
|
+
- app/views/educode_sales/contracts/index.json.jbuilder
|
313
|
+
- app/views/educode_sales/contracts/list.js.erb
|
314
|
+
- app/views/educode_sales/contracts/new_follow_up.html.erb
|
303
315
|
- app/views/educode_sales/customers/edit.html.erb
|
304
316
|
- app/views/educode_sales/customers/edit_department.html.erb
|
305
317
|
- app/views/educode_sales/customers/edit_follow_record.html.erb
|
@@ -334,6 +346,7 @@ files:
|
|
334
346
|
- app/views/educode_sales/home/search_operation_teacher.json.jbuilder
|
335
347
|
- app/views/educode_sales/home/search_teacher.json.jbuilder
|
336
348
|
- app/views/educode_sales/home/search_users.json.jbuilder
|
349
|
+
- app/views/educode_sales/home/staff_business.json.jbuilder
|
337
350
|
- app/views/educode_sales/home/staff_departments.json.jbuilder
|
338
351
|
- app/views/educode_sales/home/staff_schools.json.jbuilder
|
339
352
|
- app/views/educode_sales/home/statistics.html.erb
|
@@ -359,6 +372,8 @@ files:
|
|
359
372
|
- app/views/educode_sales/idea_recycles/show_follow.json.jbuilder
|
360
373
|
- app/views/educode_sales/idea_recycles/show_follow_record.html.erb
|
361
374
|
- app/views/educode_sales/idea_recycles/unfinish_plans.json.jbuilder
|
375
|
+
- app/views/educode_sales/ideas/_follows.html.erb
|
376
|
+
- app/views/educode_sales/ideas/_index.html.erb
|
362
377
|
- app/views/educode_sales/ideas/activities.json.jbuilder
|
363
378
|
- app/views/educode_sales/ideas/add_courses.html.erb
|
364
379
|
- app/views/educode_sales/ideas/add_event.html.erb
|
@@ -369,18 +384,26 @@ files:
|
|
369
384
|
- app/views/educode_sales/ideas/detail.html.erb
|
370
385
|
- app/views/educode_sales/ideas/edit.html.erb
|
371
386
|
- app/views/educode_sales/ideas/edit_follow_record.html.erb
|
387
|
+
- app/views/educode_sales/ideas/files.html.erb
|
388
|
+
- app/views/educode_sales/ideas/files.json.jbuilder
|
389
|
+
- app/views/educode_sales/ideas/follow_ups.json.jbuilder
|
372
390
|
- app/views/educode_sales/ideas/history.html.erb
|
373
391
|
- app/views/educode_sales/ideas/import.html.erb
|
374
392
|
- app/views/educode_sales/ideas/index.html.erb
|
375
393
|
- app/views/educode_sales/ideas/index.json.jbuilder
|
376
394
|
- app/views/educode_sales/ideas/new.html.erb
|
377
395
|
- app/views/educode_sales/ideas/new_follow_record.html.erb
|
396
|
+
- app/views/educode_sales/ideas/new_follow_up.html.erb
|
378
397
|
- app/views/educode_sales/ideas/search_new.html.erb
|
379
398
|
- app/views/educode_sales/ideas/show_class.html.erb
|
380
399
|
- app/views/educode_sales/ideas/show_follow.html.erb
|
381
400
|
- app/views/educode_sales/ideas/show_follow.json.jbuilder
|
382
401
|
- app/views/educode_sales/ideas/show_follow_record.html.erb
|
402
|
+
- app/views/educode_sales/ideas/show_schools.html.erb
|
403
|
+
- app/views/educode_sales/ideas/show_schools.json.jbuilder
|
404
|
+
- app/views/educode_sales/ideas/show_teachers.html.erb
|
383
405
|
- app/views/educode_sales/ideas/unfinish_plans.json.jbuilder
|
406
|
+
- app/views/educode_sales/ideas/upload_file.html.erb
|
384
407
|
- app/views/educode_sales/logs/index.html.erb
|
385
408
|
- app/views/educode_sales/logs/index.json.jbuilder
|
386
409
|
- app/views/educode_sales/money_plans/index.html.erb
|
@@ -625,6 +648,11 @@ files:
|
|
625
648
|
- db/migrate/20230414031409_add_major_educode_sales_customer_follows.rb
|
626
649
|
- db/migrate/20230414035655_create_educode_sales_eco_staffs.rb
|
627
650
|
- db/migrate/20230428015007_add_deploy_time_follow_ups.rb
|
651
|
+
- db/migrate/20230430023424_add_plan_signed_date_to_follow_ups.rb
|
652
|
+
- db/migrate/20230430040332_create_educode_sales_contract_date_lists.rb
|
653
|
+
- db/migrate/20230430104708_create_idea_follows.rb
|
654
|
+
- db/migrate/20230430121335_add_permissions_for_ideas.rb
|
655
|
+
- db/migrate/20230430134710_create_educode_sales_assign_staffs.rb
|
628
656
|
- lib/educode_sales.rb
|
629
657
|
- lib/educode_sales/engine.rb
|
630
658
|
- lib/educode_sales/version.rb
|