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: [] } 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 = new Decimal(pack.packQty).toNumber() 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 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) }) }