educode_sales 1.10.58 → 1.10.59

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.
@@ -1,99 +1,122 @@
1
1
  <div class="layui-tab" lay-filter="sale_tab">
2
2
  <ul class="layui-tab-title">
3
- <li class="layui-this" data="week">周计划</li>
4
- <li data="weekly">周报</li>
5
- <li data="month">月计划</li>
6
- <li data="monthly">月报</li>
7
- <li data="year">年计划</li>
8
- <!-- <li data="target_track">年度执行</li> -->
3
+ <!-- <li data="week">周计划</li>-->
4
+ <!-- <li data="weekly">周报</li>-->
5
+ <!-- <li data="month">月计划</li>-->
6
+ <!-- <li data="monthly">月报</li>-->
7
+ <!-- <li data="year">年计划</li>-->
8
+ <li class="layui-this" data="year_execute">年度执行</li>
9
+ <li data="year_plan">年度目标</li>
9
10
  </ul>
10
11
  <div class="layui-tab-content">
11
- <div class="layui-tab-item layui-show">
12
- <%= render 'weekPlan' %>
12
+ <!-- <div class="layui-tab-item layui-show">-->
13
+ <%#= render 'weekPlan' %>
14
+ <!-- </div>-->
15
+ <!-- <div class="layui-tab-item">-->
16
+ <!-- <div id="weekly_tab_wraper"></div>-->
17
+ <!-- </div>-->
18
+ <!-- <div class="layui-tab-item ">-->
19
+ <!-- <div id="month_plan_tab_wraper"></div>-->
20
+ <!-- </div>-->
21
+ <!-- <div class="layui-tab-item">-->
22
+ <!-- <div id="monthly_tab_wraper"></div>-->
23
+ <!-- </div>-->
24
+ <!-- <div class="layui-tab-item">-->
25
+ <!-- <div id="year_plan_tab_wraper"></div>-->
26
+ <!-- </div>-->
27
+ <div class="layui-tab-item layui-show" id="year_execute_tab">
13
28
  </div>
14
- <div class="layui-tab-item">
15
- <div id="weekly_tab_wraper"></div>
16
- </div>
17
- <div class="layui-tab-item ">
18
- <div id="month_plan_tab_wraper"></div>
19
- </div>
20
- <div class="layui-tab-item">
21
- <div id="monthly_tab_wraper"></div>
22
- </div>
23
- <div class="layui-tab-item">
24
- <div id="year_plan_tab_wraper"></div>
25
- </div>
26
- <div class="layui-tab-item" id="target_track_tab">
29
+ <div class="layui-tab-item " id="year_target_tab">
27
30
  </div>
28
31
  </div>
29
32
  </div>
30
33
 
31
34
  <script>
