educode_sales 0.9.72 → 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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  3. data/app/controllers/educode_sales/contracts_controller.rb +309 -0
  4. data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
  5. data/app/controllers/educode_sales/home_controller.rb +7 -0
  6. data/app/controllers/educode_sales/ideas_controller.rb +146 -76
  7. data/app/controllers/educode_sales/project_charts_controller.rb +145 -0
  8. data/app/controllers/educode_sales/roles_controller.rb +2 -1
  9. data/app/controllers/educode_sales/upload_files_controller.rb +3 -0
  10. data/app/helpers/educode_sales/application_helper.rb +153 -6
  11. data/app/models/educode_sales/assign_staff.rb +6 -0
  12. data/app/models/educode_sales/contract_date_list.rb +6 -0
  13. data/app/models/educode_sales/follow_up.rb +6 -0
  14. data/app/models/educode_sales/idea.rb +16 -5
  15. data/app/models/educode_sales/idea_follow.rb +11 -0
  16. data/app/models/educode_sales/permission.rb +2 -1
  17. data/app/models/educode_sales/role_area.rb +2 -1
  18. data/app/views/educode_sales/businesses/_contract_list.html.erb +160 -0
  19. data/app/views/educode_sales/contracts/_follows.html.erb +323 -0
  20. data/app/views/educode_sales/contracts/_list.html.erb +596 -0
  21. data/app/views/educode_sales/contracts/follow_ups.json.jbuilder +23 -0
  22. data/app/views/educode_sales/contracts/index.html.erb +50 -0
  23. data/app/views/educode_sales/contracts/index.json.jbuilder +74 -0
  24. data/app/views/educode_sales/contracts/list.js.erb +1 -0
  25. data/app/views/educode_sales/contracts/new_follow_up.html.erb +671 -0
  26. data/app/views/educode_sales/home/staff_business.json.jbuilder +9 -0
  27. data/app/views/educode_sales/idea_recycles/detail.html.erb +4 -4
  28. data/app/views/educode_sales/idea_recycles/index.html.erb +5 -5
  29. data/app/views/educode_sales/ideas/_follows.html.erb +258 -0
  30. data/app/views/educode_sales/ideas/_index.html.erb +544 -0
  31. data/app/views/educode_sales/ideas/detail.html.erb +7 -7
  32. data/app/views/educode_sales/ideas/edit.html.erb +77 -15
  33. data/app/views/educode_sales/ideas/files.html.erb +157 -0
  34. data/app/views/educode_sales/ideas/files.json.jbuilder +13 -0
  35. data/app/views/educode_sales/ideas/follow_ups.json.jbuilder +14 -0
  36. data/app/views/educode_sales/ideas/index.html.erb +12 -353
  37. data/app/views/educode_sales/ideas/index.json.jbuilder +7 -1
  38. data/app/views/educode_sales/ideas/new.html.erb +81 -25
  39. data/app/views/educode_sales/ideas/new_follow_up.html.erb +105 -0
  40. data/app/views/educode_sales/ideas/search_new.html.erb +1 -1
  41. data/app/views/educode_sales/ideas/show_schools.html.erb +84 -0
  42. data/app/views/educode_sales/ideas/show_schools.json.jbuilder +12 -0
  43. data/app/views/educode_sales/ideas/show_teachers.html.erb +372 -0
  44. data/app/views/educode_sales/ideas/upload_file.html.erb +43 -0
  45. data/app/views/educode_sales/project_charts/_sales_analysis.html.erb +436 -0
  46. data/app/views/educode_sales/project_charts/sales_analysis.js.erb +1 -0
  47. data/app/views/educode_sales/project_charts/trends.html.erb +81 -0
  48. data/app/views/educode_sales/project_charts/trends.json.jbuilder +4 -0
  49. data/app/views/educode_sales/projects/detail.html.erb +1 -1
  50. data/app/views/educode_sales/projects/edit.html.erb +1 -1
  51. data/app/views/educode_sales/roles/edit.html.erb +16 -0
  52. data/app/views/layouts/educode_sales/application.html.erb +8 -8
  53. data/config/routes.rb +30 -0
  54. data/db/migrate/20230227061043_create_educode_sales_ideas.rb +2 -2
  55. data/db/migrate/20230430023424_add_plan_signed_date_to_follow_ups.rb +21 -0
  56. data/db/migrate/20230430040332_create_educode_sales_contract_date_lists.rb +15 -0
  57. data/db/migrate/20230430104708_create_idea_follows.rb +25 -0
  58. data/db/migrate/20230430121335_add_permissions_for_ideas.rb +16 -0
  59. data/db/migrate/20230430134710_create_educode_sales_assign_staffs.rb +11 -0
  60. data/lib/educode_sales/version.rb +1 -1
  61. metadata +40 -6
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
@@ -276,12 +286,32 @@ EducodeSales::Engine.routes.draw do
276
286
  member do
