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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/contracts_controller.rb +309 -0
  3. data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
  4. data/app/controllers/educode_sales/home_controller.rb +7 -0
  5. data/app/controllers/educode_sales/ideas_controller.rb +146 -76
  6. data/app/controllers/educode_sales/roles_controller.rb +2 -1
  7. data/app/controllers/educode_sales/upload_files_controller.rb +3 -0
  8. data/app/models/educode_sales/assign_staff.rb +6 -0
  9. data/app/models/educode_sales/contract_date_list.rb +6 -0
  10. data/app/models/educode_sales/follow_up.rb +6 -0
  11. data/app/models/educode_sales/idea.rb +16 -5
  12. data/app/models/educode_sales/idea_follow.rb +11 -0
  13. data/app/models/educode_sales/permission.rb +2 -1
  14. data/app/models/educode_sales/role_area.rb +2 -1
  15. data/app/views/educode_sales/businesses/_contract_list.html.erb +160 -0
  16. data/app/views/educode_sales/contracts/_follows.html.erb +323 -0
  17. data/app/views/educode_sales/contracts/_list.html.erb +596 -0
  18. data/app/views/educode_sales/contracts/follow_ups.json.jbuilder +23 -0
  19. data/app/views/educode_sales/contracts/index.html.erb +50 -0
  20. data/app/views/educode_sales/contracts/index.json.jbuilder +74 -0
  21. data/app/views/educode_sales/contracts/list.js.erb +1 -0
  22. data/app/views/educode_sales/contracts/new_follow_up.html.erb +671 -0
  23. data/app/views/educode_sales/home/staff_business.json.jbuilder +9 -0
  24. data/app/views/educode_sales/idea_recycles/detail.html.erb +4 -4
  25. data/app/views/educode_sales/idea_recycles/index.html.erb +5 -5
  26. data/app/views/educode_sales/ideas/_follows.html.erb +258 -0
  27. data/app/views/educode_sales/ideas/_index.html.erb +544 -0
  28. data/app/views/educode_sales/ideas/detail.html.erb +7 -7
  29. data/app/views/educode_sales/ideas/edit.html.erb +77 -15
  30. data/app/views/educode_sales/ideas/files.html.erb +157 -0
  31. data/app/views/educode_sales/ideas/files.json.jbuilder +13 -0
  32. data/app/views/educode_sales/ideas/follow_ups.json.jbuilder +14 -0
  33. data/app/views/educode_sales/ideas/index.html.erb +12 -353
  34. data/app/views/educode_sales/ideas/index.json.jbuilder +7 -1
  35. data/app/views/educode_sales/ideas/new.html.erb +81 -25
  36. data/app/views/educode_sales/ideas/new_follow_up.html.erb +105 -0
  37. data/app/views/educode_sales/ideas/search_new.html.erb +1 -1
  38. data/app/views/educode_sales/ideas/show_schools.html.erb +84 -0
  39. data/app/views/educode_sales/ideas/show_schools.json.jbuilder +12 -0
  40. data/app/views/educode_sales/ideas/show_teachers.html.erb +372 -0
  41. data/app/views/educode_sales/ideas/upload_file.html.erb +43 -0
  42. data/app/views/educode_sales/projects/detail.html.erb +1 -1
  43. data/app/views/educode_sales/projects/edit.html.erb +1 -1
  44. data/app/views/educode_sales/roles/edit.html.erb +16 -0
  45. data/app/views/layouts/educode_sales/application.html.erb +5 -5
  46. data/config/routes.rb +19 -0
  47. data/db/migrate/20230227061043_create_educode_sales_ideas.rb +2 -2
  48. data/db/migrate/20230430023424_add_plan_signed_date_to_follow_ups.rb +21 -0
  49. data/db/migrate/20230430040332_create_educode_sales_contract_date_lists.rb +15 -0
  50. data/db/migrate/20230430104708_create_idea_follows.rb +25 -0
  51. data/db/migrate/20230430121335_add_permissions_for_ideas.rb +16 -0
  52. data/db/migrate/20230430134710_create_educode_sales_assign_staffs.rb +11 -0
  53. data/lib/educode_sales/version.rb +1 -1
  54. 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? :contract_business, EducodeSales::Business %>
67
- <dd><a href="/missions/businesses/contract" class="<%= current?('layui-this', contract_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>
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="<%= 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>
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
@@ -0,0 +1,11 @@
1
+ class CreateEducodeSalesAssignStaffs < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_assign_staffs do |t|
4
+ t.references :staff
5
+ t.string :sourcable_type
6
+ t.integer :sourcable_id
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.9.73'
2
+ VERSION = '0.9.74'
3
3
  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.73
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-04-28 00:00:00.000000000 Z
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