educode_sales 1.0.2 → 1.0.4

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/businesses_controller.rb +4 -1
  3. data/app/controllers/educode_sales/contracts_controller.rb +17 -1
  4. data/app/controllers/educode_sales/follow_ups_controller.rb +13 -12
  5. data/app/controllers/educode_sales/home_controller.rb +14 -0
  6. data/app/controllers/educode_sales/invoices_controller.rb +219 -0
  7. data/app/controllers/educode_sales/key_person_controller.rb +1 -1
  8. data/app/controllers/educode_sales/money_plan_records_controller.rb +116 -0
  9. data/app/controllers/educode_sales/money_plans_controller.rb +32 -28
  10. data/app/controllers/educode_sales/sale_trends_controller.rb +2 -2
  11. data/app/controllers/educode_sales/sales_details_controller.rb +1 -1
  12. data/app/controllers/educode_sales/teachers_controller.rb +7 -2
  13. data/app/models/educode_sales/business.rb +7 -0
  14. data/app/models/educode_sales/invoice.rb +5 -0
  15. data/app/models/educode_sales/invoice_apply.rb +12 -0
  16. data/app/models/educode_sales/invoice_detail.rb +10 -0
  17. data/app/models/educode_sales/key_person.rb +1 -1
  18. data/app/models/educode_sales/money_plan.rb +27 -0
  19. data/app/models/educode_sales/money_plan_claim.rb +7 -0
  20. data/app/models/educode_sales/money_plan_record.rb +7 -0
  21. data/app/models/educode_sales/staff.rb +2 -0
  22. data/app/views/educode_sales/businesses/edit_plan.html.erb +1 -1
  23. data/app/views/educode_sales/businesses/key_person.json.jbuilder +1 -1
  24. data/app/views/educode_sales/contracts/_list.html.erb +1 -1
  25. data/app/views/educode_sales/follow_ups/index.json.jbuilder +1 -1
  26. data/app/views/educode_sales/follow_ups/teachers.json.jbuilder +1 -1
  27. data/app/views/educode_sales/home/search_contracts.json.jbuilder +9 -0
  28. data/app/views/educode_sales/home/search_money_plans.json.jbuilder +9 -0
  29. data/app/views/educode_sales/invoices/_apply_records.html.erb +276 -0
  30. data/app/views/educode_sales/invoices/apply.html.erb +443 -0
  31. data/app/views/educode_sales/invoices/apply_records.js.erb +1 -0
  32. data/app/views/educode_sales/invoices/apply_records.json.jbuilder +20 -0
  33. data/app/views/educode_sales/invoices/details.json.jbuilder +17 -0
  34. data/app/views/educode_sales/invoices/list.json.jbuilder +14 -0
  35. data/app/views/educode_sales/invoices/new.html.erb +177 -0
  36. data/app/views/educode_sales/invoices/sales_details.html.erb +88 -0
  37. data/app/views/educode_sales/invoices/sales_details.json.jbuilder +14 -0
  38. data/app/views/educode_sales/money_plan_records/_index.html.erb +258 -0
  39. data/app/views/educode_sales/money_plan_records/add.html.erb +101 -0
  40. data/app/views/educode_sales/money_plan_records/confirm_plan.html.erb +167 -0
  41. data/app/views/educode_sales/money_plan_records/index.js.erb +1 -0
  42. data/app/views/educode_sales/money_plan_records/index.json.jbuilder +26 -0
  43. data/app/views/educode_sales/money_plans/_index.html.erb +245 -0
  44. data/app/views/educode_sales/money_plans/add.html.erb +147 -0
  45. data/app/views/educode_sales/money_plans/index.json.jbuilder +41 -8
  46. data/app/views/educode_sales/money_plans/list.html.erb +56 -0
  47. data/app/views/educode_sales/sales_details/edit.html.erb +6 -0
  48. data/app/views/educode_sales/teachers/add_keys.html.erb +2 -2
  49. data/app/views/layouts/educode_sales/application.html.erb +245 -236
  50. data/config/routes.rb +32 -1
  51. data/db/migrate/20230527150102_add_category_to_educode_sales_money_plans.rb +7 -0
  52. data/db/migrate/20230528115654_create_educode_sales_money_plan_records.rb +13 -0
  53. data/db/migrate/20230529022020_create_educode_sales_money_plan_claims.rb +12 -0
  54. data/db/migrate/20230531144834_create_educode_sales_invoice_applies.rb +25 -0
  55. data/db/migrate/20230601011835_create_educode_sales_invoices.rb +14 -0
  56. data/db/migrate/20230601011943_create_educode_sales_invoice_details.rb +20 -0
  57. data/lib/educode_sales/version.rb +1 -1
  58. metadata +35 -4
  59. data/app/views/educode_sales/money_plans/index.html.erb +0 -222