277
287
  end
278
288
  end
289
+
290
+ resources :project_charts do
291
+ collection do
292
+ get :trends
293
+ post :sale_trends
294
+ get :business_followup_analysis
295
+ get :sales_analysis
296
+ get :business_area
297
+ get :sales_followup_analysis
298
+ end
299
+ end
279
300
  resources :ideas do
280
301
  collection do
281
302
  get :detail
282
303
  get :history
304
+ get :show_teachers
305
+ get :new_follow_up
306
+ get :follow_ups
307
+ post :add_advise
308
+ get :upload_file
283
309
  end
284
310
  member do
311
+ get :show_schools
312
+ post :follow_up
313
+ put :update_advise
314
+ get :files
285
315
  end
286
316
  end
287
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.72'
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.72
4
+ version: 0.9.74
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-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
@@ -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
@@ -147,6 +148,7 @@ files:
147
148
  - app/controllers/educode_sales/assessments_controller.rb
148
149
  - app/controllers/educode_sales/businesses_controller.rb
149
150
  - app/controllers/educode_sales/commons_controller.rb
151
+ - app/controllers/educode_sales/contracts_controller.rb
150
152
  - app/controllers/educode_sales/customer_extensions_controller.rb
151
153
  - app/controllers/educode_sales/customer_follows_controller.rb
152
154
  - app/controllers/educode_sales/customers_controller.rb
@@ -163,6 +165,7 @@ files:
163
165
  - app/controllers/educode_sales/operations_controller.rb
164
166
  - app/controllers/educode_sales/places_controller.rb
165
167
  - app/controllers/educode_sales/plans_controller.rb
168
+ - app/controllers/educode_sales/project_charts_controller.rb
166
169
  - app/controllers/educode_sales/projects_controller.rb
167
170
  - app/controllers/educode_sales/recycles_controller.rb
168
171
  - app/controllers/educode_sales/results_controller.rb
@@ -195,6 +198,7 @@ files:
195
198
  - app/models/educode_sales/application_record.rb
196
199
  - app/models/educode_sales/assessments_setting.rb
197
200
  - app/models/educode_sales/assign_follow_up.rb
201
+ - app/models/educode_sales/assign_staff.rb
198
202
  - app/models/educode_sales/business.rb
199
203
  - app/models/educode_sales/business_clazz_change.rb
200
204
  - app/models/educode_sales/business_export_record.rb
@@ -205,6 +209,7 @@ files:
205
209
  - app/models/educode_sales/business_relation_ship.rb
206
210
  - app/models/educode_sales/business_watch.rb
207
211
  - app/models/educode_sales/common.rb
212
+ - app/models/educode_sales/contract_date_list.rb
208
213
  - app/models/educode_sales/course_subject.rb
209
214
  - app/models/educode_sales/customer.rb
210
215
  - app/models/educode_sales/customer_add.rb
@@ -214,6 +219,7 @@ files:
214
219
  - app/models/educode_sales/filter.rb
215
220
  - app/models/educode_sales/follow_up.rb
216
221
  - app/models/educode_sales/idea.rb
222
+ - app/models/educode_sales/idea_follow.rb
217
223
  - app/models/educode_sales/idea_history.rb
218
224
  - app/models/educode_sales/key_person.rb
219
225
  - app/models/educode_sales/login_history.rb
@@ -266,6 +272,7 @@ files:
266
272
  - app/views/educode_sales/assessments/new.html.erb
267
273
  - app/views/educode_sales/assessments/progress.json.jbuilder
268
274
  - app/views/educode_sales/businesses/_contract.html.erb
275
+ - app/views/educode_sales/businesses/_contract_list.html.erb
269
276
  - app/views/educode_sales/businesses/_follows.html.erb
270
277
  - app/views/educode_sales/businesses/contract.html.erb
271
278
  - app/views/educode_sales/businesses/contract.json.jbuilder
@@ -298,6 +305,13 @@ files:
298
305
  - app/views/educode_sales/commons/index.json.jbuilder
299
306
  - app/views/educode_sales/commons/new.html.erb
300
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
301
315
  - app/views/educode_sales/customers/edit.html.erb
