sf-apple-sdk
Version:
Apple SF SDK for SF WMS
43 lines (42 loc) • 1.66 kB
JavaScript
// src/services/cancel-sale-order.service.ts
import { SERVICE_CODE } from '../constants/service.js';
import { post } from '../utils/post.js';
/**
* 出库单取消接口 Service 3.6 ✅
* 该接口用于取消出库单,在仓库包装状态之前都允许取消
*/
export class CancelOutboundService {
constructor(options) {
this.options = options;
}
/**
* 取消出库单(可按 OMS 单号或 ErpOrder 二选一)
* @param req CancelSaleOrderRequest
* @throws 如果 CompanyCode 为空或 SaleOrders 为空,或每项既无 OutboundOrderId 又无 ErpOrder,则抛出 Error
*/
async cancelOutbound(data) {
// if (!req.CompanyCode || !req.SaleOrders?.length) {
// throw new Error("CompanyCode 和 SaleOrders 至少要有一项");
// }
for (const so of data.saleOrders) {
if (!so.OutboundOrderId && !so.ErpOrder) {
throw new Error('每条 SaleOrders 必须提供 OutboundOrderId 或 ErpOrder');
}
}
const res = await post({
url: this.options.baseURL,
checkword: this.options.checkword,
sysSource: this.options.sysSource,
serviceCode: SERVICE_CODE.CANCEL_SALE_ORDER_SERVICE,
specialStr: this.options.specialStr,
body: {
CompanyCode: this.options.sysSource,
AccessCode: this.options.accessCode,
Checkword: this.options.checkword,
ServiceCode: SERVICE_CODE.CANCEL_SALE_ORDER_SERVICE,
SaleOrders: data.saleOrders,
},
});
return res;
}
}