educode_sales 0.6.3 → 0.6.7

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/money_plans.png +0 -0
  3. data/app/controllers/educode_sales/activities_controller.rb +0 -2
  4. data/app/controllers/educode_sales/businesses_controller.rb +103 -47
  5. data/app/controllers/educode_sales/money_plans_controller.rb +65 -0
  6. data/app/controllers/educode_sales/roles_controller.rb +4 -1
  7. data/app/controllers/educode_sales/sale_trends_controller.rb +145 -30
  8. data/app/controllers/educode_sales/staffs_controller.rb +3 -4
  9. data/app/controllers/educode_sales/teacher_follows_controller.rb +1 -93
  10. data/app/models/educode_sales/business_export_record.rb +5 -0
  11. data/app/models/educode_sales/permission.rb +2 -1
  12. data/app/models/educode_sales/role_area.rb +1 -0
  13. data/app/views/educode_sales/activities/index.html.erb +7 -1
  14. data/app/views/educode_sales/activities/new.html.erb +1 -1
  15. data/app/views/educode_sales/businesses/_follows.html.erb +15 -15
  16. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +13 -4
  17. data/app/views/educode_sales/businesses/edit_plan.html.erb +5 -2
  18. data/app/views/educode_sales/businesses/export_records.html.erb +53 -0
  19. data/app/views/educode_sales/businesses/export_records.json.jbuilder +11 -0
  20. data/app/views/educode_sales/businesses/file.html.erb +8 -4
  21. data/app/views/educode_sales/businesses/index.html.erb +121 -14
  22. data/app/views/educode_sales/businesses/index.json.jbuilder +34 -4
  23. data/app/views/educode_sales/businesses/new_follow_record.html.erb +10 -5
  24. data/app/views/educode_sales/businesses/show_follow.html.erb +1 -0
  25. data/app/views/educode_sales/commons/index.html.erb +7 -1
  26. data/app/views/educode_sales/customers/edit.html.erb +690 -10
  27. data/app/views/educode_sales/customers/edit_follow_record.html.erb +1 -1
  28. data/app/views/educode_sales/customers/index.json.jbuilder +2 -1
  29. data/app/views/educode_sales/customers/new.html.erb +691 -11
  30. data/app/views/educode_sales/customers/new_follow_record.html.erb +1 -1
  31. data/app/views/educode_sales/customers/show_follow.html.erb +1 -1
  32. data/app/views/educode_sales/money_plans/index.html.erb +222 -0
  33. data/app/views/educode_sales/money_plans/index.json.jbuilder +21 -0
  34. data/app/views/educode_sales/places/index.html.erb +16 -2
  35. data/app/views/educode_sales/places/index.json.jbuilder +3 -1
  36. data/app/views/educode_sales/plans/_monthPlan.html.erb +2 -1
  37. data/app/views/educode_sales/plans/_weekPlan.html.erb +2 -1
  38. data/app/views/educode_sales/recycles/business.json.jbuilder +2 -2
  39. data/app/views/educode_sales/roles/edit.html.erb +8 -0
  40. data/app/views/educode_sales/roles/index.html.erb +7 -1
  41. data/app/views/educode_sales/sale_trends/trends.html.erb +145 -33
  42. data/app/views/educode_sales/sale_trends/trends.json.jbuilder +4 -14
  43. data/app/views/educode_sales/sales/index.html.erb +2 -0
  44. data/app/views/educode_sales/sales/index.json.jbuilder +2 -2
  45. data/app/views/educode_sales/sales/operations.json.jbuilder +2 -2
  46. data/app/views/educode_sales/teachers/index.html.erb +15 -7
  47. data/app/views/layouts/educode_sales/application.html.erb +18 -2
  48. data/config/routes.rb +4 -0
  49. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +10 -0
  50. data/lib/educode_sales/version.rb +1 -1
  51. metadata +9 -2
@@ -6,11 +6,9 @@ json.data do
6
6
  json.department d.department.name
