educode_sales 0.7.4 → 0.7.5

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/assessment.png +0 -0
  3. data/app/controllers/educode_sales/assessments_controller.rb +490 -0
  4. data/app/controllers/educode_sales/businesses_controller.rb +2 -3
  5. data/app/controllers/educode_sales/customers_controller.rb +3 -0
  6. data/app/controllers/educode_sales/home_controller.rb +4 -3
  7. data/app/controllers/educode_sales/money_plans_controller.rb +2 -0
  8. data/app/controllers/educode_sales/plans_controller.rb +1 -0
  9. data/app/controllers/educode_sales/roles_controller.rb +4 -1
  10. data/app/controllers/educode_sales/sessions_controller.rb +2 -1
  11. data/app/helpers/educode_sales/application_helper.rb +61 -0
  12. data/app/helpers/educode_sales/assessments_help.rb +52 -0
  13. data/app/models/educode_sales/assessments_setting.rb +28 -0
  14. data/app/models/educode_sales/business.rb +2 -1
  15. data/app/models/educode_sales/follow_up.rb +1 -1
  16. data/app/models/educode_sales/money_plan.rb +1 -0
  17. data/app/models/educode_sales/permission.rb +2 -1
  18. data/app/models/educode_sales/role_area.rb +2 -1
  19. data/app/views/educode_sales/assessments/_progress.html.erb +433 -0
  20. data/app/views/educode_sales/assessments/_setup.html.erb +331 -0
  21. data/app/views/educode_sales/assessments/edit.html.erb +238 -0
  22. data/app/views/educode_sales/assessments/get_export_data.json.jbuilder +197 -0
  23. data/app/views/educode_sales/assessments/index.html.erb +63 -0
  24. data/app/views/educode_sales/assessments/index.json.jbuilder +26 -0
  25. data/app/views/educode_sales/assessments/new.html.erb +310 -0
  26. data/app/views/educode_sales/assessments/progress.json.jbuilder +372 -0
  27. data/app/views/educode_sales/businesses/index.html.erb +1 -1
  28. data/app/views/educode_sales/businesses/new_follow_record.html.erb +8 -8
  29. data/app/views/educode_sales/places/index.html.erb +5 -3
  30. data/app/views/educode_sales/plans/_monthPlan.html.erb +3 -1
  31. data/app/views/educode_sales/plans/new_month.html.erb +2 -0
  32. data/app/views/educode_sales/plans/new_week.html.erb +5 -1
  33. data/app/views/educode_sales/roles/edit.html.erb +26 -18
  34. data/app/views/educode_sales/sale_reports/index.json.jbuilder +1 -0
  35. data/app/views/layouts/educode_sales/application.html.erb +12 -12
  36. data/app/views/layouts/educode_sales/login.html.erb +1 -1
  37. data/config/routes.rb +11 -0
  38. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +9 -1
  39. data/db/migrate/20220402020233_create_educode_sales_assessments_settings.rb +27 -0
  40. data/db/migrate/20220411021641_add_new_column_assessments_settings.rb +20 -0
  41. data/db/migrate/20220413090940_add_september_progress_to_assessment_settings.rb +5 -0
  42. data/lib/educode_sales/version.rb +1 -1
  43. metadata +17 -2