@@ -0,0 +1,88 @@
1
+ <div style="padding:30px">
2
+ <div id="invoice_sale_detail_table_wraper">
3
+ <table class="layui-hide" id="invoice_sale_detail_table" lay-filter="invoice_sale_detail_table"></table>
4
+ </div>
5
+ </div>
6
+
7
+ <script type="text/html" id="invoice_sale_toolbar">
8
+ <div class="layui-btn-container">
9
+ <button class="layui-btn layui-btn-sm" lay-event="select_product">选择销售明细</button>
10
+ </div>
11
+ </script>
12
+ <script>
13
+ layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput'], function() {
14
+ var form = layui.form,
15
+ layer = layui.layer,
16
+ table = layui.table,
17
+ laytpl = layui.laytpl,
18
+ request = layui.request,
19
+ $ = layui.$;
20
+ form.render();
21
+
22
+ var cols_table = [
23
+ [{
24
+ type: 'radio',
25
+ fixed: true
26
+ }, {
27
+ field: 'id',
28
+ width: 60,
29
+ title: '序号',
30
+ }, {
31
+ field: 'name',
32
+ width: 120,
33
+ title: '产品名称',
34
+ }, {
35
+ field: 'specification',
36
+ width: 150,
37
+ title: '规格型号',
38
+ }, {
39
+ field: 'unit',
40
+ width: 150,
41
+ title: '单位',
42
+ }, {
43
+ field: 'num',
44
+ width: 150,
45
+ title: '数量',
46
+ }, {
47
+ field: 'price',
48
+ width: 150,
49
+ title: '单价',
50
+ }, {
51
+ field: 'amount',
52
+ width: 150,
53
+ title: '开票金额',
54
+ }, ]
55
+ ]
56
+
57
+ var invoice_sale_detail_table = table.render({
58
+ elem: '#invoice_sale_detail_table',
59
+ url: '/missions/invoices/' + parent.business_id + '/sales_details',
60
+ autoSort: false,
61
+ title: '销售产品',
62
+ toolbar: '#invoice_sale_toolbar',
63
+ cols: cols_table,
64
+ limit: 20,
65
+ limits: [10, 15, 20, 30, 40, 50, 60, 70, 80, 90],
66
+ page: true,
67
+ skin: 'line',
68
+ });
69
+
70
+
71
+ table.on('toolbar(invoice_sale_detail_table)', function(obj) {
72
+ var id = obj.config.id;
73
+ if (obj.event == 'select_product') {
74
+ var data = table.getData('invoices_details_table')
75
+
76
+ var checkStatus = table.checkStatus(id);
77
+ var row = checkStatus.data;
78
+ row[0].category = ''
79
+ data.push(row[0])
80
+ table.reload('invoices_details_table', {data: data })
81
+ parent.calAmount()
82
+ layer.close(parent.deteilIndex)
83
+
84
+ }
85
+ })
86
+
87
+ });
88
+ </script>
@@ -0,0 +1,14 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.id d.id
4
+ json.specification d.product_catalog.specification
5
+ json.unit d.product_catalog.unit
6
+ json.num d.amount
7
+ json.price d.price
8
+ json.amount d.total_price || 0
9
+ json.name d.product_catalog.name
10
+ end
11
+ end
12
+
13
+ json.code 0
14
+ json.count @data.total_count
@@ -0,0 +1,258 @@
1
+ <div style="margin: 10px 10px 10px 10px" id="money_plan_record">
2
+ <form class="layui-form layui-form-pane" lay-filter="submit_form_record">
3
+ <div class="layui-form-item">
4
+ <div class="layui-inline">
5
+ <label class="layui-form-label">付款单位</label>
6
+ <div class="layui-input-inline">
7
+ <input type="text" name="payer_name" class="layui-input">
8
+ </div>
9
+ </div>
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label">回款金额</label>
12
+ <div class="layui-input-inline">
13
+ <input type="text" name="amount" class="layui-input">
14
+ </div>
15
+ </div>
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label">回款日期</label>
18
+ <div class="layui-input-inline">
19
+ <input type="text" name="date_at" class="layui-input" id="date">
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <label class="layui-form-label required">匹配状态</label>
24
+ <div class="layui-input-inline">
25
+ <%= select_tag "state", options_for_select(['已认领', '待认领', '无对应合同', '无对应应收款']), { 'lay-filter': 'state', include_blank: true, "lay-search": "" } %>
26
+ </div>
27
+ </div>
28
+ <div class="layui-inline">
29
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit
30
+ lay-filter="reset_business_search_record">重置
31
+ </button>
32
+ <button type="submit" class="layui-btn layui-btn-primary" id="search_bt" lay-submit
33
+ lay-filter="submit_form_record">搜 索
34
+ </button>
35
+ </div>
36
+ </div>
37
+ </form>
38
+ </div>
39
+ <script type="text/html" id="toolbar_money_plan_record">
40
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" id="upload_money_plan_btn" style="margin-left: 20px;">批量导入回款计划</button>
41
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" style="margin-left: 20px;"
42
+ lay-event="add_record">添加回款记录</button>
43
+ </script>
44
+
45
+ <table class="layui-hide" id="money_plan_record_table" lay-filter="money_plan_record_table"></table>
46
+
47
+ <script type="text/html" id="school">
48
+ <a href="<%= base_url%>/colleges/{{d.school_id}}/statistics" class="layui-table-link"
49
+ target="_blank">{{ d.school }}</a>
50
+ </script>
51
+
52
+ <script type="text/html" id="currentTableBarmoney_record">
53
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="confirm">认领回款</a>
54
+ </script>
55
+
56
+ <script>
57
+ layui.use(['form', 'table', 'miniPage', 'element', 'request', 'upload'], function() {
58
+ var $ = layui.jquery,
59
+ form = layui.form,
60
+ request = layui.request,
61
+ upload = layui.upload,
62
+ miniPage = layui.miniPage;
63
+ laydate = layui.laydate;
64
+ table = layui.table;
65
+ laydate.render({
66
+ elem: '#date',
67
+ range: true
68
+ });
69
+ form.render();
70
+ table.render({
71
+ elem: '#money_plan_record_table',
72
+ url: '/missions/money_plan_records',
73
+ toolbar: '#toolbar_money_plan_record',
74
+ defaultToolbar: ['filter'],
75
+ cols: [
76
+ [{
77
+ field: 'id',
78
+ width: 80,
79
+ title: '序号',
80
+ type: 'numbers',
81
+ },
82
+ {
83
+ field: 'payer_name',
84
+ width: 180,
85
+ title: '付款单位'
86
+ },
87
+ {
88
+ field: 'amount',
89
+ width: 150,
90
+ title: '回款金额'
91
+ },
92
+ {
93
+ field: 'date_at',
94
+ width: 180,
95
+ title: '回款日期',
96
+ sort: true
97
+ },
98
+ {
99
+ field: 'business',
100
+ width: 180,
101
+ title: '对应合同名称'
102
+ },
103
+ {
104
+ field: 'number',
105
+ width: 120,
106
+ title: '合同编号',
107
+ },
108
+ {
109
+ field: 'school',
110
+ width: 220,
111
+ title: '对应客户名称',
112
+ },
113
+ {
114
+ field: 'state',
115
+ width: 120,
116
+ title: '匹配状态',
117
+ },
118
+ {
119
+ title: '操作',
120
+ minWidth: 200,
121
+ toolbar: '#currentTableBarmoney_record',
122
+ align: "center",
123
+ fixed: 'right'
124
+ }
125
+ ]
126
+ ],
127
+ limit: 20,
128
+ limits: [10, 15, 20, 30, 40, 50, 60, 70, 80, 90],
129
+ page: true,
130
+ done: function() {
131
+ uploadMoneyPlan()
132
+ }
133
+ });
134
+ var sort = {},
135
+ search = {};
136
+ table.on('sort(money_plan_record_table)', function(obj) {
137
+ sort.field = obj.field;
138
+ sort.order = obj.type;
139
+ table.reload('money_plan_record_table', {
140
+ initSort: obj,
141
+ where: {
142
+ sort: sort,
143
+ q: search
144
+ }
145
+ });
146
+ })
147
+ // 监听搜索操作
148
+ form.on('submit(submit_form_record)', function(data) {
149
+ search = data.field
150
+ table.reload('money_plan_record_table', {
151
+ page: {
152
+ curr: 1
153
+ },
154
+ where: {
155
+ q: search,
156
+ sort: sort
157
+ }
158
+ }, 'data');
159
+ return false;
160
+ });
161
+ form.on('submit(reset_business_search_record)', function(data) {
162
+ var field = data.field;
163
+ form.val('submit_form_record', {
164
+ area: "",
165
+ date: "",
166
+ staff_id: "",
167
+ clazz: "",
168
+ professional_title: "",
169
+ school: "",
170
+ business: ""
171
+ });
172
+ return false;
173
+ });
174
+ table.on('toolbar(money_plan_record_table)', function(obj) {
175
+ if (obj.event == 'add_record') {
176
+ var content = miniPage.getHrefContent('/missions/money_plan_records/add')
177
+ var openWH = miniPage.getOpenWidthHeight();
178
+ sindex = layer.open({
179
+ title: '添加回款记录',
180
+ type: 1,
181
+ shade: 0.2,
182
+ maxmin: true,
183
+ shadeClose: true,
184
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
185
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
186
+ content: content
187
+ });
188
+ $(window).on("resize", function() {
189
+ layer.full(sindex);
190
+ });
191
+ }
192
+ })
193
+ table.on('tool(money_plan_record_table)', function(obj) {
194
+ var data = obj.data;
195
+ id = data.id;
196
+ state = data.state;
197
+ if (obj.event === 'confirm') { // 监听添加操作
198
+ var content = miniPage.getHrefContent('/missions/money_plan_records/confirm_plan?id=' + id)
199
+ var openWH = miniPage.getOpenWidthHeight();
200
+ sindex = layer.open({
201
+ title: '认领回款',
202
+ type: 1,
203
+ shade: 0.2,
204
+ maxmin: true,
205
+ shadeClose: true,
206
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
207
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
208
+ content: content
209
+ });
210
+ $(window).on("resize", function() {
211
+ layer.full(sindex);
212
+ });
213
+ } else if (obj.event === 'business') {
214
+
215
+ }
216
+ });
217
+
218
+ function uploadMoneyPlan() {
219
+ upload.render({
220
+ elem: '#upload_money_plan_btn',
221
+ url: '/missions/money_plan_records/upload',
222
+ accept: 'file' //普通文件
223
+ ,
224
+ acceptMime: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,application/vnd.ms-excel',
225
+ headers: {
226
+ 'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
227
+ },
228
+ before: function(obj) {
229
+ layer.load();
230
+ },
231
+ done: function(res) {
232
+ layer.msg('导入成功');
233
+ table.reload('money_plan_record_table');
234
+ layer.closeAll('loading'); //关闭loading
235
+ },
236
+ error: function(index, upload) {
237
+ table.reload('file');
238
+ layer.closeAll('loading'); //关闭loading
239
+ layer.alert('导入失败,文件导入内容列表顺序为:付款单位、回款金额、回款日期、合同编号')
240
+ }
241
+ });
242
+ }
243
+ });
244
+ </script>
245
+ <style>
246
+ .layui-table-tool-temp {
247
+ padding-right: 30px;
248
+ !important;
249
+ }
250
+
251
+ .layui-table-fixed .layui-table-body {
252
+ height: auto !important;
253
+ }
254
+
255
+ .layui-table-fixed.layui-hide {
256
+ display: block !important;
257
+ }
258
+ </style>
@@ -0,0 +1,101 @@
1
+ <div style="padding:10px">
2
+ <div class="layui-form layuimini-form" lay-filter="searchform">
3
+ <div class="layui-form-item">
4
+ <label class="layui-form-label" style="width: 80px !important;">合同名称:</label>
5
+ <div class="layui-input-inline">
6
+ <div id="business" style="width:600px;"></div>
7
+ </div>
8
+ </div>
9
+ <div class="layui-form-item">
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label required">付款单位:</label>
12
+ <div class="layui-input-inline">
13
+ <input type="text" name="payer_name" value="" class="layui-input" lay-verify="required">
14
+ </div>
15
+ </div>
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label required">回款金额:</label>
18
+ <div class="layui-input-inline">
19
+ <input type="text" name="amount" value="" class="layui-input" lay-verify="required">
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <label class="layui-form-label required" style="width: 110px;">回款日期:</label>
24
+ <div class="layui-input-inline">
25
+ <input type="text" name="date_at" value="" class="layui-input" lay-verify="required" id="date_at">
26
+ </div>
27
+ </div>
28
+
29
+ </div>
30
+ <div id="wraper"></div>
31
+ <div class="layui-form-item">
32
+ <div class="layui-input-block">
33
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">保存</button>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+
39
+ <script>
40
+ layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'laydate', 'selectInput'], function() {
41
+ var form = layui.form,
42
+ layer = layui.layer,
43
+ table = layui.table,
44
+ laydate = layui.laydate,
45
+ laytpl = layui.laytpl,
46
+ request = layui.request,
47
+ selectInput = layui.selectInput,
48
+ $ = layui.$;
49
+ form.render();
50
+ laydate.render({
51
+ elem: '#date_at',
52
+ });
53
+ var business_id = "";
54
+ var business_select = selectInput.render({
55
+ elem: '#business',
56
+ name: 'bussiness_name', // 渲染的input的name值
57
+ layFilter: 'test', //同layui form参数lay-filter
58
+ layVerType: 'tips', // 同layui form参数lay-verType
59
+ layReqText: '请填写文本', //同layui form参数lay-ReqText
60
+ hasSelectIcon: false,
61
+ placeholder: '请输入合同名称', // 渲染的inputplaceholder值
62
+ remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
63
+ remoteMethod: function(value, cb) { // 远程搜索的回调函数
64
+ if (!value) {
65
+ business_id = "";
66
+ return cb([]);
67
+ }
68
+ request.get('missions/search_contracts?q=' + value, {}, function(res) {
69
+ if (res.data.length == 0) {
70
+ business_select.emptyValue();
71
+ return cb([])
72
+ }
73
+ return cb(res)
74
+ })
75
+ }
76
+ });
77
+ var num = 0;
78
+ $("#addInput").on("click", function() {
79
+ num += 1;
80
+ var getTpl = input_wraper.innerHTML,
81
+ view = document.getElementById('wraper');
82
+ laytpl(getTpl).render({
83
+ num: num
84
+ }, function(html) {
85
+ $(view).append(html);
86
+ });
87
+ form.render();
88
+ laydate.render({
89
+ elem: '.date_' + num,
90
+ });
91
+ })
92
+ form.on('submit(saveBtn)', function(data) {
93
+ data.field.business_id = business_select.getValue() || business_id;
94
+ request.post("missions/money_plan_records", data.field, function(res) {
95
+ layer.close(parent.sindex)
96
+ parent.table.reload('money_plan_record_table')
97
+ })
98
+ return false;
99
+ });
100
+ });
101
+ </script>
@@ -0,0 +1,167 @@
1
+ <%= Gon::Base.render_data %>
2
+ <div style="padding:10px">
3
+ <div class="layui-form layuimini-form" lay-filter="searchform">
4
+ <div class="layui-form-item">
5
+ <div class="layui-inline">
6
+ <label class="layui-form-label required" style="width:130px;">付款单位:</label>
7
+ <div class="layui-input-inline" style="line-height:38px;">
8
+ <%= @money_plan_record.payer_name %>
9
+ </div>
10
+ </div>
11
+ <div class="layui-inline">
12
+ <label class="layui-form-label required">回款金额:</label>
13
+ <div class="layui-input-inline" style="line-height:38px;">
14
+ <%= @money_plan_record.amount %>
15
+ </div>
16
+ </div>
17
+ <div class="layui-inline">
18
+ <label class="layui-form-label required" style="width: 110px;">回款日期:</label>
19
+ <div class="layui-input-inline" style="line-height:38px;">
20
+ <%= @money_plan_record.date_at.to_s(:date) %>
21
+ </div>
22
+ </div>
23
+ <div class="layui-inline">
24
+ <label class="layui-form-label" >状态匹配:</label>
25
+ <div class="layui-input-inline" style="line-height:38px;">
26
+ <span id="state_name"></span>
27
+ </div>
28
+ </div>
29
+ <div class="layui-form-item" style="margin-bottom: 0px;">
30
+ <label class="layui-form-label required" style="width: 130px !important;">对应回款计划:</label>
31
+ <div class="layui-inline">
32
+ <div id="money_plan_0" style="width:400px;"></div>
33
+ </div>
34
+ <div class="layui-inline">
35
+ <label class="layui-form-label required">金额:</label>
36
+ <div class="layui-input-inline">
37
+ <input type="text" name="amount[0]" value="<%= @money_plan_claim&.amount %>" class="layui-input" lay-verify="required">
38
+ </div>
39
+ </div>
40
+ <div class="layui-inline">
41
+ <button class="layui-btn" id="addPlan">+</button>
42
+ </div>
43
+ </div>
44
+
45
+ </div>
46
+ <div id="wraper"></div>
47
+ <div class="layui-form-item">
48
+ <div class="layui-input-block">
49
+ <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">保存</button>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <script type="text/html" id="input_wraper">
55
+ <div class="layui-form-item">
56
+ <label class="layui-form-label required" style="width: 130px !important;">对应回款计划:</label>
57
+ <div class="layui-inline">
58
+ <div id="money_plan_{{d.num}}" style="width:400px;"></div>
59
+ </div>
60
+ <div class="layui-inline">
61
+ <label class="layui-form-label required">金额:</label>
62
+ <div class="layui-input-inline">
63
+ <input type="text" name="amount[{{d.num}}]" value="{{d.amount||''}}" class="layui-input" lay-verify="required">
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </script>
68
+
69
+ <script>
70
+
71
+ layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'laydate', 'selectInput'], function() {
72
+ var form = layui.form,
73
+ layer = layui.layer,
74
+ table = layui.table,
75
+ laydate = layui.laydate,
76
+ laytpl = layui.laytpl,
77
+ request = layui.request,
78
+ selectInput = layui.selectInput,
79
+ $ = layui.$;
80
+ form.render();
81
+
82
+ laydate.render({
83
+ elem: '#date_at',
84
+ });
85
+
86
+ state_name.innerText = parent.state;
87
+
88
+ business_select_list = {};
89
+ num = 0;
90
+ setInput(0);
91
+
92
+ $("#addPlan").on("click", function() {
93
+ num += 1;
94
+ var getTpl = input_wraper.innerHTML, view = document.getElementById('wraper');
95
+ laytpl(getTpl).render({num: num}, function(html){
96
+ $(view).append(html);
97
+ });
98
+ form.render();
99
+ setInput(num);
100
+ })
101
+
102
+ if (gon.money_plan_ids.length > 1) {
103
+ for(var i=0; i<gon.money_plan_ids.length-1; i++) {
104
+ num += 1;
105
+ var getTpl = input_wraper.innerHTML, view = document.getElementById('wraper');
106
+ laytpl(getTpl).render({num: num, amount: gon.money_plan_claim_amount[num]}, function(html){
107
+ $(view).append(html);
108
+ });
109
+ form.render();
110
+ setInput(num);
111
+ }
112
+ }
113
+
114
+
115
+ function setInput(num) {
116
+ business_select_list['num_'+ num] = selectInput.render({
117
+ elem: '#money_plan_' + num,
118
+ layVerify: 'required',
119
+ initValue: gon.money_plan_ids[num],
120
+ data: gon.money_plan_records[num],
121
+ name: 'bussiness_name',
122
+ layFilter: 'test',
123
+ layVerType: 'tips',
124
+ layReqText: '请填写文本',
125
+ hasSelectIcon: false,
126
+ placeholder: '请输入回款计划名称/合同编号',
127
+ remoteSearch: true,
128
+ remoteMethod: function (value, cb) {
129
+ if (!value) {
130
+ return cb([]);
131
+ }
132
+ request.get('missions/search_money_plans?q=' + value, {}, function (res) {
133
+ if (res.data.length == 0) {
134
+ console.log("8888888")
135
+ business_select_list['num_'+ num].emptyValue();
136
+ return cb([])
137
+ }
138
+ return cb(res)
139
+ })
140
+ }
141
+ });
142
+ if (gon.money_plan_ids[num]) {
143
+ business_select_list['num_'+ num].tmpSelectValue = gon.money_plan_ids[num];
144
+ }
145
+ }
146
+
147
+
148
+ form.on('submit(saveBtn)', function(data) {
149
+ data.field.money_plan_ids = [];
150
+ for(var i=0; i<= num; i++) {
151
+ var money_plan_id = business_select_list['num_' + i].getValue();
152
+ console.log(i, money_plan_id)
153
+ if (money_plan_id == "") {
154
+ layer.msg('请选择计划')
155
+ return false;
156
+ }
157
+ data.field.money_plan_ids.push(money_plan_id)
158
+ }
159
+ data.field.num = num;
160
+ request.post("missions/money_plan_records/" + parent.id + "/confirm", data.field, function(res) {
161
+ layer.close(parent.sindex)
162
+ parent.table.reload('money_plan_record_table')
163
+ })
164
+ return false;
165
+ });
166
+ });
167
+ </script>
@@ -0,0 +1 @@
1
+ $("#monley_plan_record_wraper").html("<%= j render 'index' %>");
@@ -0,0 +1,26 @@
1
+ total_amount = 0
2
+ json.data do
3
+ json.array! @money_plan_records do |d|
4
+ json.id d.id
5
+ json.business_name d.business&.name
6
+ json.date_at d.date_at.to_s(:date)
7
+ json.amount d.amount
8
+ json.business d.business&.name
9
+ json.business_id d.business_id
10
+ json.school d.business&.school&.name
11
+ json.school_id d.business&.school_id
12
+ json.staff d.staff.user.real_name
13
+ json.number d.business&.number
14
+ json.payer_name d.payer_name
15
+ if d['claim_num'] > 0
16
+ json.state '已认领'
17
+ elsif d.business&.name.nil?
18
+ json.state '无对应合同'
19
+ else
20
+ json.state '待认领'
21
+ end
22
+ end
23
+ end
24
+
25
+ json.code 0
26
+ json.count @money_plan_records.total_count