补发货修改

This commit is contained in:
hayu 2026-02-04 10:54:24 +08:00
parent 6c247e18d8
commit d4bd51714a
1 changed files with 46 additions and 5 deletions

View File

@ -201,11 +201,11 @@ function beforeSubmitApply() {
if (hasError) break; if (hasError) break;
// 第二步:校验采购量+利库量不可全部为0 // 第二步:校验采购量+利库量不可全部为0
if (cgNum + lkNum <= 0) { // if (cgNum + lkNum <= 0) {
layer.msg('序号为' + (i + 1) + '的数据请填写采购量或利库量不可全部为0', { icon: 7 }); // layer.msg('序号为' + (i + 1) + '的数据请填写采购量或利库量不可全部为0', { icon: 7 });
hasError = true; // hasError = true;
break; // break;
} // }
o.cgTotal = cgNum; o.cgTotal = cgNum;
o.lkTotal = lkNum; o.lkTotal = lkNum;
@ -226,6 +226,20 @@ function beforeSubmitApply() {
// 若存在错误,直接返回,不执行后续逻辑 // 若存在错误,直接返回,不执行后续逻辑
if (hasError) return; if (hasError) return;
if (targetData && targetData.length > 0) {
targetData = targetData.filter(item => {
// 过滤条件:采购总量+利库总量 > 0
return (parseInt(item.cgTotal || 0) + parseInt(item.lkTotal || 0)) > 0;
});
// 如果过滤后没有数据,提示用户并返回
if (targetData.length === 0) {
layer.msg('请填写有效的采购量或利库量不可全部为0', { icon: 7 });
return;
}
}
// 第四步:仅当无任何错误时,才判断是否需要弹出总量超需用量的确认框 // 第四步:仅当无任何错误时,才判断是否需要弹出总量超需用量的确认框
if (confirmIndex > -1) { if (confirmIndex > -1) {
layer.confirm('序号为' + (confirmIndex + 1) + '的数据,采购量+利库量总和大于需要量,是否确认提交?', { layer.confirm('序号为' + (confirmIndex + 1) + '的数据,采购量+利库量总和大于需要量,是否确认提交?', {
@ -245,6 +259,33 @@ function submitApply() {
let data = form.val('formInfo'); let data = form.val('formInfo');
let dataList = getBaseTableData(); let dataList = getBaseTableData();
// ========== 过滤采购量和利库量都为0的数据 ==========
// 第一步:过滤主数据列表,只保留有有效数值的条目
dataList = dataList.filter(item => {
// 先计算当前条目的采购总量和利库总量
let cgTotal = 0, lkTotal = 0;
if (item.supList && item.supList.length > 0) {
item.supList.forEach(supItem => {
cgTotal += parseInt(supItem.cgNum || 0);
lkTotal += parseInt(supItem.lkNum || 0);
});
}
// 过滤条件:采购总量+利库总量 > 0
return (cgTotal + lkTotal) > 0;
});
// 第二步进一步过滤每个条目中的supList移除其中采购量和利库量都为0的子项
dataList.forEach(item => {
if (item.supList && item.supList.length > 0) {
item.supList = item.supList.filter(supItem => {
let cgNum = parseInt(supItem.cgNum || 0);
let lkNum = parseInt(supItem.lkNum || 0);
return (cgNum + lkNum) > 0;
});
}
});
data.id = dataObj.id; data.id = dataObj.id;
data.detailsList = dataList; data.detailsList = dataList;
data.planId = objParam.id; data.planId = objParam.id;