1. 【新增】售后单售后原因类型支持搜索

2. 【新增】手工创建订单折扣可输入正数

3. 【优化】盘点申请单确认

4. 【修复】采购退货单模拟出库失败问题

5. 【新增】订单金额客户实付与结算金额

6. 【优化】仓库发货统计报表物料名称显示

7. 【优化】自有仓储虚拟发货逻辑

8. 【修复】基础物料分类管理问题
This commit is contained in:
chenping
2026-04-01 11:59:17 +08:00
parent 9341122827
commit 61783b7d01
754 changed files with 46179 additions and 5700 deletions

View File

@@ -93,6 +93,8 @@
var weightSet ='<{$weightSet}>';
var weightWarn='<{$weightWarn}>';
var logi_no_position = '<{$logi_no_position}>';
var BASE_URL = '<{$env.BASE_URL}>';
var currentDeliveryIsPickup = false;
switch(logi_no_position){
case 'up':
@@ -215,10 +217,13 @@ function delivery_verify(e){
}
}catch(e){}
return MessageBox.error(json.msg);
}else{
if (json != ''){
json = json.filter(function(n){
}
if (typeof json === 'object' && json.status === 'ok'){
currentDeliveryIsPickup = (json.is_pickup === true);
json = '';
}
if (json != ''){
json = json.filter(function(n){
if (n.order_exists_refund != ''){
is_confirm_delivery = true;
refund_orders = n.order_exists_refund;
@@ -372,23 +377,44 @@ function delivery_verify(e){
}});
}else{
submitSend(e);
if (currentDeliveryIsPickup) { submitSend(e); } else { $('ome_single_delivery').submit(); }
}
}
}else{
submitSend(e);
if (currentDeliveryIsPickup) { submitSend(e); } else { $('ome_single_delivery').submit(); }
}
}
}
}
}
}).send();
}
function submitSend(e){
$('ome_single_delivery').fireEvent('submit',{stop:$empty});
var form = $('ome_single_delivery');
if (form.retrieve('submiting')) return;
var target = form.retrieve('target') || {};
// 先触发打印(不等待),再提交 consign打印异常也不影响 consign 提交
var printVal = $('delivery_id').value || '';
if (printVal) {
try { autoCainiaoPrint(printVal); } catch (err) {}
}
if (target.onRequest) target.onRequest();
form.store('submiting', true);
new Request({
url: form.get('action'),
method: (form.get('method') || 'post').toLowerCase(),
data: form,
onComplete: function(resp) {
if (form && form.uid) form.eliminate('submiting');
if (target.onComplete) target.onComplete(resp);
},
onFailure: function() {
if (form && form.uid) form.eliminate('submiting');
$('sendProduct').set('disabled', '');
$('sendProduct').getElements('span')[1].set('text','确认出库');
$('error').show().set('html', '请求失败,请重试');
}
}).send();
}
//根据物流单号,获取货号、货品名称
function showProductItems(){
@@ -429,8 +455,125 @@ $('ome_single_delivery').store('target',{
}
}else{
$('sendProduct').set('disabled', 'true');
if (json.redirect) {
if (typeof MessageBox !== 'undefined') {
new MessageBox(json.success || '发货处理完成', { type: 'success', autohide: 1500 });
}
var url = json.redirect;
var q = (window.location.search || '').replace(/^\?/, '');
if (q) url += (url.indexOf('?') >= 0 ? '&' : '?') + q;
setTimeout(function(){ window.location.href = url; }, 800);
}
}
}
});
</script>
// 仅 pickup 时拦截 submit走自定义 Request + 打印 + redirect非 pickup 保持原样 fireEvent('submit') 由框架处理
$('ome_single_delivery').addEvent('submit', function(e) {
if (currentDeliveryIsPickup) {
e.stop();
if (e.preventDefault) e.preventDefault();
submitSend(e);
return false;
}
});
var _printerJsLoaded = false;
function _loadPrinterJs(cb) {
if (_printerJsLoaded && typeof(initPrinter) == 'function') return cb();
if (typeof(Ex_Loader) == 'function') {
Ex_Loader('security', BASE_URL + '/app/logisticsmanager/statics/js/printer.js?v=20210412', function(){
_printerJsLoaded = true;
cb();
});
return;
}
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = BASE_URL + '/app/logisticsmanager/statics/js/printer.js?v=20210412';
s.onload = function(){ _printerJsLoaded = true; cb(); };
document.getElementsByTagName('head')[0].appendChild(s);
}
function autoCainiaoPrint(deliveryId) {
_loadPrinterJs(function(){
new Request({
url:'index.php?app=wms&ctl=admin_receipts_print&act=ajaxGetPrintExpreData',
method:'POST',
data:{delivery_id:deliveryId},
onSuccess:function(resp){
resp = (resp || '').trim();
var ret = resp ? JSON.decode(resp) : {};
if (!ret || ret.status != 'success') {
if (ret && ret.msg && (ret.msg.indexOf('未找到提货单') >= 0 || ret.msg.indexOf('非提货单') >= 0)) return;
var msg = ret && ret.msg ? ret.msg : '获取打印数据失败';
$('error').show().set('html',msg);
return;
}
var options = ret.options || {};
var printerType = (ret.printer_type && ret.printer_type !== '') ? ret.printer_type : 'cainiao';
if (printerType === 'cainiao' && options.data && options.data.length) {
var hasJsonPacket = options.data.every(function(item){ return item && typeof item.json_packet === 'string' && item.json_packet.length > 0; });
if (!hasJsonPacket) {
$('error').show().set('html', '无电子面单数据,无法触发菜鸟打印。请确认该单已获取电子面单或稍后在打印页补打。');
return;
}
}
options.onError = function(data){
var msg = (typeof data == 'object' && data.errmsg) ? data.errmsg : '与菜鸟打印组件通信失败,请确认已安装并打开菜鸟组件';
$('error').show().set('html',msg);
};
var decrypted = false;
var printersReady = false;
var printerName = '';
var printed = false;
var printTriggered = false;
options.onOpen = function(){
try { printerObj.getPrinters(); } catch(e){}
};
options.onGetPrinters = function(data){
if(!data.printers || data.printers.length == 0) {
$('error').show().set('html', data.msg ? data.msg : '没有可用打印机');
return;
}
printerName = data.defaultPrinter ? data.defaultPrinter : data.printers[0].name;
printersReady = true;
tryStartPrint();
};
options.onDecryptComplete = function(p){
if (p && p.rsp == 'fail') {
$('error').show().set('html', p.errmsg ? p.errmsg : '数据解密失败');
return;
}
decrypted = true;
tryStartPrint();
};
options.onPrintFailure = function(data){
var msg = data && data.msg ? data.msg : '打印失败';
$('error').show().set('html', msg);
printed = false;
};
options.onPrintSuccess = function(){
printed = true;
};
var printerObj = initPrinter(printerType, options);
printerObj.decryptAsync(5);
function tryStartPrint(){
if (printTriggered) return;
if (!decrypted || !printersReady) return;
if (!printerName) return;
if (printerObj.destatus != 'succ') return;
printTriggered = true;
printed = true;
printerObj.print.delay(10, printerObj, [{name:printerName}]);
}
}
}).send();
});
}
</script>

