educode_sales 1.10.58 → 1.10.59

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []