import { ShipForwardVO } from '@/api/amz/shipForward/types';
import { PurchaseOrderItemVO } from '@/api/amz/purchaseOrderItem/types';
import { StatusHistoryVO } from '@/api/amz/statusHistory/types';

export interface PurchaseOrderVO {
  id: string | number;
  /**
   * 采购单号
   */
  orderSn: string;

  /**
   * 自定义单号
   */
  customOrderSn: string;

  /**
   * 供应商ID
   */
  supplierId: string | number;

  /**
   * 供应商名称
   */
  supplierName: string;

  /**
   * 采购店铺名称
   */
  storeName: string;

  /**
   * 采购员ID
   */
  optUid: string | number;

  /**
   * 审核人姓名
   */
  auditorRealname: string;

  /**
   * 操作人姓名
   */
  optRealname: string;

  /**
   * 最后操作人姓名
   */
  lastRealname: string;

  /**
   * 下单时间
   */
  orderTime: string;

  /**
   * 应付货款（手工）
   */
  payment: string;

  /**
   * 审核人员ID
   */
  auditorUid: string | number;

  /**
   * 审核时间
   */
  auditorTime: string;

  /**
   * 最后操作人员ID
   */
  lastUid: string | number;

  /**
   * 最后操作时间
   */
  lastTime: string;

  /**
   * 作废原因
   */
  reason: string;

  /**
   * 是否含税：0 否，1 是
   */
  isTax: number;

  /**
   * 采购单状态：-1 作废, 3 待提交, 1 待下单, 2 待签收, 9 完成, 121 待审核, 122 驳回, 124 作废
   */
  status: number;

  /**
   * 状态说明
   */
  statusText: string;

  /**
   * 支付状态说明
   */
  payStatusText: string;

  /**
   * 到货状态：1 未到货, 2 部分到货, 3 全部到货
   */
  statusShipped: number;

  /**
   * 到货状态说明
   */
  statusShippedText: string;

  /**
   * 货物总价
   */
  amountTotal: number;

  /**
   * 总金额
   */
  totalPrice: number;

  /**
   * 币种符号
   */
  icon: string;

  /**
   * 付款状态：0 未申请, 1 已申请, 2 部分付款, 3 已付款
   */
  payStatus: number;

  /**
   * 备注
   */
  remark: string;

  /**
   * 其他费用
   */
  otherFee: number;

  /**
   * 其他费用币种
   */
  otherCurrency: string;

  /**
   * 费用分摊方式：0 不分摊, 1 按金额, 2 按数量
   */
  feePartType: number;

  /**
   * 运费
   */
  shippingPrice: number;

  /**
   * 运费币种
   */
  shippingCurrency: string;

  /**
   * 采购币种
   */
  purchaseCurrency: string;

  /**
   * 采购汇率
   */
  purchaseRate: number;

  /**
   * 采购总量
   */
  quantityTotal: number;

  /**
   * 仓库ID
   */
  wid: string | number;

  /**
   * 仓库名称
   */
  wareHouseName: string;

  /**
   * 仓库名(备份)
   */
  wareHouseBakName: string;

  /**
   * 入库量
   */
  quantityEntry: number;

  /**
   * 实际采购量
   */
  quantityReal: number;

  /**
   * 待到货量
   */
  quantityReceive: number;

  /**
   * 采购方ID
   */
  purchaserId: string | number;

  /**
   * 联系人
   */
  contactPerson: string;

  /**
   * 联系方式
   */
  contactNumber: string;

  /**
   * 结算方式：7 现结, 8 月结
   */
  settlementMethod: number;

  /**
   * 结算描述
   */
  settlementDescription: string;

  /**
   * 支付方式
   */
  paymentMethod: number;

  /**
   * 交货天数
   */
  estDlvDays: number;

  /**
   * 订单状态
   */
  orderStatus: string;

  /**
   * 交货时间
   */
  deliveryTime: string;

  /**
   * 订单交付变动天数
   */
  dlvTimeVar: number;