302
316
  - app/views/educode_sales/customers/edit_department.html.erb
303
317
  - app/views/educode_sales/customers/edit_follow_record.html.erb
@@ -332,6 +346,7 @@ files:
332
346
  - app/views/educode_sales/home/search_operation_teacher.json.jbuilder
333
347
  - app/views/educode_sales/home/search_teacher.json.jbuilder
334
348
  - app/views/educode_sales/home/search_users.json.jbuilder
349
+ - app/views/educode_sales/home/staff_business.json.jbuilder
335
350
  - app/views/educode_sales/home/staff_departments.json.jbuilder
336
351
  - app/views/educode_sales/home/staff_schools.json.jbuilder
337
352
  - app/views/educode_sales/home/statistics.html.erb
@@ -357,6 +372,8 @@ files:
357
372
  - app/views/educode_sales/idea_recycles/show_follow.json.jbuilder
358
373
  - app/views/educode_sales/idea_recycles/show_follow_record.html.erb
359
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
360
377
  - app/views/educode_sales/ideas/activities.json.jbuilder
361
378
  - app/views/educode_sales/ideas/add_courses.html.erb
362
379
  - app/views/educode_sales/ideas/add_event.html.erb
@@ -367,18 +384,26 @@ files:
367
384
  - app/views/educode_sales/ideas/detail.html.erb
368
385
  - app/views/educode_sales/ideas/edit.html.erb
369
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
370
390
  - app/views/educode_sales/ideas/history.html.erb
371
391
  - app/views/educode_sales/ideas/import.html.erb
372
392
  - app/views/educode_sales/ideas/index.html.erb
373
393
  - app/views/educode_sales/ideas/index.json.jbuilder
374
394
  - app/views/educode_sales/ideas/new.html.erb
375
395
  - app/views/educode_sales/ideas/new_follow_record.html.erb
396
+ - app/views/educode_sales/ideas/new_follow_up.html.erb
376
397
  - app/views/educode_sales/ideas/search_new.html.erb
377
398
  - app/views/educode_sales/ideas/show_class.html.erb
378
399
  - app/views/educode_sales/ideas/show_follow.html.erb
379
400
  - app/views/educode_sales/ideas/show_follow.json.jbuilder
380
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
381
405
  - app/views/educode_sales/ideas/unfinish_plans.json.jbuilder
406
+ - app/views/educode_sales/ideas/upload_file.html.erb
382
407
  - app/views/educode_sales/logs/index.html.erb
383
408
  - app/views/educode_sales/logs/index.json.jbuilder
384
409
  - app/views/educode_sales/money_plans/index.html.erb
@@ -444,6 +469,10 @@ files:
444
469
  - app/views/educode_sales/plans/show_week.html.erb
445
470
  - app/views/educode_sales/plans/show_weekly.html.erb
446
471
  - app/views/educode_sales/plans/years_plan.json.jbuilder
472
+ - app/views/educode_sales/project_charts/_sales_analysis.html.erb
473
+ - app/views/educode_sales/project_charts/sales_analysis.js.erb
474
+ - app/views/educode_sales/project_charts/trends.html.erb
475
+ - app/views/educode_sales/project_charts/trends.json.jbuilder
447
476
  - app/views/educode_sales/projects/detail.html.erb
448
477
  - app/views/educode_sales/projects/edit.html.erb
449
478
  - app/views/educode_sales/projects/history.html.erb
@@ -619,6 +648,11 @@ files:
619
648
  - db/migrate/20230414031409_add_major_educode_sales_customer_follows.rb
620
649
  - db/migrate/20230414035655_create_educode_sales_eco_staffs.rb
621
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
622
656
  - lib/educode_sales.rb
623
657
  - lib/educode_sales/engine.rb
624
658
  - lib/educode_sales/version.rb
@@ -627,7 +661,7 @@ homepage: https://www.educoder.net
627
661
  licenses:
628
662
  - MIT
629
663
  metadata: {}
630
- post_install_message:
664
+ post_install_message:
631
665
  rdoc_options: []
632
666
  require_paths:
633
667
  - lib
@@ -642,8 +676,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
642
676
  - !ruby/object:Gem::Version
643
677
  version: '0'
644
678
  requirements: []
645
- rubygems_version: 3.0.0
646
- signing_key:
679
+ rubygems_version: 3.0.9
680
+ signing_key:
647
681
  specification_version: 4
648
682
  summary: Summary of EducodeSales.
649
683
  test_files: []