分享:添加采购入库单及关联采购订单 - nodejs
金蝶云社区-152XXXX6276
152XXXX6276
1人赞赏了该文章 1,994次浏览 未经作者许可,禁止转载编辑于2018年09月20日 17:03:05

// 新增采购入库单 - 测试
inStock() {

// let orderNo = 'CGDD000107'

let model = {
'FBillTypeID': { // 单据类型,必录
'FNumber': 'RKD01_SYS', // 标准采购入库
},
// 'FPOrderNo': orderNo, // 订单单号
'FDate': this.moment().format('YYYY-MM-DD'), // 入库日期,必录
'FStockOrgId': { // 收料组织,必录
'FNumber': '1302',
},
'FPurchaseOrgId': { // 采购组织,必录
'FNumber': '1302',
},
'FPurchaseDeptId': { // 采购部门,必录
'FNumber': 'BM000031',
},
'FSupplierId': { // 供应商,必录
'FNumber': '0001',
},
'FOwnerTypeIdHead': 'BD_OwnerOrg', // 货主类型,必录
'FOwnerIdHead': { // 货主,必录
'FNumber': '1302'
},
}

// 物料
let entry = [
{
'FMaterialId': { // 物料编码,必录
// 'FNumber': 'D.11.1.004',
'FNumber': '9999',
},
'FUnitID': { // 库存单位,必录
'FNumber': 'Pcs',
},
'FPriceUnitID': { // 计价单位,必录
'FNumber': 'Pcs',
},
'FRemainInStockUnitId': { // 采购单位,必录
'FNumber': 'Pcs',
},
'FStockId': { // 仓库
'FNumber': '001',
},
'FRealQty':12, // 实收数量
// 物料关联采购订单
'FInstockEntry_Link': [
{
// 'FInstockEntry_Link_FFlowId': '', // 业务流程
// 'FInstockEntry_Link_FFlowLineId': '', //
'FInstockEntry_Link_FRuleId': 'PUR_PurchaseOrder-STK_InStock', // 单据转换
'FInstockEntry_Link_FSTableName': 't_PUR_POOrderEntry', // 上游单据表体表
'FInstockEntry_Link_FSBillId': '100113', // 上游单据ID
'FInstockEntry_Link_FSId': '101622', // 上游单据的分录内码
'FInstockEntry_Link_FBaseUnitQty': 12, // 下游单据的反写实收数量
'FInstockEntry_Link_FBaseUnitQtyOld': 40, // 下游单据的反写应收数量
'FInstockEntry_Link_FRemainInstockBaseQtyOld': 40, // 下游单据的反写应收数量
}
],
}
]

const params = [
'STK_InStock',
{
"Model": { // 表单实体数据,必录
...model,
"FInStockEntry": entry,
}
}
]

// console.log(this._get_json_params(params))
// this.http -> axios
// this._apis.save -> 'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc' // 表单数据保存接口
return this.http.post(this._apis.save, this._get_json_params(params))
.then(response => {
// console.log(response.data)
console.log(JSON.stringify(response.data))
})
.catch(error => {
console.log(error)
})
}

// 附上_get_json_params方法
_get_json_params(params) {
return JSON.stringify({
format: 1,
useragent: 'ApiClient',
v: '1.0',
timestamp: this.moment().format('YYYY-MM-DD'), // 依赖moment,npm i -S moment
rid: this._create_uid(),
parameters: params
})
}

_create_uid() {
let rand = Math.floor( Math.random() * 10000000000 ).toString()
rand += this.moment().millisecond().toString() // 依赖moment
rand = this.md5(rand).toUpperCase() // 依赖md5

const fragments = [ [0, 8], [8, 4], [12, 4], [16, 4], [20, 12] ]

let uid = '{'
fragments.forEach((item, key) => {
uid += rand.substr(item[0], item[1]) + (key === fragments.length - 1 ? '' : '-')
})
uid += '}'

return uid
}