32
- layui.use(['element', 'table', 'jquery'], function () {
33
- var $ = layui.jquery,
34
- table = layui.table,
35
- element = layui.element;
36
- // element.on('tab(sale_tab)', function (data) {
37
- // var status = $(this).attr('data')
38
- // switch (status) {
39
- // case 'week':
40
- // $("#week_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
41
- // $("#week_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
42
- // break;
43
- // case 'weekly':
44
- // $("#sales_weelky_table .layui-table-fixed-r")[0].classList.remove('layui-hide');
45
- // $("#sales_weelky_table .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
46
- // break;
47
- // ;
48
- // case 'monthly':
49
- // $("#monthly_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
50
- // $("#monthly_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
51
- // break;
52
- // case 'month':
53
- // $("#month_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
54
- // $("#month_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
55
- // break;
56
- // case 'year':
57
- // $("#year_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
58
- // $("#year_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
59
- // break;
60
- // }
61
-
62
-
63
- // })
35
+ layui.use(['element', 'table', 'jquery'], function () {
36
+ var $ = layui.jquery,
37
+ table = layui.table,
38
+ element = layui.element;
39
+ // element.on('tab(sale_tab)', function (data) {
40
+ // var status = $(this).attr('data')
41
+ // switch (status) {
42
+ // case 'week':
43
+ // $("#week_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
44
+ // $("#week_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
45
+ // break;
46
+ // case 'weekly':
47
+ // $("#sales_weelky_table .layui-table-fixed-r")[0].classList.remove('layui-hide');
48
+ // $("#sales_weelky_table .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
49
+ // break;
50
+ // ;
51
+ // case 'monthly':
52
+ // $("#monthly_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
53
+ // $("#monthly_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
54
+ // break;
55
+ // case 'month':
56
+ // $("#month_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
57
+ // $("#month_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
58
+ // break;
59
+ // case 'year':
60
+ // $("#year_table_wraper .layui-table-fixed-r")[0].classList.remove('layui-hide');
61
+ // $("#year_table_wraper .layui-table-fixed-r .layui-table-body")[0].style.height="auto";
62
+ // break;
63
+ // }
64
64
 
65
65
 
66
- element.render();
67
- element.on('tab(sale_tab)', function(data) {
68
- if (data.index == 1 && $("#sales_weelky_table").length == 0) {
69
- loadPage('/missions/plans/weekly')
70
- } else if (data.index == 2 && $("#month_table_wraper").length == 0) {
71
- loadPage('/missions/plans/month_plan')
72
- } else if (data.index == 3 && $("#monthly_table_wraper").length == 0) {
73
- loadPage('/missions/plans/monthly')
74
- } else if (data.index == 4 && $("#year_table_wraper").length == 0) {
75
- loadPage('/missions/plans/year_plan')
76
- } else if (data.index == 5 && $("#target_track_wraper").length == 0) {
77
- loadPage('/missions/plans/target_track')
78
- }
79
- });
66
+ // })
67
+ loadPage('/missions/plans/year_execute')
68
+ element.render();
69
+ element.on('tab(sale_tab)', function (data) {
70
+ if (data.index === 0 && $("#year_execute_wraper").length == 0) {
71
+ loadPage('/missions/plans/year_execute')
72
+ } else if (data.index === 1 && $("#year_target_wraper").length == 0) {
73
+ loadPage('/missions/plans/year_target')
74
+ }
75
+ });
76
+ /*
77
+ element.on('tab(sale_tab)', function (data) {
78
+ if (data.index == 1 && $("#sales_weelky_table").length == 0) {
79
+ loadPage('/missions/plans/weekly')
80
+ } else if (data.index == 2 && $("#month_table_wraper").length == 0) {
81
+ loadPage('/missions/plans/month_plan')
82
+ } else if (data.index == 3 && $("#monthly_table_wraper").length == 0) {
83
+ loadPage('/missions/plans/monthly')
84
+ } else if (data.index == 4 && $("#year_table_wraper").length == 0) {
85
+ loadPage('/missions/plans/year_plan')
86
+ } else if (data.index == 5 && $("#year_execute_wraper").length == 0) {
87
+ loadPage('/missions/plans/year_execute')
88
+ } else if (data.index == 6 && $("#year_target_wraper").length == 0) {
89
+ loadPage('/missions/plans/year_target')
90
+ }
91
+ });
92
+ */
80
93
 
81
94
 
82
- function loadPage(url) {
83
- var layer_index = layer.load(0, {shade: [0.1, '#fff']});
84
- Rails.ajax({
85
- url: url,
86
- type: 'GET',
87
- dataType: "script",
88
- success: function (res) {
89
- layer.close(layer_index);
95
+ function loadPage(url) {
96
+ var layer_index = layer.load(0, {shade: [0.1, '#fff']});
97
+ Rails.ajax({
98
+ url: url,
99
+ type: 'GET',
100
+ dataType: "script",
101
+ success: function (res) {
102
+ layer.close(layer_index);
103
+ }
104
+ });
90
105
  }
91
- });
92
- }
93
- })
94
- </script>
106
+ })
107
+ </script>
95
108
  <style>
96
- .layui-table-tool-temp{
97
- padding-right: 30px; !important;
109
+ .layui-table-tool-temp {
110
+ padding-right: 30px;
111
+ !important;
112
+ }
113
+
114
+ .layui-table-view .layui-table td[data-edit] .layui-table-cell {
115
+ background: #e4fad2;
116
+ }
117
+
118
+ .mtarget {
119
+ color: #46d1db;
120
+ font-weight: bold;
98
121
  }
99
122
  </style>
@@ -0,0 +1 @@
1
+ $("#year_execute_tab").html("<%= j render 'year_execute' %>");
@@ -0,0 +1 @@
1
+ $("#year_target_tab").html("<%= j render 'year_target' %>");
@@ -0,0 +1,48 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.id d.id
4
+ json.num d.num
5
+ json.is_use d.is_use
6
+ json.staff d.staff.user.real_name
7
+ json.staff_id d.staff_id
8
+ json.school_tag d.school_tag.name
9
+ json.school_tag_id d.school_tag_id
10
+ json.year d.year
11
+ json.target_clazz d.target_clazz
12
+ json.year_target d.year_target
13
+ json.year_finish d.year_finish
14
+ json.year_diff d.year_diff
15
+ json.reviewer d.reviewer&.user&.real_name
16
+ json.comment d.comment
17
+ json.state d.state
18
+ json.target_1 d.target_1
19
+ json.m_target_1 d.m_target_1
20
+ json.target_2 d.target_2
21
+ json.m_target_2 d.m_target_2
22
+ json.target_3 d.target_3
23
+ json.m_target_3 d.m_target_3
24
+ json.target_4 d.target_4
25
+ json.m_target_4 d.m_target_4
26
+ json.target_5 d.target_5
27
+ json.m_target_5 d.m_target_5
28
+ json.target_6 d.target_6
29
+ json.m_target_6 d.m_target_6
30
+ json.target_7 d.target_7
31
+ json.m_target_7 d.m_target_7
32
+ json.target_8 d.target_8
33
+ json.m_target_8 d.m_target_8
34
+ json.target_9 d.target_9
35
+ json.m_target_9 d.m_target_9
36
+ json.target_10 d.target_10
37
+ json.m_target_10 d.m_target_10
38
+ json.target_11 d.target_11
39
+ json.m_target_11 d.m_target_11
40
+ json.target_12 d.target_12
41
+ json.m_target_12 d.m_target_12
42
+ json.updated_at d.updated_at.to_s(:date)
43
+
44
+ end
45
+ end
46
+
47
+ json.code 0
48
+ json.count @data.total_count
@@ -0,0 +1,53 @@
1
+ json.data do
2
+ json.array! @data do |item|
3
+ json.id item['id']
4
+ json.name item['name']
5
+ json.school_tag_id item['school_tag_id']
6
+ json.school_tag_name item['school_tag_name']
7
+ json.target_clazz item['target_clazz']
8
+ json.target_1 item['target_1'].present? ? item['target_1'].round(2) : 0
9
+ json.target_2 item['target_2'].present? ? item['target_2'].round(2) : 0
10
+ json.target_3 item['target_3'].present? ? item['target_3'].round(2) : 0
11
+ json.target_4 item['target_4'].present? ? item['target_4'].round(2) : 0
12
+ json.target_5 item['target_5'].present? ? item['target_5'].round(2) : 0
13
+ json.target_6 item['target_6'].present? ? item['target_6'].round(2) : 0
14
+ json.target_7 item['target_7'].present? ? item['target_7'].round(2) : 0
15
+ json.target_8 item['target_8'].present? ? item['target_8'].round(2) : 0
16
+ json.target_9 item['target_9'].present? ? item['target_9'].round(2) : 0
17
+ json.target_10 item['target_10'].present? ? item['target_10'].round(2) : 0
18
+ json.target_11 item['target_11'].present? ? item['target_11'].round(2) : 0
19
+ json.target_12 item['target_12'].present? ? item['target_12'].round(2) : 0
20
+ json.finish_1 item['finish_1'].present? ? item['finish_1'].round(2) : 0
21
+ json.finish_2 item['finish_2'].present? ? item['finish_2'].round(2) : 0
22
+ json.finish_3 item['finish_3'].present? ? item['finish_3'].round(2) : 0
23
+ json.finish_4 item['finish_4'].present? ? item['finish_4'].round(2) : 0
24
+ json.finish_5 item['finish_5'].present? ? item['finish_5'].round(2) : 0
25
+ json.finish_6 item['finish_6'].present? ? item['finish_6'].round(2) : 0
26
+ json.finish_7 item['finish_7'].present? ? item['finish_7'].round(2) : 0
27
+ json.finish_8 item['finish_8'].present? ? item['finish_8'].round(2) : 0
28
+ json.finish_9 item['finish_9'].present? ? item['finish_9'].round(2) : 0
29
+ json.finish_10 item['finish_10'].present? ? item['finish_10'].round(2) : 0
30
+ json.finish_11 item['finish_11'].present? ? item['finish_11'].round(2) : 0
31
+ json.finish_12 item['finish_12'].present? ? item['finish_12'].round(2) : 0
32
+ json.plan_1 item['plan_1'].present? ? item['plan_1'].round(2) : 0
33
+ json.plan_2 item['plan_2'].present? ? item['plan_2'].round(2) : 0
34
+ json.plan_3 item['plan_3'].present? ? item['plan_3'].round(2) : 0
35
+ json.plan_4 item['plan_4'].present? ? item['plan_4'].round(2) : 0
36
+ json.plan_5 item['plan_5'].present? ? item['plan_5'].round(2) : 0
37
+ json.plan_6 item['plan_6'].present? ? item['plan_6'].round(2) : 0
38
+ json.plan_7 item['plan_7'].present? ? item['plan_7'].round(2) : 0
39
+ json.plan_8 item['plan_8'].present? ? item['plan_8'].round(2) : 0
40
+ json.plan_9 item['plan_9'].present? ? item['plan_9'].round(2) : 0
41
+ json.plan_10 item['plan_10'].present? ? item['plan_10'].round(2) : 0
42
+ json.plan_11 item['plan_11'].present? ? item['plan_11'].round(2) : 0
43
+ json.plan_12 item['plan_12'].present? ? item['plan_12'].round(2) : 0
44
+ json.year_target 0
45
+ json.year_clazz_target (item['target_1'].present? ? item['target_1'].round(2) : 0)+(item['target_2'].present? ? item['target_2'].round(2) : 0)+(item['target_3'].present? ? item['target_3'].round(2) : 0)+(item['target_4'].present? ? item['target_4'].round(2) : 0)+(item['target_5'].present? ? item['target_5'].round(2) : 0)+(item['target_6'].present? ? item['target_6'].round(2) : 0)+(item['target_7'].present? ? item['target_7'].round(2) : 0)+(item['target_8'].present? ? item['target_8'].round(2) : 0)+(item['target_9'].present? ? item['target_9'].round(2) : 0)+(item['target_10'].present? ? item['target_10'].round(2) : 0)+(item['target_11'].present? ? item['target_11'].round(2) : 0)+(item['target_12'].present? ? item['target_12'].round(2) : 0)
46
+ json.year_plan (item['plan_1'].present? ? item['plan_1'].round(2) : 0)+(item['plan_2'].present? ? item['plan_2'].round(2) : 0)+(item['plan_3'].present? ? item['plan_3'].round(2) : 0)+(item['plan_4'].present? ? item['plan_4'].round(2) : 0)+(item['plan_5'].present? ? item['plan_5'].round(2) : 0)+(item['plan_6'].present? ? item['plan_6'].round(2) : 0)+(item['plan_7'].present? ? item['plan_7'].round(2) : 0)+(item['plan_8'].present? ? item['plan_8'].round(2) : 0)+(item['plan_9'].present? ? item['plan_9'].round(2) : 0)+(item['plan_10'].present? ? item['plan_10'].round(2) : 0)+(item['plan_11'].present? ? item['plan_11'].round(2) : 0)+(item['plan_12'].present? ? item['plan_12'].round(2) : 0)
47
+ json.year_finish (item['finish_1'].present? ? item['finish_1'].round(2) : 0)+(item['finish_2'].present? ? item['finish_2'].round(2) : 0)+(item['finish_3'].present? ? item['finish_3'].round(2) : 0)+(item['finish_4'].present? ? item['finish_4'].round(2) : 0)+(item['finish_5'].present? ? item['finish_5'].round(2) : 0)+(item['finish_6'].present? ? item['finish_6'].round(2) : 0)+(item['finish_7'].present? ? item['finish_7'].round(2) : 0)+(item['finish_8'].present? ? item['finish_8'].round(2) : 0)+(item['finish_9'].present? ? item['finish_9'].round(2) : 0)+(item['finish_10'].present? ? item['finish_10'].round(2) : 0)+(item['finish_11'].present? ? item['finish_11'].round(2) : 0)+(item['finish_12'].present? ? item['finish_12'].round(2) : 0)
48
+ json.year_diff ((item['plan_1'].present? ? item['plan_1'].round(2) : 0)+(item['plan_2'].present? ? item['plan_2'].round(2) : 0)+(item['plan_3'].present? ? item['plan_3'].round(2) : 0)+(item['plan_4'].present? ? item['plan_4'].round(2) : 0)+(item['plan_5'].present? ? item['plan_5'].round(2) : 0)+(item['plan_6'].present? ? item['plan_6'].round(2) : 0)+(item['plan_7'].present? ? item['plan_7'].round(2) : 0)+(item['plan_8'].present? ? item['plan_8'].round(2) : 0)+(item['plan_9'].present? ? item['plan_9'].round(2) : 0)+(item['plan_10'].present? ? item['plan_10'].round(2) : 0)+(item['plan_11'].present? ? item['plan_11'].round(2) : 0)+(item['plan_12'].present? ? item['plan_12'].round(2) : 0)) - ((item['finish_1'].present? ? item['finish_1'].round(2) : 0)+(item['finish_2'].present? ? item['finish_2'].round(2) : 0)+(item['finish_3'].present? ? item['finish_3'].round(2) : 0)+(item['finish_4'].present? ? item['finish_4'].round(2) : 0)+(item['finish_5'].present? ? item['finish_5'].round(2) : 0)+(item['finish_6'].present? ? item['finish_6'].round(2) : 0)+(item['finish_7'].present? ? item['finish_7'].round(2) : 0)+(item['finish_8'].present? ? item['finish_8'].round(2) : 0)+(item['finish_9'].present? ? item['finish_9'].round(2) : 0)+(item['finish_10'].present? ? item['finish_10'].round(2) : 0)+(item['finish_11'].present? ? item['finish_11'].round(2) : 0)+(item['finish_12'].present? ? item['finish_12'].round(2) : 0))
49
+ end
50
+ end
51
+
52
+ json.code 0
53
+ json.count @total_count
@@ -104,7 +104,7 @@
104
104
  <%= image_tag "educode_sales/5.渠道管理.png",size:"15"%>
105
105
  <i style="font-size: 25px; padding-right: 15px"></i>渠道管理</a></dd>
106
106
  <% end %>
107
- <% if can? :read, EducodeSales::SalePlan %>
107
+ <% if can? :new_index, EducodeSales::SalePlan %>
108
108
  <dd><a href="/missions/plans" class="<%= current?('layui-this', plans_path) %>">
109
109
  <i style="padding-right: 35px"></i>
110
110
  <%= image_tag "educode_sales/6.销售计划.png",size:"15"%>
data/config/routes.rb CHANGED
@@ -39,7 +39,7 @@ EducodeSales::Engine.routes.draw do
39
39
  get :sales_details
40
40
  end
41
41
  end
42
-
42
+
43
43
  resources :sales_details do
44
44
  collection do
45
45
  post :upload
@@ -267,10 +267,15 @@ EducodeSales::Engine.routes.draw do
267
267
  get :month_plan
268
268
  get :monthly
269
269
  get :year_plan
270
- get :target_track
270
+ get :year_execute
271
+ get :year_target
272
+ get :years_all_target
273
+ post :cal_finish_amount
274
+ post :add_year_target
271
275
  end
272
276
  member do
273
277
  delete :delete_business_info
278
+ put :update_year_target
274
279
  end
275
280
  end
276
281
 
@@ -0,0 +1,45 @@
1
+ class CreateEducodeSalesSalesTargetHistories < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_sales_target_histories do |t|
4
+ t.references :staff
5
+ t.string :target_clazz, comment: '目标类别'
6
+ t.integer :school_tag_id, comment: '客户类别'
7
+ t.integer :num, comment: '序号'
8
+ t.string :state, comment: '审核状态'
9
+ t.float :year_target, comment: '年度目标', :limit => 53
10
+ t.float :year_finish, comment: '年度完成', :limit => 53
11
+ t.string :year, comment: '年份'
12
+ t.float :year_diff, comment: '年度差额', :limit => 53
13
+ t.references :reviewer, comment: '审核人员'
14
+ t.integer :creator_id, comment: '创建者'
15
+ t.boolean :is_use, default: false, comment: '采用'
16
+ t.string :comment, comment: '评论'
17
+ t.float :target_1, comment: '1月目标', :limit => 53
18
+ t.float :m_target_1, comment: '修改的1月目标', :limit => 53
19
+ t.float :target_2, comment: '2月目标', :limit => 53
20
+ t.float :m_target_2, comment: '修改的2月目标', :limit => 53
21
+ t.float :target_3, :limit => 53
22
+ t.float :m_target_3, :limit => 53
23
+ t.float :target_4, :limit => 53
24
+ t.float :m_target_4, :limit => 53
25
+ t.float :target_5, :limit => 53
26
+ t.float :m_target_5, :limit => 53
27
+ t.float :target_6, :limit => 53
28
+ t.float :m_target_6, :limit => 53
29
+ t.float :target_7, :limit => 53
30
+ t.float :m_target_7, :limit => 53
31
+ t.float :target_8, :limit => 53
32
+ t.float :m_target_8, :limit => 53
33
+ t.float :target_9, :limit => 53
34
+ t.float :m_target_9, :limit => 53
35
+ t.float :target_10, :limit => 53
36
+ t.float :m_target_10, :limit => 53
37
+ t.float :target_11, :limit => 53
38
+ t.float :m_target_11, :limit => 53
39
+ t.float :target_12, :limit => 53
40
+ t.float :m_target_12, :limit => 53
41
+
42
+ t.timestamps
43
+ end
44
+ end
45
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '1.10.58'
2
+ VERSION = '1.10.59'
3
3
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.58
4
+ version: 1.10.59
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2023-08-08 00:00:00.000000000 Z
@@ -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
@@ -268,6 +269,7 @@ files:
268
269
  - app/models/educode_sales/sale_report.rb
269
270
  - app/models/educode_sales/sale_trend.rb
270
271
  - app/models/educode_sales/sales_detail.rb
272
+ - app/models/educode_sales/sales_target_history.rb
271
273
  - app/models/educode_sales/shixun_dectect.rb
272
274
  - app/models/educode_sales/staff.rb
273
275
  - app/models/educode_sales/staff_permission.rb
@@ -525,10 +527,11 @@ files:
525
527
  - app/views/educode_sales/places/new.html.erb
526
528
  - app/views/educode_sales/plans/_monthPlan.html.erb
527
529
  - app/views/educode_sales/plans/_monthly.html.erb
528
- - app/views/educode_sales/plans/_target_track.html.erb
529
530
  - app/views/educode_sales/plans/_weekPlan.html.erb
530
531
  - app/views/educode_sales/plans/_weekly.html.erb
531
532
  - app/views/educode_sales/plans/_yearPlan.html.erb
533
+ - app/views/educode_sales/plans/_year_execute.html.erb
534
+ - app/views/educode_sales/plans/_year_target.html.erb
532
535
  - app/views/educode_sales/plans/audit_weekly.html.erb
533
536
  - app/views/educode_sales/plans/business_infos.json.jbuilder
534
537
  - app/views/educode_sales/plans/edit_bussiness_info.html.erb
@@ -555,9 +558,12 @@ files:
555
558
  - app/views/educode_sales/plans/show_monthly.html.erb
556
559
  - app/views/educode_sales/plans/show_week.html.erb
557
560
  - app/views/educode_sales/plans/show_weekly.html.erb
558
- - app/views/educode_sales/plans/target_track.js.erb
559
561
  - app/views/educode_sales/plans/weekly.js.erb
562
+ - app/views/educode_sales/plans/year_execute.js.erb
560
563
  - app/views/educode_sales/plans/year_plan.js.erb
564
+ - app/views/educode_sales/plans/year_target.js.erb
565
+ - app/views/educode_sales/plans/year_target.json.jbuilder
566
+ - app/views/educode_sales/plans/years_all_target.json.jbuilder
561
567
  - app/views/educode_sales/plans/years_plan.json.jbuilder
562
568
  - app/views/educode_sales/project_charts/_sales_analysis.html.erb
563
569
  - app/views/educode_sales/project_charts/sales_analysis.js.erb
@@ -789,6 +795,7 @@ files:
789
795
  - db/migrate/20230614142145_create_educode_sales_watch_follow_ups.rb
790
796
  - db/migrate/20230629130033_add_clazz_to_money_plans.rb
791
797
  - db/migrate/20230704124921_add_plan_a_date_to_follow_ups.rb
798
+ - db/migrate/20230729085359_create_educode_sales_sales_target_histories.rb
792
799
  - lib/educode_sales.rb
793
800
  - lib/educode_sales/engine.rb
794
801
  - lib/educode_sales/version.rb
@@ -797,7 +804,7 @@ homepage: https://www.educoder.net
797
804
  licenses:
798
805
  - MIT
799
806
  metadata: {}
800
- post_install_message:
807
+ post_install_message:
801
808
  rdoc_options: []
802
809
  require_paths:
803
810
  - lib
@@ -812,8 +819,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
812
819
  - !ruby/object:Gem::Version
813
820
  version: '0'
814
821
  requirements: []
815
- rubygems_version: 3.0.0
816
- signing_key:
822
+ rubygems_version: 3.0.9
823
+ signing_key:
817
824
  specification_version: 4
818
825
  summary: Summary of EducodeSales.
819
826
  test_files: []