7
7
  json.school d.department.school.name
8
8
  json.school_id d.department.school.id
9
- json.follow_ups_count d.follow_ups_count
9
+ json.follow_ups_count d.follow_ups.where(deleted_at: nil).size
10
10
  follow_ups_count += d.follow_ups_count
11
11
  json.follow_up_id d.last_follow_up_id
12
- # json.teachers_count d.follow_ups.sum(:key_people_count)
13
- # json.teachers_count EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).present? ? EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).key_people_count : 0
14
12
  json.clazz d.last_follow_up&.clazz&.name || ""
15
13
  json.stage d.last_follow_up&.stage&.name
16
14
  json.invitation_at d.last_follow_up&.invitation_at.to_s
@@ -20,13 +18,45 @@ json.data do
20
18
  json.total_amount d.last_follow_up&.total_amount
21
19
  json.actual_amount d.last_follow_up&.actual_amount
22
20
  json.return_money d.return_money
21
+ json.wait_return_money d.wait_return_money.to_i.round(2)
22
+ json.return_money_days d.last_follow_up&.reception_at.present? && d.last_follow_up.money_plans.where(clazz: '已完成').present? ? (d.last_follow_up.money_plans.where(clazz: '已完成').order(created_at: :asc).first.date_at.to_s(:date).to_date - d.last_follow_up&.reception_at).to_i : ''
23
23
  json.place d.last_follow_up&.place&.name
24
24
  json.last_follow_person d.last_follow_up.present? ? d.last_follow_up.staff.user.real_name : EducodeSales::Staff.find(d.staff_id).user.real_name
25
25
  json.source d.source
26
26
  json.assign_follow_ups d.last_follow_up.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : []
27
27
  json.current_staff_id @current_admin.id
28
28
  json.staff_id d.staff_id
29
- json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : d.created_at.to_s
29
+ json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
30
+ end
31
+ end
32
+ json.data1 do
33
+ json.array! @businesses_exports do |d|
34
+ json.id d.id
35
+ json.name d.name
36
+ json.department d.department.name
37
+ json.school d.department.school.name
38
+ json.school_id d.department.school.id
39
+ json.follow_ups_count d.follow_ups.where(deleted_at: nil).size
40
+ follow_ups_count += d.follow_ups_count
41
+ json.follow_up_id d.last_follow_up_id
42
+ json.clazz d.last_follow_up&.clazz&.name || ""
43
+ json.stage d.last_follow_up&.stage&.name
44
+ json.invitation_at d.last_follow_up&.invitation_at.to_s
45
+ json.reception_at d.last_follow_up&.reception_at.to_s
46
+ json.bidded_date d.last_follow_up&.bidded_date.to_s
47
+ json.signed_date d.last_follow_up&.signed_date.to_s
48
+ json.total_amount d.last_follow_up&.total_amount
49
+ json.actual_amount d.last_follow_up&.actual_amount
50
+ json.return_money d.return_money
51
+ json.wait_return_money d.wait_return_money.to_i.round(2)
52
+ json.return_money_days d.last_follow_up&.reception_at.present? && d.last_follow_up.money_plans.where(clazz: '已完成').present? ? (d.last_follow_up.money_plans.where(clazz: '已完成').order(created_at: :asc).first.date_at.to_s(:date).to_date - d.last_follow_up&.reception_at).to_i : ''
53
+ json.place d.last_follow_up&.place&.name
54
+ json.last_follow_person d.last_follow_up.present? ? d.last_follow_up.staff.user.real_name : EducodeSales::Staff.find(d.staff_id).user.real_name
55
+ json.source d.source
56
+ json.assign_follow_ups d.last_follow_up.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : []
57
+ json.current_staff_id @current_admin.id
58
+ json.staff_id d.staff_id
59
+ json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
30
60
  end
31
61
  end
32
62
 
