educode_sales 0.9.98 → 0.9.99
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/contracts_controller.rb +2 -4
- data/app/controllers/educode_sales/sales_details_controller.rb +22 -0
- data/app/models/educode_sales/user_stat_service.rb +1 -1
- data/app/views/educode_sales/sales_details/_index.html.erb +38 -7
- data/app/views/educode_sales/sales_details/index.json.jbuilder +1 -0
- data/config/routes.rb +3 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d3b1f62cddc62c5e2d319320a0b53622d8c610a565923613fee6cf6cedcacb9
|
4
|
+
data.tar.gz: 882b25401c7319bed2b1de0eca8e331a58ed46976ea6d1fff5425758ddd6ced5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 866d6f020e66dd334e039e2ac2cb67a059f03712c3ad92cd632a249d96f7076661238d7b418ca9eab87907954f81a01dea8508df86bf12169fe91f7540d151ae
|
7
|
+
data.tar.gz: e0559ef009cbf4b4e0b718d00783d2d513a0ef8722831065e7b42d654c48f143c1411f6617252aae4a8b20d681e6687061a771a58ddbc1fee01967159b897cea
|
@@ -496,11 +496,9 @@ module EducodeSales
|
|
496
496
|
xlsx = Roo::Spreadsheet.open(params[:file])
|
497
497
|
ods = xlsx.sheet(0)
|
498
498
|
rows = ods.last_row - 1
|
499
|
-
i = 0
|
500
499
|
rows.times do |r| #行数
|
501
|
-
|
502
|
-
|
503
|
-
EducodeSales::ProductCatalog.create(name: ods.row(r+1)[0].to_s.strip, item_clazz: ods.row(r+1)[1].to_s.strip, brand: ods.row(r+1)[2].to_s.strip, specification: ods.row(r+1)[3].to_s.strip, unit: ods.row(r+1)[4].to_s.strip, param: ods.row(r+1)[5].to_s.strip, source_method: ods.row(r+1)[6].to_s.strip, supplier: ods.row(r+1)[7].to_s.strip)
|
500
|
+
next unless ods.row(r+2)[0]
|
501
|
+
EducodeSales::ProductCatalog.create(name: ods.row(r+2)[0].to_s.strip, item_clazz: ods.row(r+2)[1].to_s.strip, brand: ods.row(r+2)[2].to_s.strip, specification: ods.row(r+2)[3].to_s.strip, unit: ods.row(r+2)[4].to_s.strip, param: ods.row(r+2)[5].to_s.strip, source_method: ods.row(r+2)[6].to_s.strip, supplier: ods.row(r+2)[7].to_s.strip)
|
504
502
|
end
|
505
503
|
|
506
504
|
render json: { succcess: true}
|
@@ -131,6 +131,28 @@ module EducodeSales
|
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
134
|
+
def upload
|
135
|
+
xlsx = Roo::Spreadsheet.open(params[:file])
|
136
|
+
ods = xlsx.sheet(0)
|
137
|
+
rows = ods.last_row - 1
|
138
|
+
rows.times do |r| #行数
|
139
|
+
next unless ods.row(r+2)[0]
|
140
|
+
business = EducodeSales::Business.find_by(number: ods.row(r+2)[0].to_s.strip)
|
141
|
+
product_catalog = EducodeSales::ProductCatalog.find_by(item_clazz: ods.row(r+2)[7].to_s.strip,
|
142
|
+
brand: ods.row(r+2)[8].to_s.strip,
|
143
|
+
specification: ods.row(r+2)[9].to_s.strip,
|
144
|
+
unit: ods.row(r+2)[10].to_s.strip,
|
145
|
+
source_method: ods.row(r+2)[14].to_s.strip,
|
146
|
+
supplier: ods.row(r+2)[16].to_s.strip)
|
147
|
+
if business.present? && product_catalog.present?
|
148
|
+
SalesDetail.create(staff_id: @current_admin.id, business_id: business.id, product_catalog_id: product_catalog.id, price: ods.row(r+2)[12].to_s.strip, amount: ods.row(r+2)[11].to_s.strip, total_price: ods.row(r+2)[13].to_s.strip, custom_clazz: ods.row(r+2)[15].to_s.strip, delivery_date: ods.row(r+2)[17].to_s.strip)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
render json: { succcess: true}
|
153
|
+
end
|
154
|
+
|
155
|
+
|
134
156
|
private
|
135
157
|
|
136
158
|
def sales_detail_params
|
@@ -21,7 +21,7 @@ module EducodeSales
|
|
21
21
|
department_years_2 = {} #department_users(2)
|
22
22
|
|
23
23
|
years = {}
|
24
|
-
(
|
24
|
+
(2014..Time.current.year).each do |d|
|
25
25
|
years[d] = {
|
26
26
|
'year' => d,
|
27
27
|
'user_1' => (user_years_1[d.to_s] || 0) + (years[d-1] && years[d-1]['user_1']).to_i,
|
@@ -84,19 +84,18 @@
|
|
84
84
|
|
85
85
|
</script>
|
86
86
|
|
87
|
-
<script type="text/html" id="
|
88
|
-
<
|
89
|
-
<span class="table-label">销售明细</span>
|
90
|
-
</div>
|
87
|
+
<script type="text/html" id="toolbar_sales">
|
88
|
+
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" id="upload_sales_btn" style="margin-left: 20px;">批量导入销售明细</button>
|
91
89
|
</script>
|
92
90
|
<script>
|
93
|
-
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'dropdown', 'laytpl', 'xmSelect'], function() {
|
91
|
+
layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'dropdown', 'laytpl', 'xmSelect', 'upload'], function() {
|
94
92
|
var $ = layui.jquery,
|
95
93
|
form = layui.form,
|
96
94
|
request = layui.request,
|
97
95
|
miniPage = layui.miniPage,
|
98
96
|
dropdown = layui.dropdown,
|
99
97
|
xmSelect = layui.xmSelect,
|
98
|
+
upload = layui.upload,
|
100
99
|
laydate = layui.laydate;
|
101
100
|
var openWH = miniPage.getOpenWidthHeight();
|
102
101
|
laydate.render({
|
@@ -181,6 +180,10 @@
|
|
181
180
|
width: 100,
|
182
181
|
title: '数量',
|
183
182
|
}, {
|
183
|
+
field: 'price',
|
184
|
+
width: 100,
|
185
|
+
title: '单价',
|
186
|
+
},{
|
184
187
|
field: 'total_price',
|
185
188
|
width: 100,
|
186
189
|
title: '金额',
|
@@ -223,14 +226,42 @@
|
|
223
226
|
title: '销售明细数据表',
|
224
227
|
totalRow: true, //开启合并行
|
225
228
|
cols: cols_table,
|
226
|
-
toolbar: '#
|
229
|
+
toolbar: '#toolbar_sales',
|
227
230
|
limit: 20,
|
228
231
|
limits: [10, 15, 20, 30, 40, 50, 60, 70, 80, 90],
|
229
232
|
page: true,
|
230
233
|
skin: 'line',
|
234
|
+
done: function() {
|
235
|
+
if ($('#upload_sales_btn').length > 0) {
|
236
|
+
uploadSales();
|
237
|
+
}
|
238
|
+
}
|
231
239
|
});
|
232
240
|
|
233
|
-
|
241
|
+
function uploadSales() {
|
242
|
+
upload.render({
|
243
|
+
elem: '#upload_sales_btn'
|
244
|
+
,url: '/missions/sales_details/upload'
|
245
|
+
,accept: 'file' //普通文件
|
246
|
+
,acceptMime: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,application/vnd.ms-excel'
|
247
|
+
,headers: {
|
248
|
+
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
|
249
|
+
}
|
250
|
+
,before: function(obj){
|
251
|
+
layer.load();
|
252
|
+
}
|
253
|
+
,done: function(res){
|
254
|
+
layer.msg('导入成功');
|
255
|
+
table.reload('sales_details_table');
|
256
|
+
layer.closeAll('loading'); //关闭loading
|
257
|
+
}
|
258
|
+
,error: function(index, upload){
|
259
|
+
table.reload('file');
|
260
|
+
layer.closeAll('loading'); //关闭loading
|
261
|
+
layer.alert('导入失败,请检查文件格式')
|
262
|
+
}
|
263
|
+
});
|
264
|
+
}
|
234
265
|
var sort = {},
|
235
266
|
search = data;
|
236
267
|
|
@@ -20,6 +20,7 @@ json.data do
|
|
20
20
|
json.specification d.product_catalog.specification
|
21
21
|
json.unit d.product_catalog.unit
|
22
22
|
json.amount d.amount
|
23
|
+
json.price d.price
|
23
24
|
json.total_price d.total_price
|
24
25
|
json.source_method d.product_catalog.source_method
|
25
26
|
json.custom_clazz d.custom_clazz
|
data/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: educode_sales
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.99
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- anke1460
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -705,7 +705,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
705
705
|
- !ruby/object:Gem::Version
|
706
706
|
version: '0'
|
707
707
|
requirements: []
|
708
|
-
rubygems_version: 3.0.
|
708
|
+
rubygems_version: 3.0.0
|
709
709
|
signing_key:
|
710
710
|
specification_version: 4
|
711
711
|
summary: Summary of EducodeSales.
|