@@ -0,0 +1,331 @@
1
+ <script type="text/html" id="toolbarDemo5">
2
+ <div class="layui-btn-container">
3
+ <span class="table-label">指标完成情况</span>
4
+ <% if can?(:create, EducodeSales::AssessmentsSetting) %>
5
+ <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right" lay-event="add">添加人员任务指标</button>
6
+ <% end %>
7
+ </div>
8
+ </script>
9
+
10
+
11
+
12
+ <!--搜索-->
13
+ <div class="layuimini-main min-height-table">
14
+ <form class="layui-form layui-form-pane" lay-filter="search_assessments_form">
15
+ <div class="layui-form-item">
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label">考核年度</label>
18
+ <div class="layui-input-inline">
19
+ <input type="text" class="layui-input" id="assessments_year" name="assessment_year" autocomplete="off">
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <label class="layui-form-label">考核指标</label>
24
+ <div class="layui-input-inline">
25
+ <select class="layui-select" name="assessment_id" >
26
+ <option value="1" selected >签单金额</option>
27
+ <option value="2">回款金额</option>
28
+ <option value="3">拜访量</option>
29
+ <option value="4">新增商机数</option>
30
+ </select>
31
+ </div>
32
+ </div>
33
+ <div class="layui-inline">
34
+ <label class="layui-form-label">考核人员</label>
35
+ <div class="layui-input-inline">
36
+ <%= select_tag "staff_id", options_for_select(@staffs, params[:staff_id]), { 'lay-filter': 'staff_id', include_blank: true } %>
37
+ </div>
38
+ </div>
39
+ <div class="layui-inline">
40
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_assessments_search">重置
41
+ </button>
42
+ <button type="submit" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_assessments">检索
43
+ </button>
44
+ </div>
45
+ </div>
46
+ </form>
47
+ </div>
48
+
49
+
50
+
51
+
52
+
53
+ <table class="layui-hide" id="assessments" lay-filter="assessments"></table>
54
+
55
+ <script type="text/html" id="human_task_indicatorsTableBar">
56
+ <% if can? :edit, EducodeSales::AssessmentsSetting %>
57
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
58
+ <% end %>
59
+ <% if can? :destroy, EducodeSales::AssessmentsSetting %>
60
+ <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
61
+ <% end %>
62
+ </script>
63
+
64
+ <!--<script type="text/html" id="showchance">-->
65
+ <!-- <a href="/missions/businesses" class="layui-table-link">{{ d.chance }}asd</a>-->
66
+ <!--</script>-->
67
+
68
+ <script>
69
+ layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'laypage'], function () {
70
+ var $ = layui.jquery,
71
+ form = layui.form,
72
+ laydate = layui.laydate,
73
+ table = layui.table,
74
+ request = layui.request,
75
+ laypage = layui.laypage,
76
+ miniPage = layui.miniPage;
77
+
78
+ // 考核年度
79
+ laydate.render({
80
+ elem: '#assessments_year',
81
+ type: 'year',
82
+ value: '2022',
83
+ })
84
+
85
+
86
+ table.render({
87
+ elem: '#assessments',
88
+ url: '/missions/assessments',
89
+ toolbar: '#toolbarDemo5',
90
+ totalRow: true,
91
+ defaultToolbar: ['filter'],
92
+ cols: [//表头
93
+ [
94
+ {
95
+ type: 'numbers',
96
+ title: '序号',
97
+ width: 100,
98
+ sort: true,
99
+ fixed: 'left'
100
+ },
101
+ {
102
+ field: 'username',
103
+ title: '考核人员',
104
+ width: 100,
105
+ fixed: 'left'
106
+ },
107
+ {
108
+ field: 'annual',
109
+ title: '全年',
110
+ width: 100,
111
+ },
112
+ {
113
+ field: 'first_quarter',
114
+ title: '第1季度',
115
+ width: 100,
116
+ },
117
+ {
118
+ field: 'january',
119
+ title: '1月',
120
+ },
121
+ {
122
+ field: 'february',
123
+ title: '2月',
124
+ width: 70,
125
+ },
126
+ {
127
+ field: 'march',
128
+ title: '3月',
129
+ width: 70,
130
+ },
131
+ {
132
+ field: 'second_quarter',
133
+ title: '第2季度',
134
+ width: 100,
135
+ },
136
+ {
137
+ field: 'april',
138
+ title: '4月',
139
+ },
140
+ {
141
+ field: 'may',
142
+ title: '5月',
143
+ width: 70,
144
+ },
145
+ {
146
+ field: 'june',
147
+ title: '6月',
148
+ width: 70,
149
+ },
150
+ {
151
+ field: 'third_quarter',
152
+ title: '第3季度',
153
+ width: 100,
154
+ },
155
+ {
156
+ field: 'july',
157
+ title: '7月',
158
+ width: 70,
159
+ },
160
+ {
161
+ field: 'august',
162
+ title: '8月',
163
+ width: 70,
164
+ },
165
+ {
166
+ field: 'september',
167
+ title: '9月',
168
+ width: 70,
169
+ },
170
+ {
171
+ field: 'fourth_quarter',
172
+ title: '第4季度',
173
+ width: 100,
174
+ },
175
+ {
176
+ field: 'october',
177
+ title: '10月',
178
+ width: 70,
179
+ },
180
+ {
181
+ field: 'november',
182
+ title: '11月',
183
+ width: 70,
184
+ },
185
+ {
186
+ field: 'december',
187
+ title: '12月',
188
+ width: 70,
189
+ },
190
+ {
191
+ field: 'option',
192
+ title: '操作',
193
+ align: 'center',
194
+ fixed: 'right',
195
+ width: 200,
196
+ toolbar: '#human_task_indicatorsTableBar'
197
+ },
198
+ ]
199
+ ],
200
+ limit: 10,
201
+ limits: [10, 15, 20, 30, 40, 50, 60, 70, 80, 90],
202
+ page: true,
203
+ parseData: function(res){ //将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据
204
+ var result;
205
+ if(this.page.curr){
206
+ result = res.data.slice(this.limit*(this.page.curr-1),this.limit*this.page.curr);
207
+ }
208
+ else{
209
+ result=res.data.slice(0,this.limit);
210
+ }
211
+ var length =0;
212
+ for (var ever in res.data){
213
+ length++
214
+ }
215
+ return {
216
+ "code": 0, //解析接口状态
217
+ "msg": res.msg, //解析提示文本
218
+ "count": length, //解析数据长度
219
+ "data": result //解析数据列表
220
+ };
221
+ }
222
+ });
223
+
224
+ // 进行搜索按钮时 对传递的数据增加q[数据] --------------------要去看
225
+ var sort = {}, search = {};
226
+ table.on('sort(assessments)', function (obj) {
227
+ sort.field = obj.field;
228
+ sort.order = obj.type;
229
+ table.reload('assessments', {
230
+ initSort: obj,
231
+ where: {
232
+ sort: sort,
233
+ q: search
234
+ }
235
+ });
236
+ })
237
+
238
+
239
+ table.on('tool(assessments)', function (obj) {
240
+ var data = obj.data;
241
+ console.log(obj)
242
+ console.log(data)
243
+ var id = data.id
244
+ console.log(id)
245
+ // 有些地方还要多看--------!!!!!!!
246
+ if (obj.event === 'edit') {
247
+ var content = miniPage.getHrefContent('/missions/assessments/' + id + '/edit');
248
+ var openWH = miniPage.getOpenWidthHeight();
249
+ var index = layer.open({
250
+ title: '编辑人员任务',
251
+ type: 1,
252
+ shade: 0.2,
253
+ maxmin: true,
254
+ shadeClose: true,
255
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
256
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
257
+ content: content,
258
+ success: function (layero, index) {
259
+ form.render('select');
260
+ },
261
+ });
262
+ $(window).on("resize", function (){
263
+ layer.full(index);
264
+ });
265
+ return false;
266
+ } else if (obj.event === 'delete') {
267
+ layer.confirm('确定删除' + "demo" + data.id, function (index) {
268
+ request.delete('missions/assessments/' + data.id, {}, function (res) {
269
+ layer.close(index);
270
+ table.reload("assessments")
271
+ })
272
+ });
273
+ }
274
+ });
275
+
276
+ // * toolbar事件监听
277
+ table.on('toolbar(assessments)', function (obj) {
278
+ if (obj.event === 'add') { // 监听添加操作
279
+ var content = miniPage.getHrefContent('/missions/assessments/new');
280
+ var openWH = miniPage.getOpenWidthHeight();
281
+ var index = layer.open({
282
+ title: '添加人员任务',
283
+ type: 1,
284
+ shade: 0.2,
285
+ maxmin: true,
286
+ shadeClose: true,
287
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
288
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
289
+ content: content,
290
+ success: function (layero, index) {
291
+ // 重新渲染弹层中的下拉选择框select
292
+ form.render('select');
293
+ }
294
+ });
295
+ $(window).on("resize", function () {
296
+ layer.full(index);
297
+ });
298
+ }
299
+ });
300
+
301
+
302
+
303
+
304
+ //有点问题 因为切换 指标完成情况时 发送请求时 还是 考核指标设置table下的地址
305
+ // 监控搜索
306
+ form.on('submit(search_assessments)', function (data) {
307
+ search = data.field
308
+ console.log(search)
309
+ table.reload('assessments',{
310
+ page: {
311
+ curr: 1
312
+ },
313
+ where: {q: search, sort: sort}
314
+ }, 'data');
315
+ return false;
316
+ })
317
+
318
+ // 监控重置
319
+ form.on('submit(reset_assessments_search)', function (data) {
320
+ var field = data.field;
321
+ console.log("setup");
322
+ form.val('search_assessments_form', {
323
+ assessment_year: '2022',
324
+ assessment_id: "签单金额",
325
+ staff_id: ''
326
+ });
327
+ return false;
328
+ });
329
+ });
330
+
331
+ </script>
@@ -0,0 +1,238 @@
1
+ <div class="layui-form layuimini-form" lay-filter="edit_assessment">
2
+
3
+ <div class="layui-form-item" style="padding: 25px">
4
+
5
+ <div class="layui-form-item" style="padding: 25px">
6
+ <div class="layui-inline">
7
+ <label class="layui-form-label required ">考核指标</label>
8
+ <div class="layui-input-inline">
9
+ <select disabled>
10
+ <option value=""><%= @assessment_name %></option>
11
+ </select>
12
+ </div>
13
+ </div>
14
+ <div class="layui-inline">
15
+ <label class="layui-form-label required">考核人员</label>
16
+ <div class="layui-input-inline" style="width: 500px">
17
+ <div class="layui-input-inline" >
18
+ <select disabled>
19
+ <option value=""><%= @username %></option>
20
+ </select>
21
+ </div>
22
+ </div>
23
+ </div></div>
24
+ <div class="layui-form-item" style="padding: 25px">
25
+ <div class="layui-inline" >
26
+ <label class="layui-form-label required ">年度</label>
27
+ <div class="layui-input-inline">
28
+ <select disabled>
29
+ <option value=""><%= @year %></option>
30
+ </select>
31
+ </div>
32
+ </div>
33
+ <div class="layui-inline">
34
+ <label class="layui-form-label">业务目标</label>
35
+ <div class="layui-input-inline">
36
+ <input type="text" class="layui-input" disabled value="<%= @assessment.annual %>" name="annual" autocomplete="off" placeholder="自动计算" id="annual" onkeyup="sum()">
37
+ </div>
38
+ <div class="layui-input-inline">万</div>
39
+ </div>
40
+ </div>
41
+ <div class="layui-form-item" style="padding: 25px">
42
+ <div class="layui-row" >
43
+ <div class="layui-col-md3">
44
+ <div class="layui-input-inline">
45
+ <label class="layui-form-label ">第一季度(万)</label>
46
+ <div class="layui-input-block" style="width: 500px;">
47
+ <input type="text" name="first_quarter" value="<%= @assessment.first_quarter %>" autocomplete="off" class="layui-input" placeholder="自动计算" disabled id="quarter1" >
48
+ </div>
49
+ </div>
50
+
51
+ <div class="layui-input-inline ">
52
+ <label class="layui-form-label ">1月(万)</label>
53
+ <div class="layui-input-block" style="width: 500px;">
54
+ <input type="text" name="january" value="<%= @assessment.january %>" autocomplete="off" class="layui-input" lay-verify="number" id="month1" onkeyup="sum()">
55
+ </div>
56
+ </div>
57
+ <div class="layui-input-inline">
58
+ <label class="layui-form-label ">2月(万)</label>
59
+ <div class="layui-input-block" style="width: 500px;">
60
+ <input type="text" name="february" value="<%= @assessment.february %>" autocomplete="off" class="layui-input" lay-verify="number" id="month2" onkeyup="sum()" >
61
+ </div>
62
+ </div>
63
+ <div class="layui-input-inline">
64
+ <label class="layui-form-label ">3月(万)</label>
65
+ <div class="layui-input-block" style="width: 500px;">
66
+ <input type="text" name="march" value="<%= @assessment.march %>" autocomplete="off" class="layui-input" lay-verify="number" id="month3" onkeyup="sum()" >
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <div class="layui-col-md3">
71
+ <div class="layui-input-inline">
72
+ <label class="layui-form-label ">第二季度(万)</label>
73
+ <div class="layui-input-block" style="width: 500px;">
74
+ <input type="text" name="second_quarter" value="<%= @assessment.second_quarter %>" autocomplete="off" class="layui-input" placeholder="自动计算" disabled id="quarter2">
75
+ </div>
76
+ </div>
77
+ <div class="layui-input-inline">
78
+ <label class="layui-form-label ">4月(万)</label>
79
+ <div class="layui-input-block" style="width: 500px;">
80
+ <input type="text" name="april" value="<%= @assessment.april %>" autocomplete="off" class="layui-input" lay-verify="number" id="month4" onkeyup="sum()">
81
+ </div>
82
+ </div>
83
+ <div class="layui-input-inline">
84
+ <label class="layui-form-label ">5月(万)</label>
85
+ <div class="layui-input-block" style="width: 500px;">
86
+ <input type="text" name="may" value="<%= @assessment.may %>" autocomplete="off" class="layui-input" lay-verify="number" id="month5" onkeyup="sum()">
87
+ </div>
88
+ </div>
89
+ <div class="layui-input-inline">
90
+ <label class="layui-form-label ">6月(万)</label>
91
+ <div class="layui-input-block" style="width: 500px;">
92
+ <input type="text" name="june" value="<%= @assessment.june %>" autocomplete="off" class="layui-input" lay-verify="number" id="month6" onkeyup="sum()" >
93
+ </div>
94
+ </div>
95
+ </div>
96
+ <div class="layui-col-md3">
97
+ <div class="layui-input-inline">
98
+ <label class="layui-form-label ">第三季度(万)</label>
99
+ <div class="layui-input-block" style="width: 500px;">
100
+ <input type="text" name="third_quarter" value="<%= @assessment.third_quarter %>" autocomplete="off" class="layui-input" placeholder="自动计算" disabled id="quarter3">
101
+ </div>
102
+ </div>
103
+ <div class="layui-input-inline">
104
+ <label class="layui-form-label ">7月(万)</label>
105
+ <div class="layui-input-block" style="width: 500px;">
106
+ <input type="text" name="july" value="<%= @assessment.july %>" autocomplete="off" class="layui-input" lay-verify="number" id="month7" onkeyup="sum()" >
107
+ </div>
108
+ </div>
109
+ <div class="layui-input-inline">
110
+ <label class="layui-form-label ">8月(万)</label>
111
+ <div class="layui-input-block" style="width: 500px;">
112
+ <input type="text" name="august" value="<%= @assessment.august %>" autocomplete="off" class="layui-input" lay-verify="number" id="month8" onkeyup="sum()" >
113
+ </div>
114
+ </div>
115
+ <div class="layui-input-inline">
116
+ <label class="layui-form-label ">9月(万)</label>
117
+ <div class="layui-input-block" style="width: 500px;">
118
+ <input type="text" name="september" value="<%= @assessment.september %>" autocomplete="off" class="layui-input" lay-verify="number" id="month9" onkeyup="sum()" >
119
+ </div>
120
+ </div>
121
+ </div>
122
+ <div class="layui-col-md3">
123
+ <div class="layui-input-inline">
124
+ <label class="layui-form-label ">第四季度(万)</label>
125
+ <div class="layui-input-block" style="width: 500px;">
126
+ <input type="text" name="fourth_quarter" value="<%= @assessment.fourth_quarter %>" autocomplete="off" class="layui-input" placeholder="自动计算" disabled id="quarter4">
127
+ </div>
128
+ </div>
129
+ <div class="layui-input-inline">
130
+ <label class="layui-form-label ">10月(万)</label>
131
+ <div class="layui-input-block" style="width: 500px;">
132
+ <input type="text" name="october" value="<%= @assessment.october %>" autocomplete="off" class="layui-input" lay-verify="number" id="month10" onkeyup="sum()">
133
+ </div>
134
+ </div>
135
+ <div class="layui-input-inline">
136
+ <label class="layui-form-label ">11月(万)</label>
137
+ <div class="layui-input-block" style="width: 500px;">
138
+ <input type="text" name="november" value="<%= @assessment.november %>" autocomplete="off" class="layui-input" lay-verify="number" id="month11" onkeyup="sum()">
139
+ </div>
140
+ </div>
141
+ <div class="layui-input-inline">
142
+ <label class="layui-form-label ">12月(万)</label>
143
+ <div class="layui-input-block" style="width: 500px;">
144
+ <input type="text" name="december" value="<%= @assessment.december %>" autocomplete="off" class="layui-input" lay-verify="number" id="month12" onkeyup="sum()">
145
+ </div>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ <div class="layui-form-item m-t-20">
151
+ <div class="layui-input-block">
152
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit_task_assessment">提交</button>
153
+ <!-- <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="cancel_add_assessment">取消</button>-->
154
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="cancel_edit_assessment">取消</button>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </div>
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+ <script>
167
+ layui.use(['form', 'table', 'laytpl', 'request', 'laydate'], function () {
168
+ var form = layui.form,
169
+ layer = layui.layer,
170
+ table = layui.table,
171
+ request = layui.request,
172
+ laydate = layui.laydate,
173
+ $ = layui.$;
174
+
175
+
176
+ // form.render();
177
+ //
178
+ // var parentIndex = layer.index;
179
+
180
+ form.on('submit(edit_task_assessment)', function (data) {
181
+ console.log("okokokookokokokokook");
182
+ console.log(data);
183
+ data.field.id = <%= @assessment.id %>; //
184
+ request.authPut("missions/assessments/"+<%= @assessment.id %> , data.field, function (res) {
185
+ if (res.success == false) {
186
+ layer.alert(res.msg)
187
+ } else {
188
+ console.log("ok");
189
+ layer.closeAll();
190
+ table.reload("assessments")
191
+ }
192
+ })
193
+ return false;
194
+ });
195
+
196
+ // que xiao
197
+ form.on('submit(cancel_edit_assessment)', function (data) {
198
+ console.log(data)
199
+ layer.closeAll();
200
+ return false;
201
+ });
202
+ });
203
+ </script>
204
+
205
+ <script type="application/javascript">
206
+ function sum(){
207
+ var month1 = document.getElementById('month1').value;
208
+ var month2 = document.getElementById('month2').value;
209
+ var month3 = document.getElementById('month3').value;
210
+ var month4 = document.getElementById('month4').value;
211
+ var month5 = document.getElementById('month5').value;
212
+ var month6 = document.getElementById('month6').value;
213
+ var month7 = document.getElementById('month7').value;
214
+ var month8 = document.getElementById('month8').value;
215
+ var month9 = document.getElementById('month9').value;
216
+ var month10 = document.getElementById('month10').value;
217
+ var month11 = document.getElementById('month11').value;
218
+ var month12 = document.getElementById('month12').value;
219
+ if ( month1 === ""){ month1 = 0 ;}
220
+ if ( month2 === ""){ month2 = 0 ;}
221
+ if ( month3 === ""){ month3 = 0 ;}
222
+ if ( month4 === ""){ month4 = 0 ;}
223
+ if ( month5 === ""){ month5 = 0 ;}
224
+ if ( month6 === ""){ month6 = 0 ;}
225
+ if ( month7 === ""){ month7 = 0 ;}
226
+ if ( month8 === ""){ month8 = 0 ;}
227
+ if ( month9 === ""){ month9 = 0 ;}
228
+ if ( month10 === ""){ month10 = 0 ;}
229
+ if ( month11 === ""){ month11 = 0 ;}
230
+ if ( month12 === ""){ month12 = 0 ;}
231
+ document.getElementById('quarter1').value = parseInt(month1)+parseInt(month2)+parseInt(month3)
232
+ document.getElementById('quarter2').value = parseInt(month4)+parseInt(month5)+parseInt(month6)
233
+ document.getElementById('quarter3').value = parseInt(month7)+parseInt(month8)+parseInt(month9)
234
+ document.getElementById('quarter4').value = parseInt(month10)+parseInt(month11)+parseInt(month12)
235
+ document.getElementById('annual').value =parseInt(month1)+parseInt(month2)+
236
+ parseInt(month3)+parseInt(month4)+parseInt(month5)+parseInt(month6)+parseInt(month7)+parseInt(month8)+parseInt(month9)+parseInt(month10)+parseInt(month11)+parseInt(month12)
237
+ }
238
+ </script>