View File

@@ -77,7 +77,7 @@
<div class="form-field">
<span class="form-field-label">发货校验商品数量设置:</span>
<input class="form-input" placeholder="请输入发货校验商品数量设置" type="text" name="set[wms.delivery.check]" value="<{$setData.wms_delivery_check}>" vtype="required&&unsignedint" />
<span class="form-remark">同一货品数量大于设置数量时可以通过录入数量来批量检验</span>
<span class="form-remark">同一基础物料数量大于设置数量时可以通过录入数量来批量检验</span>
</div>
<div class="form-field">
<span class="form-field-label">逐单发货是否称重:</span>
@@ -118,14 +118,14 @@
</div>
<div class="form-field weightwarn_on">
<span class="form-field-label">逐单发货称重报警设置:</span>
包裹称重重量比系统中货品净重多出<input class="form-input" style="width: 5%" type="text" name="set[wms.delivery.max_weightwarn]" value="<{$setData.wms_delivery_max_weightwarn|default:0}>" vtype="required&&unsignedint" />
包裹称重重量比系统中基础物料净重多出<input class="form-input" style="width: 5%" type="text" name="set[wms.delivery.max_weightwarn]" value="<{$setData.wms_delivery_max_weightwarn|default:0}>" vtype="required&&unsignedint" />
<span id='warnunit1' style="width:20px;"><{if $setData.wms_delivery_maxpercent=='1'}>%<{else}>g<{/if}></span>
<input type="hidden" id="maxpercent" name="set[wms.delivery.maxpercent]" value="<{$setData.wms_delivery_maxpercent|default:0}>">&nbsp;&nbsp;以上,进行报警
<input type="checkbox" class='weightpercent' value="1" <{if $setData.wms_delivery_maxpercent=='1'}>checked<{/if}>>按百分比计算
</div>
<div class="form-field weightwarn_on1">
<span class="form-field-label"></span>
包裹称重重量比系统中货品净重少了<input class="form-input" style="width: 5%" type="text" name="set[wms.delivery.min_weightwarn]" value="<{$setData.wms_delivery_min_weightwarn|default:0}>" vtype="required&&unsignedint" />
包裹称重重量比系统中基础物料净重少了<input class="form-input" style="width: 5%" type="text" name="set[wms.delivery.min_weightwarn]" value="<{$setData.wms_delivery_min_weightwarn|default:0}>" vtype="required&&unsignedint" />
<span id='warnunit2' ><{if $setData.wms_delivery_minpercent=='1'}>%<{else}>g<{/if}></span>
<input type="hidden" id="minpercent" name="set[wms.delivery.minpercent]" value="<{$setData.wms_delivery_minpercent|default:0}>">&nbsp;&nbsp;以上,进行报警
<input type="checkbox" class='weightpercent1' value="2" <{if $setData.wms_delivery_minpercent=='1'}>checked<{/if}>>按百分比计算
@@ -263,4 +263,4 @@ window.addEvent('domready',function(){
}
}
});
</script>
</script>

View File

@@ -26,9 +26,9 @@
<tr>
<th style='text-align:left;padding-left:5px;'>采购单号</th>
<th style='text-align:left;padding-left:5px;'>拣货单号</th>
<th style='text-align:left;padding-left:5px;'>货号</th>
<th style='text-align:left;padding-left:5px;'>基础物料编码</th>
<th style='text-align:left;padding-left:5px;'>条形码</th>
<th style='text-align:left;padding-left:5px;'>货品名称</th>
<th style='text-align:left;padding-left:5px;'>基础物料名称</th>
<th style='text-align:left;padding-left:5px;'>尺寸</th>
<th style='text-align:left;padding-left:5px;'>申请数量</th>
<th style='text-align:left;padding-left:5px;'>实际数量</th>