|
|
|
import {
|
|
|
|
getBusinesstypeByCode
|
|
|
|
} from '@/api/request2.js';
|
|
|
|
|
|
|
|
import {
|
|
|
|
getDirectoryItemArray,
|
|
|
|
} from '@/common/directory.js';
|
|
|
|
import {
|
|
|
|
calc
|
|
|
|
} from '@/common/calc'
|
|
|
|
import {
|
|
|
|
Decimal
|
|
|
|
} from 'decimal.js'; //引入
|
|
|
|
import {
|
|
|
|
deepCopyData
|
|
|
|
} from '@/common/basic.js';
|
|
|
|
|
|
|
|
export function createItemInfo(balance, pack) {
|
|
|
|
let item = {
|
|
|
|
itemCode: pack.itemCode,
|
|
|
|
itemName: pack.itemName,
|
|
|
|
packQty: pack.packQty,
|
|
|
|
packUnit: pack.packUnit,
|
|
|
|
qty: new Decimal(balance.qty).toNumber(),
|
|
|
|
handleQty: new Decimal(0).toNumber(),
|
|
|
|
uom: pack.uom,
|
|
|
|
subList: [],
|
|
|
|
// packingNumber: pack.number,
|
|
|
|
// parentPackingNumber: pack.parentNumber,
|
|
|
|
}
|
|
|
|
item.containerNumber = pack.parentNumber ? pack.parentNumber : pack.number;
|
|
|
|
return item;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function createDetailInfo(balance, pack) {
|
|
|
|
balance.scaned = true;
|
|
|
|
// data.toInventoryStatus = this.toInventoryStatus == "" ? data.inventoryStatus : this.toInventoryStatus;
|
|
|
|
// data.inventoryStatus = data.inventoryStatus;
|
|
|
|
let detail = deepCopyData(balance);
|
|
|
|
detail.balanceQty = new Decimal(detail.qty).toNumber()
|
|
|
|
detail.qty = new Decimal(detail.qty).toNumber();
|
|
|
|
detail.packQty = pack.packQty ? new Decimal(pack.packQty).toNumber() : 0
|
|
|
|
detail.packUnit = pack.packUnit
|
|
|
|
detail.handleQty = new Decimal(detail.qty).toNumber();
|
|
|
|
detail.package = pack;
|
|
|
|
detail.productionlineCode = pack.productionLineCode; // 制品回收记录需要加的
|
|
|
|
detail.toInventoryStatus = balance.inventoryStatus; // 制品回收记录需要加的
|
|
|
|
|
|
|
|
return detail;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export function createDetailByPackInfo(pack) {
|
|
|
|
|
|
|
|
// data.toInventoryStatus = this.toInventoryStatus == "" ? data.inventoryStatus : this.toInventoryStatus;
|
|
|
|
// data.inventoryStatus = data.inventoryStatus;
|
|
|
|
let detail = deepCopyData(pack); detail.scaned = true;
|
|
|
|
detail.balanceQty = new Decimal(detail.qty).toNumber()
|
|
|
|
detail.qty = new Decimal(detail.qty).toNumber();
|
|
|
|
detail.packQty = pack.packQty ? new Decimal(pack.packQty).toNumber() : 0
|
|
|
|
detail.packUnit = pack.packUnit
|
|
|
|
detail.handleQty = new Decimal(detail.qty).toNumber();
|
|
|
|
detail.package = pack;
|
|
|
|
return detail;
|
|
|
|
}
|
|
|
|
|
|
|
|
//计算实际数量
|
|
|
|
export function calcHandleQty(detailSource) {
|
|
|
|
for (let item of detailSource) {
|
|
|
|
item.handleQty = new Decimal(0).toNumber();
|
|
|
|
item.qty = new Decimal(0).toNumber();
|
|
|
|
for (let detail of item.subList) {
|
|
|
|
if (detail != undefined) {
|
|
|
|
if (detail.scaned) {
|
|
|
|
item.handleQty = calc.add(item.handleQty, detail.handleQty);
|
|
|
|
}
|
|
|
|
item.qty = calc.add(item.qty, detail.qty);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export function calcTreeHandleQty(detailSource) {
|
|
|
|
for (let item of detailSource) {
|
|
|
|
item.handleQty = new Decimal(0).toNumber();
|
|
|
|
|
|
|
|
for (let detail of item.subList) {
|
|
|
|
if (detail != undefined && detail.scaned) {
|
|
|
|
detail.handleQty = new Decimal(0).toNumber();
|
|
|
|
for (let pack of detail.packList) {
|
|
|
|
if (pack != undefined && pack.scaned) {
|
|
|
|
detail.handleQty = calc.add(detail.handleQty, pack.handleQty);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
item.handleQty = calc.add(item.handleQty, detail.handleQty);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getBusinessType(typeCode, callback) {
|
|
|
|
let result = {
|
|
|
|
success: true,
|
|
|
|
businessType: '',
|
|
|
|
fromLocationAreaTypeList: '',
|
|
|
|
toLocationAreaTypeList: '',
|
|
|
|
itemCodeTypeList: "",
|
|
|
|
useOnTheWay: "FALSE",
|
|
|
|
fromInventoryStatuses: '',
|
|
|
|
toInventoryStatuses: '',
|
|
|
|
message: ''
|
|
|
|
};
|
|
|
|
getBusinesstypeByCode(typeCode).then(res => {
|
|
|
|
if (res.data.total > 0) {
|
|
|
|
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.fromInventoryStatuses = res.data.list[0].outInventoryStatuses;
|
|
|
|
result.toInventoryStatuses = res.data.list[0].inInventoryStatuses;
|
|
|
|
result.useOnTheWay = res.data.list[0].useOnTheWay
|
|
|
|
callback(result)
|
|
|
|
} else {
|
|
|
|
result.success = false;
|
|
|
|
result.message = '业务类型[' + typeCode + ']获取失败';
|
|
|
|
callback(result)
|
|
|
|
}
|
|
|
|
}).catch(error => {
|
|
|
|
result.success = false;
|
|
|
|
result.message = error;
|
|
|
|
callback(result)
|
|
|
|
})
|
|
|
|
}
|