You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
4.0 KiB

1 year ago
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';
1 year ago
export function createItemInfo(balance, pack) {
let item = {
itemCode: pack.itemCode,
itemName: pack.itemName,
11 months ago
packQty: pack.packQty,
packUnit: pack.packUnit,
qty: new Decimal(balance.qty).toNumber(),
handleQty: new Decimal(0).toNumber(),
1 year ago
uom: pack.uom,
subList: [],
// packingNumber: pack.number,
// parentPackingNumber: pack.parentNumber,
1 year ago
}
item.containerNumber = pack.parentNumber ? pack.parentNumber : pack.number;
1 year ago
return item;
}
export function createDetailInfo(balance, pack) {
balance.scaned = true;
1 year ago
// 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
11 months ago
detail.packUnit = pack.packUnit
detail.handleQty = new Decimal(detail.qty).toNumber();
1 year ago
detail.package = pack;
detail.productionlineCode = pack.productionLineCode; // 制品回收记录需要加的
detail.toInventoryStatus = balance.inventoryStatus; // 制品回收记录需要加的
1 year ago
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;
1 year ago
}
//计算实际数量
export function calcHandleQty(detailSource) {
for (let item of detailSource) {
item.handleQty = new Decimal(0).toNumber();
item.qty = new Decimal(0).toNumber();
1 year ago
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);
1 year ago
}
}
}
}
11 months ago
export function calcTreeHandleQty(detailSource) {
for (let item of detailSource) {
item.handleQty = new Decimal(0).toNumber();
11 months ago
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);
11 months ago
}
}
item.handleQty = calc.add(item.handleQty, detail.handleQty);
}
}
}
}
1 year ago
export function getBusinessType(typeCode, callback) {
let result = {
success: true,
businessType: '',
fromLocationAreaTypeList: '',
toLocationAreaTypeList: '',
itemCodeTypeList: "",
useOnTheWay: "FALSE",
fromInventoryStatuses: '',
toInventoryStatuses: '',
1 year ago
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
1 year ago
callback(result)
} else {
result.success = false;
result.message = '业务类型[' + typeCode + ']获取失败';
callback(result)
}
}).catch(error => {
result.success = false;
result.message = error;
callback(result)
})
}