diff --git a/src/mycomponents/balance/handleBalance.vue b/src/mycomponents/balance/handleBalance.vue index cb3ea9f1..4aac011d 100644 --- a/src/mycomponents/balance/handleBalance.vue +++ b/src/mycomponents/balance/handleBalance.vue @@ -2,7 +2,7 @@ - diff --git a/src/pages/repleinsh/coms/comScanReplishPack.vue b/src/pages/repleinsh/coms/comScanReplishPack.vue index 31271ec8..ab348a07 100644 --- a/src/pages/repleinsh/coms/comScanReplishPack.vue +++ b/src/pages/repleinsh/coms/comScanReplishPack.vue @@ -113,7 +113,9 @@ import { getBalanceByManagementPrecision } from '@/common/balance.js'; -import { getDirectoryItemArray } from '../../../common/directory.js'; + import { + getDirectoryItemArray + } from '../../../common/directory.js'; export default { name: 'winScanPack', @@ -185,7 +187,7 @@ import { getDirectoryItemArray } from '../../../common/directory.js'; let that = this; that.fromLocationList = []; if (that.dataContent != null) { - that.fromInventoryStatuses = this.jobContent.outInventoryStatuses + that.fromInventoryStatuses = this.jobContent.outInventoryStatuses that.toLocation = that.dataContent[0]; that.toLocationCode = that.dataContent[0].toLocationCode; that.fromLocationList = that.getFromLocationList(); @@ -249,15 +251,16 @@ import { getDirectoryItemArray } from '../../../common/directory.js'; mask: true }) - this.getBalance(result.label,packageInfo, balances => { - + this.getBalance(result.label, packageInfo, balances => { + //扫描的是外包装 let s = ''; - if (result.package.parentNumber == null || result.package.parentNumber == '') { + if (!result.package.parentNumber) { if (balances.list.length == 0) { this.showErrorMessage('未查找到该包装的库存信息,请重新扫描') } else { - let newBalances = balances.list.filter(b => b.locationCode ==that.fromLocationCode); + let newBalances = balances.list.filter(b => b.locationCode == that + .fromLocationCode); if (newBalances.length == 0) { this.showErrorMessage('未查找到该包装的库存信息,请重新扫描') } else if (newBalances.length == 1) { @@ -270,10 +273,52 @@ import { getDirectoryItemArray } from '../../../common/directory.js'; } else { //扫描的是小包装 if (balances.list.length == 0) { - this.afterGetBalance(result.label, null, packageInfo); + this.showErrorMessage('未查找到该包装的库存信息,请重新扫描') } else { - this.showErrorMessage('该包装在库位【' + balances.list[0].locationCode + - '】已经有库存余额,请重新扫描') + //小包装库存 + let subPackitems = balances.list.filter(r => r.packingNumber == packageInfo + .number) + //外包装库存 + let subParentPackitems = balances.list.filter(r => r.packingNumber == + packageInfo + .parentNumber) + + + //小包装没有库存, + if (subPackitems.length == 0) { + //外包装有库存,出库后剩余库存未转换为出库包装规格 + + if (subParentPackitems.length > 0) { + if(subParentPackitems.length==1){ + let balance = subParentPackitems[0]; + this.afterGetBalance(result.label, balance, packageInfo); + }else { + this.showBalanceSelect(subParentPackitems); + } + + } else { + this.showErrorMessage('按外包装【' + packageInfo.parentNumber + '】和子包装【' + + packageInfo.number + '】都未查找到库存余额') + } + } else { + this.showErrorMessage('该包装【' + packageInfo.number + '】在库位【' + balances + .list[0].locationCode + + '】已经有库存余额,请重新扫描') + } + + + + // //小包装没有库存,外包装有库存 + // if (subitems.length == 0 && subParentPackitems.length > 0) { + // this.afterGetBalance(result.label, null, packageInfo); + // } else if (subitems.length > 0 && subParentPackitems.length == 0) { + // //小包装没有库存,外包装没有有库存 + // this.showErrorMessage('该包装在库位【' + balances.list[0].locationCode + + // '】已经有库存余额,请重新扫描') + // } else { + + // } + } } uni.hideLoading(); @@ -304,24 +349,24 @@ import { getDirectoryItemArray } from '../../../common/directory.js'; } }, - getBalance(label, packageInfo,callback) { + getBalance(label, packageInfo, callback) { var filters = [] - + if (packageInfo.parentNumber) { - var packingNumber = packageInfo.parentNumber + "," + packageInfo.packingNumber; - filters.push({ - column: "packingNumber", - action: "in", - value: packingNumber - }) - } else { - filters.push({ - column: "packingNumber", - action: "==", - value: packageInfo.packingNumber - }) - } - + var packingNumber = packageInfo.parentNumber + "," + label.packingNumber; + filters.push({ + column: "packingNumber", + action: "in", + value: packingNumber + }) + } else { + filters.push({ + column: "packingNumber", + action: "==", + value: label.packingNumber + }) + } + filters.push({ column: "itemCode", action: "==", @@ -484,8 +529,9 @@ import { getDirectoryItemArray } from '../../../common/directory.js'; let record = { scaned: true, itemCode: balance.itemCode, - packingNumber: balance.packingNumber, - batch: balance.batch, + packingNumber: packageInfo.number, + parentPackingNumber: packageInfo.parentNumber, + batch: packageInfo.batch, qty: Number(balance.qty), // qty: Number(label.qty)>Number(balance.qty)?Number(balance.qty):Number(label.qty), uom: balance.uom, @@ -579,10 +625,11 @@ import { getDirectoryItemArray } from '../../../common/directory.js'; let item = this.toLocation.Items.find(r => r.itemCode == record.itemCode); if (item != undefined) { item.Locations.forEach(l => { - let batch = l.Batchs.find(b => (b.packingNumber == record.packingNumber || b + let batch = l.Batchs.find(b => (b.packingNumber == record.packingNumber || + b .packingNumber == null || b.packingNumber == '') && b.batch == record.batch); - + let rIndex = batch.Records.findIndex(r => r.packingNumber == record .packingNumber && r .batch == record.batch);