  remainingQuantity: number;

  forwardList?: ShipForwardVO[];

  items?: PurchaseOrderItemVO[];
  sysStatusHistories?: StatusHistoryVO[];
  hasForward?: number | string;

  hasSendOrder?: number | string;
}

export interface PurchaseOrderForm extends BaseEntity {
  /**
   * 采购单号
   */
  orderSn?: string;

  /**
   * 自定义单号
   */
  customOrderSn?: string;

  /**
   * 供应商ID
   */
  supplierId?: string | number;

  /**
   * 供应商名称
   */
  supplierName?: string;

  /**
   * 采购员ID
   */
  optUid?: string | number;

  /**
   * 审核人姓名
   */
  auditorRealname?: string;

  /**
   * 操作人姓名
   */
  optRealname?: string;

  /**
   * 最后操作人姓名
   */
  lastRealname?: string;

  /**
   * 下单时间
   */
  orderTime?: string;

  /**
   * 应付货款（手工）
   */
  payment?: string;

  /**
   * 审核人员ID
   */
  auditorUid?: string | number;

  /**
   * 审核时间
   */
  auditorTime?: string;

  /**
   * 最后操作人员ID
   */
  lastUid?: string | number;

  /**
   * 最后操作时间
   */
  lastTime?: string;

  /**
   * 作废原因
   */
  reason?: string;

  /**
   * 是否含税：0 否，1 是
   */
  isTax?: number;

  /**
   * 采购单状态：-1 作废, 3 待提交, 1 待下单, 2 待签收, 9 完成, 121 待审核, 122 驳回, 124 作废
   */
  status?: number;

  /**
   * 状态说明
   */
  statusText?: string;

  /**
   * 支付状态说明
   */
  payStatusText?: string;

  /**
   * 到货状态：1 未到货, 2 部分到货, 3 全部到货
   */
  statusShipped?: number;

  /**
   * 到货状态说明
   */
  statusShippedText?: string;

  /**
   * 货物总价
   */
  amountTotal?: number;

  /**
   * 总金额
   */
  totalPrice?: number;

  /**
   * 币种符号
   */
  icon?: string;

  /**
   * 付款状态：0 未申请, 1 已申请, 2 部分付款, 3 已付款
   */
  payStatus?: number;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 其他费用
   */
  otherFee?: number;

  /**
   * 其他费用币种
   */
  otherCurrency?: string;

  /**
   * 费用分摊方式：0 不分摊, 1 按金额, 2 按数量
   */
  feePartType?: number;

  /**
   * 运费
   */
  shippingPrice?: number;

  /**
   * 运费币种
   */
  shippingCurrency?: string;

  /**
   * 采购币种
   */
  purchaseCurrency?: string;

  /**
   * 采购汇率
   */
  purchaseRate?: number;

  /**
   * 采购总量
   */
  quantityTotal?: number;

  /**
   * 仓库ID
   */
  wid?: string | number;

  /**
   * 仓库名称
   */
  wareHouseName?: string;

  /**
   * 仓库名(备份)
   */
  wareHouseBakName?: string;

  /**
   * 入库量
   */
  quantityEntry?: number;

  /**
   * 实际采购量
   */
  quantityReal?: number;

  /**
   * 待到货量
   */
  quantityReceive?: number;

  /**
   * 采购方ID
   */
  purchaserId?: string | number;

  /**
   * 联系人
   */
  contactPerson?: string;

  /**
   * 联系方式
   */
  contactNumber?: string;

  /**
   * 结算方式：7 现结, 8 月结
   */
  settlementMethod?: number;

  /**
   * 结算描述
   */
  settlementDescription?: string;

  /**
   * 支付方式
   */
  paymentMethod?: number;

  /**
   * 交货天数
   */
  estDlvDays?: number;

  /**
   * 订单状态
   */
  orderStatus?: string;

  /**
   * 交货时间
   */
  deliveryTime?: string;

