| | |
| | | private DocTypeService docTypeService; |
| | | @Autowired |
| | | private WrkDetlService wrkDetlService; |
| | | @Autowired |
| | | private MatService matService; |
| | | |
| | | @Override |
| | | public Order selectByNo(String orderNo) { |
| | |
| | | |
| | | } |
| | | } |
| | | for (OrderMergeVo vo : result) { |
| | | Mat mat = matService.selectByMatnr(vo.getMatnr()); |
| | | assert mat != null; |
| | | vo.setMaktx(mat.getMaktx()); |
| | | vo.setSpecs(mat.getSpecs()); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | |
| | | ,moveType: 1 //拖拽模式,0或者1 |
| | | ,content: $('#pakoutPreviewBox').html() |
| | | ,success: function(layero, index){ |
| | | console.log(res.data) |
| | | stoPreTabIdx = table.render({ |
| | | elem: '#stoPreTab', |
| | | data: res.data, |
| | |
| | | }, |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | var mergeTabCache; |
| | | if (res.code === 200){ |
| | | admin.open({ |
| | | type: 1, |
| | | title: '订单合并 【 数量:' + orderIds.length + " 】", |
| | | content: $('#mergeDialog').html(), |
| | | area: '900px', |
| | | success: function (layero, dIndex) { |
| | | $('#newOrderNo').val(res.data.newOrderNo); |
| | | // 渲染客户列表 |
| | | let cstmrVal = xmSelect.render({ |
| | | el: '#cstmrSelect', |
| | | radio: true, |
| | | clickClose: true, |
| | | filterable: true, |
| | | create: function(val, arr){ |
| | | if(arr.length === 0){ |
| | | return { |
| | | name: val, |
| | | value: val |
| | | } |
| | | } |
| | | }, |
| | | model: { |
| | | icon: 'hidden', |
| | | label: { |
| | | type: 'text', |
| | | } |
| | | }, |
| | | data: res.data.cstmrs |
| | | }) |
| | | // 渲染明细 |
| | | let xxDataList = res.data.orderDetls; |
| | | let tbOptions = { |
| | | elem: '#mergeTable', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | data: xxDataList, |
| | | limit: 9999, |
| | | height: '350px;', |
| | | layer.open({ |
| | | type: 1 |
| | | , title: false |
| | | , closeBtn: false |
| | | , offset: '50px' |
| | | , area: ['1200px', '700px'] |
| | | , shade: 0.5 |
| | | , shadeClose: false |
| | | , btn: ['确定', '取消'] |
| | | , btnAlign: 'c' |
| | | , moveType: 1 //拖拽模式,0或者1 |
| | | , content: $('#mergeDialog').html() |
| | | , success: function (layero, index) { |
| | | console.log(res.data); |
| | | orderMergeTabIdx = table.render({ |
| | | elem: '#orderMergeTab', |
| | | data: res.data, |
| | | height: 520, |
| | | page: false, |
| | | limit: Number.MAX_VALUE, |
| | | cellMinWidth: 100, |
| | | cols: [[ |
| | | {type: 'numbers', title: '#'}, |
| | | {field: 'matnr', title: '商品编码', minWidth: 170}, |
| | | {field: 'maktx', title: '商品名称'}, |
| | | {field: 'batch', title: '批号'}, |
| | | {field: 'anfme', title: '数量', minWidth: 80, width: 80}, |
| | | {field: 'unitPrice', title: '单价(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 120, width: 120, fixed: 'right'}, |
| | | // {align: 'center', title: '操作', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80} |
| | | {type: 'checkbox'}, |
| | | {field: 'matnr', title: '商品编码', align: 'center', width: 350}, |
| | | {field: 'maktx', title: '商品名称', align: 'center'}, |
| | | {field: 'specs', title: '规格', align: 'center'}, |
| | | {field: 'batch', title: '批号', align: 'center'}, |
| | | {field: 'anfme', title: '数量', align: 'center', width: 90, style: 'font-weight: bold'}, |
| | | ]], |
| | | done: function (res) { |
| | | $(layero).find('.layui-table-view').css('margin', '0'); |
| | | $('.layui-table-body.layui-table-main').css("overflow", "auto"); |
| | | mergeTabCache = tableData = table.cache.orderMergeTab; |
| | | } |
| | | }; |
| | | let insMergeTb = table.render(tbOptions); |
| | | // 价格修改 |
| | | table.on('edit(mergeTable)', function (obj) { |
| | | let unitPrice = Number(obj.value); |
| | | if (isNaN(unitPrice)) { |
| | | layer.msg("请输入数字", {icon: 2}); |
| | | } else { |
| | | if (unitPrice > 0) { |
| | | for (let i=0;i<xxDataList.length;i++){ |
| | | if (xxDataList[i]["matnr"] === obj.data.matnr && xxDataList[i]["batch"] === obj.data.batch){ |
| | | xxDataList[i]["unitPrice"] = unitPrice; |
| | | break; |
| | | } |
| | | } |
| | | } else { |
| | | layer.msg("数量必须大于零", {icon: 2}); |
| | | } |
| | | } |
| | | insMergeTb.reload({data: xxDataList}); |
| | | }); |
| | | // 合并表单提交事件 |
| | | form.on('submit(mergeSubmit)', function (data) { |
| | | let nList = admin.util.deepClone(xxDataList); |
| | | data.field.cstmr = cstmrVal.getValue()[0] ? cstmrVal.getValue()[0].name : null; |
| | | layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/delivery/merge/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify({ |
| | | oldOrderIds: orderIds, |
| | | orderNo: data.field.newOrderNo, |
| | | cstmr: data.field.cstmr, |
| | | orderDetls: nList |
| | | }), |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll('loading'); |
| | | if (res.code === 200){ |
| | | layer.close(dIndex); |
| | | $(".layui-laypage-btn")[0].click(); |
| | | layer.msg(res.msg, {icon: 1}); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | }else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | } |
| | | }); |
| | | , yes: function (index, layero) { |
| | | //按钮【确定】的回调 |
| | | |
| | | } |
| | | , btn2: function (index, layero) { |
| | | //按钮【取消】的回调 |
| | | layer.close(index) |
| | | //return false 开启该代码可禁止点击该按钮关闭 |
| | | } |
| | | }) |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | |
| | | </div> |
| | | </script> |
| | | |
| | | <!-- 合并表单弹窗 --> |
| | | <script type="text/html" id="mergeDialog"> |
| | | <div style="padding: 25px; line-height: 22px; background-color: #1E9FFF; color: #fff; font-weight: 300;"> |
| | | <span style="font-size: large; font-weight: bold">合并出库</span> |
| | | </div> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body" style="padding: 10px"> |
| | | <table id="orderMergeTab" lay-filter="orderMergeTab"></table> |
| | | </div> |
| | | </div> |
| | | </script> |
| | | |
| | | <script type="text/html" id="tbBasicTbStaNos"> |
| | | <div class="ew-select-fixed"> |
| | | <select class="order-sta-select" lay-filter="tbBasicTbStaNos"> |