diff --git a/src/common/directory.js b/src/common/directory.js
index 377e99fe..1903a950 100644
--- a/src/common/directory.js
+++ b/src/common/directory.js
@@ -211,6 +211,18 @@ export function getListItemTypeDesc(list) {
return desc;
}
+//获取物品状态(多个)
+export function getListItemStatusDesc(list) {
+ let desc = '';
+ list.forEach(res => {
+ desc += getItemStateInfo(res).label + ","
+ })
+ desc = desc.slice(0, -1);
+ return desc;
+}
+
+
+
//获取物品类型
export function getItemTypeInfo(value) {
var resultInfo = "";
@@ -311,6 +323,13 @@ export function getItemTypeName(value) {
return location == '' ? value : location.label;
}
+//获取物品状态名称
+export function getItemStatusName(value) {
+ let location = getItemStateInfo(value);
+
+ return location == '' ? value : location.label;
+}
+
//获取库位类型名称
export function getLocationTypeName(value) {
diff --git a/src/common/record.js b/src/common/record.js
index 02c4dac7..c6b44261 100644
--- a/src/common/record.js
+++ b/src/common/record.js
@@ -151,7 +151,8 @@ export function getBusinessType(typeCode, callback) {
businessType: '',
fromLocationAreaTypeList: '',
toLocationAreaTypeList: '',
- itemCodeTypeList: "",
+ itemTypeList: "",
+ itemStatusList:"",
useOnTheWay: "FALSE",
fromInventoryStatuses: '',
toInventoryStatuses: '',
@@ -162,7 +163,8 @@ export function getBusinessType(typeCode, callback) {
result.businessType = res.data.list[0];
result.fromLocationAreaTypeList = getDirectoryItemArray(res.data.list[0].outAreaTypes);
result.toLocationAreaTypeList = getDirectoryItemArray(res.data.list[0].inAreaTypes);
- result.itemCodeTypeList = getDirectoryItemArray(res.data.list[0].itemTypes)
+ result.itemTypeList = getDirectoryItemArray(res.data.list[0].itemTypes)
+ result.itemStatusList =getDirectoryItemArray(res.data.list[0].itemStatuses)
result.fromInventoryStatuses = res.data.list[0].outInventoryStatuses;
result.toInventoryStatuses = res.data.list[0].inInventoryStatuses;
result.useOnTheWay = res.data.list[0].useOnTheWay
diff --git a/src/pages/inventoryMove/coms/comMoveRecord.vue b/src/pages/inventoryMove/coms/comMoveRecord.vue
index c0de0d71..63fd55c6 100644
--- a/src/pages/inventoryMove/coms/comMoveRecord.vue
+++ b/src/pages/inventoryMove/coms/comMoveRecord.vue
@@ -36,13 +36,13 @@
+ @onConfirm='okToHoldRecordPackConfirm' @getInputMsgResult="getInputMsgResult">
+
@@ -57,9 +57,6 @@
import winScanPackAndLocation from "@/mycomponents/scan/winScanPackAndLocation.vue"
import okToHoldRecordPack from '@/pages/inventoryMove/coms/okToHoldRecordPack.vue'
- import {
- getInventoryStatusName
- } from '@/common/directory.js';
import {
inventoryMoveRecordSubmit,
getBasicLocationByCode,
@@ -69,8 +66,12 @@
import {
getDirectoryItemArray,
getItemTypeName,
+ getInventoryStatusName,
checkDirectoryItemExist,
- getListItemTypeDesc
+ getListItemTypeDesc,
+ getListItemStatusDesc,
+ getItemStatusName,
+ getInventoryStatusDesc
} from '@/common/directory.js';
import {
@@ -104,7 +105,7 @@
comBlankView,
winScanLocation,
winScanPackAndLocation,
- okToHoldRecordPack
+ okToHoldRecordPack,
},
props: {
// fromInventoryStatus: {
@@ -155,7 +156,9 @@
dataContent: {},
fromLocationAreaTypeList: [],
toLocationAreaTypeList: [],
- itemCodeTypeList: [],
+ itemTypeList: [],
+ itemStatusList: [],
+ fromInventoryStatuses:[],
isShowEditLocation: false,
isJustReplay: true, //是否只是回显,不走库存余额接口
fromWarehouseCode: ""
@@ -166,9 +169,11 @@
getBusinessType(this.businessTypeCode, res => {
if (res.success) {
this.businessType = res.businessType;
- this.itemCodeTypeList = res.itemCodeTypeList;
+ this.itemTypeList = res.itemTypeList;
+ this.itemStatusList = res.itemStatusList;
this.fromLocationAreaTypeList = res.fromLocationAreaTypeList;
this.toLocationAreaTypeList = res.toLocationAreaTypeList;
+ this.fromInventoryStatuses =getDirectoryItemArray(res.fromInventoryStatuses);
this.showPopup()
} else {
this.showErrorMessage(res.message)
@@ -288,17 +293,46 @@
this.toLocationInfo = location;
},
getScanResult(result, managementTypeParams) {
- this.fromWarehouseCode =result.fromWarehouseCode
+ this.fromWarehouseCode = result.fromWarehouseCode
this.managementType = managementTypeParams
if (this.showOnePop) {
if (this.isJustReplay) {
- this.$refs.okToHoldRecordPackRef.itemCode = result.label.itemCode
- this.$refs.okToHoldRecordPackRef.batch = result.label.batch
- this.$refs.okToHoldRecordPackRef.uom = result.balance?result.balance.uom:""
- this.getResult = result //存储接受的结果
- this.$refs.scanPopup.closeScanPopup()
+ this.checkItemCode(result.label.itemCode, callBack => {
+ if (callBack) {
+ var itemType = callBack.itemType
+ var itemStatus = callBack.itemStatus
+ if (checkDirectoryItemExist(this.itemTypeList, itemType)) {
+ if (checkDirectoryItemExist(this.itemStatusList, itemStatus)) {
+ this.$refs.okToHoldRecordPackRef.itemCode = result.label.itemCode
+ this.$refs.okToHoldRecordPackRef.batch = result.label.batch
+ this.$refs.okToHoldRecordPackRef.uom = result.balance ? result.balance.uom : ""
+ this.getResult = result //存储接受的结果
+ this.$refs.scanPopup.closeScanPopup()
+ } else {
+ this.$refs.okToHoldRecordPackRef.itemCode = ''
+ var hint = getListItemStatusDesc(this.itemStatusList);
+ this.showErrorMessage("扫描物料[" + result.label.itemCode + "]是[" +
+ getItemStatusName(itemStatus) + "],需要的物料状态是[" + hint + "]")
+ }
+
+ } else {
+ this.$refs.okToHoldRecordPackRef.itemCode = ''
+ var hint = getListItemTypeDesc(this.itemTypeList);
+ this.showErrorMessage("扫描物料[" + result.label.itemCode + "]是[" +
+ getItemTypeName(callBack) + "],需要的物料类型是[" + hint + "]")
+ }
+
+ } else {
+ this.$refs.okToHoldRecordPackRef.itemCode = ''
+ this.showErrorMessage('未查找到物料【' + result.label.itemCode + '】');
+ }
+ })
+
+
} else {
this.getScanResultAfterBatch(result, managementTypeParams)
+
+
}
} else {
if (managementTypeParams == "BY_BATCH" || managementTypeParams == "BY_QUANTITY") {
@@ -323,7 +357,7 @@
this.$refs.comMessage.showErrorMessage('请输入数量');
return;
}
-
+
this.getResult = this.getResult ? this.getResult : {
label: {},
fromLocationCode: ''
@@ -336,12 +370,16 @@
this.$refs.scanPopup.getScanResult(this.getResult, this.businessType)
},
- //checkItemCode
checkItemCode(itemCode, callBack) {
getBasicItemByCode(itemCode).then(res => {
if (res.data.list.length > 0) {
var itemType = res.data.list[0].type
- callBack(itemType)
+ var itemStatus = res.data.list[0].status
+ var info = {
+ itemType: itemType,
+ itemStatus: itemStatus
+ }
+ callBack(info)
} else {
callBack(null)
}
@@ -350,14 +388,17 @@
callBack(null)
})
},
-
- isInItemCodeTypeList(itemType) {
- var item = this.itemCodeTypeList.find(res => res == itemType)
-
- if (item = undefined) {
- return false
- }
- return true
+
+ checkInventoryStatus(result,inventoryStatus) {
+ var isPass=true;
+ if (!checkDirectoryItemExist(this.fromInventoryStatuses, inventoryStatus)) {
+ isPass=false
+ var hint = getInventoryStatusDesc(this.fromInventoryStatuses);
+ this.showErrorMessage("查询库存是[" +
+ getInventoryStatusName(inventoryStatus) + "],需要的库存状态是[" + hint + "]")
+
+ }
+ return isPass;
},
clearFromLocationCode() {
@@ -426,6 +467,9 @@
calcHandleQty(this.detailSource);
},
getScanResultAfterBatch(result, managementTypeParams) {
+ if(!this.checkInventoryStatus(result,result.balance.inventoryStatus)){
+ return;
+ }
var balance = result.balance;
this.balanceInfo = result.balance;
var pack = result.package;
@@ -539,11 +583,22 @@
result.label.itemCode = result.label.code
this.checkItemCode(result.label.itemCode, callBack => {
if (callBack) {
- if (checkDirectoryItemExist(this.itemCodeTypeList, callBack)) {
- this.$refs.scanPopup.getScanResult(result)
+ var itemType = callBack.itemType
+ var itemStatus = callBack.itemStatus
+
+ if (checkDirectoryItemExist(this.itemTypeList, itemType)) {
+ if (checkDirectoryItemExist(this.itemStatusList, itemStatus)) {
+ this.$refs.scanPopup.getScanResult(result)
+ } else {
+ this.$refs.okToHoldRecordPackRef.itemCode = ''
+ var hint = getListItemStatusDesc(this.itemStatusList);
+ this.showErrorMessage("扫描物料[" + result.label.itemCode + "]是[" +
+ getItemStatusName(itemStatus) + "],需要的物料状态是[" + hint + "]")
+ }
+
} else {
this.$refs.okToHoldRecordPackRef.itemCode = ''
- var hint = getListItemTypeDesc(this.itemCodeTypeList);
+ var hint = getListItemTypeDesc(this.itemTypeList);
this.showErrorMessage("扫描物料[" + result.label.itemCode + "]是[" +
getItemTypeName(callBack) + "],需要的物料类型是[" + hint + "]")
}
@@ -554,8 +609,6 @@
}
})
-
- this.$refs.scanPopup.getScanResult(result)
}
},
// 清除来源库位