  /**
   * 延期日期
   */
  divTime?: string;

  type?: string;

  /**
   * 订单交付变动天数
   */
  dlvTimeVar?: number;

  storeName?: string;
}

export interface PurchaseOrderQuery extends PageQuery {
  /**
   * 采购单号
   */
  orderSn?: string;

  /**
   * 自定义单号
   */
  customOrderSn?: string;

  /**
   * 供应商ID
   */
  supplierId?: string | number;

  /**
   * 供应商名称
   */
  supplierName?: string;

  /**
   * 采购员ID
   */
  optUid?: string | number;

  /**
   * 审核人姓名
   */
  auditorRealname?: string;

  /**
   * 操作人姓名
   */
  optRealname?: string;

  /**
   * 最后操作人姓名
   */
  lastRealname?: string;

  /**
   * 下单时间
   */
  orderTime?: string;

  /**
   * 应付货款（手工）
   */
  payment?: string;

  /**
   * 审核人员ID
   */
  auditorUid?: string | number;

  /**
   * 审核时间
   */
  auditorTime?: string;

  /**
   * 最后操作人员ID
   */
  lastUid?: string | number;

  /**
   * 最后操作时间
   */
  lastTime?: string;

  /**
   * 作废原因
   */
  reason?: string;

  /**
   * 是否含税：0 否，1 是
   */
  isTax?: number;

  /**
   * 采购单状态：-1 作废, 3 待提交, 1 待下单, 2 待签收, 9 完成, 121 待审核, 122 驳回, 124 作废
   */
  status?: number;

  /**
   * 状态说明
   */
  statusText?: string;

  /**
   * 支付状态说明
   */
  payStatusText?: string;

  /**
   * 到货状态：1 未到货, 2 部分到货, 3 全部到货
   */
  statusShipped?: number;

  /**
   * 到货状态说明
   */
  statusShippedText?: string;

  /**
   * 货物总价
   */
  amountTotal?: number;

  /**
   * 总金额
   */
  totalPrice?: number;

  /**
   * 币种符号
   */
  icon?: string;

  /**
   * 付款状态：0 未申请, 1 已申请, 2 部分付款, 3 已付款
   */
  payStatus?: number;

  /**
   * 其他费用
   */
  otherFee?: number;

  /**
   * 其他费用币种
   */
  otherCurrency?: string;

  /**
   * 费用分摊方式：0 不分摊, 1 按金额, 2 按数量
   */
  feePartType?: number;

  /**
   * 运费
   */
  shippingPrice?: number;

  /**
   * 运费币种
   */
  shippingCurrency?: string;

  /**
   * 采购币种
   */
  purchaseCurrency?: string;

  /**
   * 采购汇率
   */
  purchaseRate?: number;

  /**
   * 采购总量
   */
  quantityTotal?: number;

  /**
   * 仓库ID
   */
  wid?: string | number;

  /**
   * 仓库名称
   */
  wareHouseName?: string;

  /**
   * 仓库名(备份)
   */
  wareHouseBakName?: string;

  /**
   * 入库量
   */
  quantityEntry?: number;

  /**
   * 实际采购量
   */
  quantityReal?: number;

  /**
   * 待到货量
   */
  quantityReceive?: number;

  /**
   * 采购方ID
   */
  purchaserId?: string | number;

  /**
   * 联系人
   */
  contactPerson?: string;

  /**
   * 联系方式
   */
  contactNumber?: string;

  /**
   * 结算方式：7 现结, 8 月结
   */
  settlementMethod?: number;

  /**
   * 结算描述
   */
  settlementDescription?: string;

  /**
   * 支付方式
   */
  paymentMethod?: number;

  /**
   * 交货天数
   */
  estDlvDays?: number;

  /**
   * 订单状态
   */
  orderStatus?: string | string[];

  /**
   * 交货时间
   */
  deliveryTime?: string;

  /**
   * 订单交付变动天数
   */
  dlvTimeVar?: number;

  storeName?: string;
  sku?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}