@@ -74,26 +74,30 @@
74
74
  <input name="total_amount" type="number" class="layui-input" autocomplete="off"
75
75
  value="<%= @last_follow_up&.total_amount%>">
76
76
  </div>
77
- </div>
77
+ 客户采购支出的费用。总额的生命历程:1.在最初阶段,是商机的预算总额;2.在挂网阶段,是项目的挂网预算总额;3.在中标阶段,是项目的中标总额。 </div>
78
+ <br>
78
79
  <div class="layui-inline">
79
80
  <label class="layui-form-label">合同额(万)</label>
80
81
  <div class="layui-input-inline">
81
82
  <input name="actual_amount" type="number" class="layui-input" autocomplete="off" placeholder="本单位的签单金额"
82
83
  value="<%= @last_follow_up&.actual_amount%>">
83
84
  </div>
85
+ 客户签给头歌的费用。合同额的生命历程:1.在中标之前,合同额都是0;2.在中标之后,实际与头歌签合同的金额。
84
86
  </div>
85
87
  <br>
86
88
  <div class="layui-inline new_place_select">
87
89
  <label class="layui-form-label">渠道</label>
88
- <div class="layui-input-inline" style="z-index: 101">
90
+ <div class="layui-input-inline" style="">
89
91
  <div id="place" style="width: 190px;"></div>
90
92
  </div>
91
93
  </div>
94
+ <br>
92
95
  <div class="layui-inline">
93
96
  <label class="layui-form-label">渠道分成(万)</label>
94
97
  <div class="layui-input-inline">
95
98
  <input name="divide_amount" class="layui-input" value="<%= @last_follow_up&.divide_amount%>">
96
99
  </div>
100
+ 总额里,渠道拿到的部分。
97
101
  </div>
98
102
  <div class="layui-form-item">
99
103
  <div class="layui-inline">
@@ -106,10 +110,10 @@
106
110
  </div>
107
111
  <div class="layui-form-item">
108
112
  <label class="layui-form-label">指定跟进人</label>
109
- <div class="layui-input-inline" style="z-index: 100">
113
+ <div class="layui-input-inline" style="">
110
114
  <div id="assign_follow" style="width: 512px;"></div>
111
115
  </div>
112
- <div class="layui-inline" style="padding: 9px 15px">
116
+ <div class="layui-inline" style="padding: 9px 15px;z-index: -1;">
113
117
  <label class="layui-form-label" style="padding-left: 220px"></label>
114
118
  指定跟进人和商机创建者,同时拥有对该商机的管理权限
115
119
  </div>
@@ -139,7 +143,7 @@
139
143
  </div>
140
144
  <div class="layui-form-item m-t-20">
141
145
  <div class="layui-input-block">
142
- <button class="layui-btn layui-btn-normal" lay-submit lay-filter="add_follow_up">提交</button>
146
+ <button class="layui-btn layui-btn-normal submit-btn" lay-submit lay-filter="add_follow_up">提交</button>
143
147
  </div>
144
148
  </div>
145
149
  </div>
@@ -244,6 +248,7 @@
244
248
  form.render();
245
249
 
246
250
  form.on('submit(add_follow_up)', function (data) {
251
+ $(".submit-btn").addClass("layui-hide");
247
252
  var assign_follow = [];
248
253
  sales_list.getValue().forEach(function(d) {
249
254
  assign_follow.push(d.value);
@@ -121,6 +121,7 @@
121
121
  field: 'description',
122
122
  width: 120,
123
123
  title: '最新进展',
124
+ templet:'<div><span title="{{d.description}}">{{d.description}}</span></div>'
124
125
  },
125
126
  {
126
127
  field: 'invitation_at',
@@ -129,4 +129,10 @@
129
129
  });
130
130
 
131
131
  });
132
- </script>
132
+ </script>
133
+ <style>
134
+ .layui-table-tool-temp{
135
+ padding-right: 0px; !important;
136
+ }
137
+
138
+ </style>