import { SdkResponse } from './base.js';
export interface PurchaseOrderData {
    purchaseOrders: PurchaseOrder[];
}
/** 序列号信息 */
export interface SerialInfo {
    /**
     * 序列号（预计到货的SN)
     */
    SerialNum: string;
    /** 子序列号 */
    SubSerialNum?: string;
    UserDef1?: string;
    UserDef2?: string;
    UserDef3?: string;
    UserDef4?: string;
    UserDef5?: string;
    UserDef6?: string;
    UserDef7?: string;
    UserDef8?: string;
}
/** 单个入库单明细项 */
export interface PurchaseOrderItem {
    /** 行号 */
    ErpOrderLineNum?: string;
    /** 商品编码 */
    SkuNo?: string;
    /** 应收数量 */
    Qty?: number;
    /** 数量单位 */
    QtyUm?: string;
    /** 批号 */
    Lot?: string;
    /** 备注 */
    Note?: string;
    /** 单价 */
    Price?: number | null;
    /**
     * 库存状态
     * 10：良品
     * 20：残次品
     */
    InventoryStatus: '10' | '20';
    /** 序列号信息列表 */
    SerialInfoList?: SerialInfo[];
    /** 批号属性 */
    LotAttr1?: string | null;
    LotAttr2?: string | null;
    LotAttr3?: string | null;
    /** 用于苹果逻辑仓，传 Apple厂 商 要 求ToLocationCode ， ND/T1在苹果报备的逻辑仓编码，hqid-XXX, 例 如 ： 15XXX- 1001； */
    LotAttr4: string;
    LotAttr5?: string | null;
    LotAttr6?: string | null;
    LotAttr7?: string | null;
    LotAttr8?: string | null;
    LotAttr9?: string | null;
    LotAttr10?: string;
    LotAttr11?: string | null;
    LotAttr12?: string | null;
    /** 扩展预留 */
    UserDef1?: string | null;
    /** Apple 厂商的 MPN 传输到该字段 */
    UserDef2: string;
    UserDef3?: string | null;
    UserDef4?: string | null;
    UserDef5?: string | null;
    UserDef6?: string | null;
    UserDef7?: string | null;
    UserDef8?: string | null;
    /** 货物权属 */
    CargoRight?: string | null;
    /** 抽样比例 */
    SamplingProportion?: string | null;
}
export interface ReceiverInfo {
    Receiver?: string;
    ReceiverName?: string;
    ReceiverPhone?: string;
    ReceiverCountry?: string;
    ReceiverProvince?: string;
    ReceiverCity?: string;
    ReceiverArea?: string;
    ReceiverAddress?: string;
    ReceiverAddressCode?: string;
}
export interface SenderInfo {
    /** 传 Apple 厂 商 要 求 的 fromLocationName */
    Sender: string;
    /** 传 Apple 厂 商 要 求 的fromLocationType; */
    SenderName: string;
    SenderPhone?: string;
    SenderCountry?: string;
    /** 用 于 Apple 厂商供数的 SennderProvince */
    SenderProvince?: string;
    /** 用 于 Apple 厂商供数的SennderCity */
    SenderCity?: string;
    /** 用 于 Apple 厂商供数的SennderArea */
    SenderArea?: string;
    /** 用 于 Apple 厂商供数的SennderAddress */
    SenderAddress?: string;
    SenderAddressCode?: string;
}
/**
 * 订单类型
 * 10：采购入库
 * 20：退货入库
 * 30：调拨入库
 * 40：赠品入库
 * 50：换货入库
 * 60：其它入库
 * 200：盘盈入库
 * 如果超出以上 6 种类型，请单独联系业务部门。
 */
export type SfInOrderType = '10' | '20' | '30' | '40' | '50' | '60' | '200';
/** 单个入库单对象 */
export interface PurchaseOrder {
    /** 仓库编码 */
    WarehouseCode: string;
    /** 订单号码 */
    ErpOrder: string;
    /** 客户订单类型，对应苹果的 TransactionCode */
    ErpOrderType: string;
    SFOrderType: SfInOrderType;
    /** 订单日期 (YYYY-MM-DD HH:mm:ss) */
    OrderDate?: string;
    /** 采购员 */
    Buyer?: string;
    /** 采购员联系方式 */
    BuyerPhone?: string;
    /** 预计发货时间 */
    DeliveryStart?: string;
    /** 预计收货时间 */
    ScheduledReceiptDate?: string;
    /** 供应商代码 */
    VendorCode?: string;
    /** 调出仓库编码 */
    TransferWarehouseCode?: string;
    /**
     * 2C 平台售后单号/原出库单号/DN 号
     */
    OriginalOrderNo: string;
    /** 采购订单备注 */
    Note?: string;
    /** 是否微单 (10 仓储, 20 微仓) */
    ReceiptMode?: string;
    /** 车辆号 */
    LicensePlateNumber?: string;
    /** 司机 */
    Driver?: string;
    /** 交易平台 */
    TradePlatform?: string;
    /** 平台交易号 */
    TradeOrder?: string;
    /** 司机电话 */
    DriverCalls?: string;
    /** 预留字段 */
    UserDef1?: string;
    /** 传 Apple 厂商要求 T2 客户的 HQID */
    UserDef2?: string;
    /** 可用于客户的逻辑仓 */
    UserDef3?: string;
    /** 传 Apple 厂 商 要 求 的fromLocationCode，例如采购入库传 'Factory' */
    UserDef4: string;
    /**
     * 调拨出入库的原参考 erp 单号，用于 Apple 供数
     */
    UserDef5?: string;
    /**
     * 用来传退货入库单的运单号
     */
    UserDef6?: string;
    /** 用于 2C 退货入库单来源渠道，TM、DY 等 */
    UserDef7?: string;
    /** 2C 退货入库情景：苹果店铺 ID 拼苹果店铺名称；例如：60012|测试店铺 */
    UserDef8?: string;
    UserDef9?: string;
    /** 传 Apple 厂 商 要 求ToLocationName，ND/T1 在苹果报备的仓库名，例如：XXX 良品仓 */
    UserDef10: string;
    /** 未知字段 */
    /** 系统来源 */
    SysSource?: string;
    /** 未知字段 */
    /** 未知字段 */
    /** 收货人信息 */
    ReceiverInfo?: ReceiverInfo;
    /** 发货人信息 */
    SenderInfo: SenderInfo;
    /** 入库明细列表 */
    Items: PurchaseOrderItem[];
}
/** 入库单接口请求 */
export interface PurchaseOrderRequest {
    /** 货主编码 */
    CompanyCode: string;
    /** 访问码 */
    AccessCode: string;
    /** 校验码 */
    Checkword: string;
    /** 服务码 */
    ServiceCode: string;
    /** 入库单列表 */
    PurchaseOrders: PurchaseOrder[];
}
/** 单个入库单响应 */
export interface PurchaseOrderResponseItem {
    ErpOrder: string;
    /** 入库单号 */
    ReceiptId?: string;
    /** 处理结果：1-成功,2-失败 */
    Result: '1' | '2';
    /** 失败备注 */
    Note?: string;
}
/** 入库单接口响应 Body */
export interface PurchaseOrderResponseBody {
    PurchaseOrders: PurchaseOrderResponseItem[];
}
/** 入库单接口响应 */
export type PurchaseOrderResponse = SdkResponse & PurchaseOrderResponseBody;
