import { FinInvoiceDetailVO } from '../finInvoiceDetail/types';

export interface FinInvoiceInfoVO {
  /**
   * 开票ID
   */
  invoiceId: string | number;

  /**
   * 开票申请编号
   */
  invoiceCode: string;

  /**
   * 提前开票标识(1是，0否)
   */
  earlyFlag: string;

  /**
   * 发票类型（1增值税专用发票 2普通发票）
   */
  invoiceType: string;

  /**
   * 本次开具金额(自动计算)
   */
  issueAmount: number;

  /**
   * 本次开具比例（自动计算）
   */
  issuancePercentage: number;

  /**
   * 冲红标识（1是，0否）
   */
  redInkFlag: string;

  /**
   * 项目ID
   */
  projectId: string | number;

  /**
   * 冗余，项目号
   */
  projectCode: string;

  /**
   * 冗余，项目名称
   */
  projectName: string;

  /**
   * 冗余，验收日期，冗余（从erp_project_acceptance获取字段acceptance_date）
   */
  acceptanceDate: string;

  /**
   * 发货日期，发货单中是分批发记录的
   */
  deliveryDate: string;

  /**
   * 冗余，收货日期，冗余（从erp_project_receiving表中获取arrival_date）
   */
  arrivalDate: string;

  /**
   * 版本，新版本+1
   */
  invoiceVersion: number;

  /**
   * 项目类型(1、实施类，2备件类)
   */
  invoiceCategory: string;

  /**
   * 合同ID
   */
  contractId: string | number;

  /**
   * 冗余，合同总价
   */
  totalPrice: number;

  /**
   * 冗余，客户ID
   */
  customerId: string | number;

  /**
   * 冗余，客户名称
   */
  customerName: string;

  /**
   * 冗余，合同付款条款
   */
  paymentMethod: string;

  /**
   * 累计回款金额
   */
  returnedMoney: number;

  /**
   * 累计回款比例
   */
  returnedRate: number;

  /**
   * 是否全部投料（1是 0否）
   */
  feedingFlag: string;

  /**
   * 成本是否归集完整（1是 0否）
   */
  costCompleteFlag: string;

  /**
   * 是否建立销售订单（1是 0否）
   */
  saleOrderCreateFlag: string;

  /**
   * 流程状态
   */
  flowStatus: string;

  /**
   * 开票状态(1暂存 2审批中 3可用)
   */
  invoiceStatus: string;

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

  /**
   * 发票附件ID，多个以,隔开
   */
  ossId?: string;

  /**
   * 提前开票原因
   */
  earlyReason: string;

  /**
   * 发起人ID
   */
  requestBy: number;

  /**
   * 发起部门ID
   */
  requestDept: number;

  /**
   * 发起人名称,关联nickname
   */
  requestByName: string;

  /**
   * 发起部门名称
   */
  requestDeptName: string;

  /**
   * 发起日期
   */
  issueDate?: string;

  /**
   * 合同编号
   */
  contractCode?: string;

  /**
   * 有无合同（1有 2无）
   */
  contractFlag?: string;

  /**
   * 开票明细列表
   */
  erpFinInvoiceDetailVoList?: Array<FinInvoiceDetailVO>;
}

export interface FinInvoiceInfoForm extends BaseEntity {
  /**
   * 开票ID
   */
  invoiceId?: string | number;

  /**
   * 开票申请编号
   */
  invoiceCode?: string;

  /**
   * 提前开票标识(1是，0否)
   */
  earlyFlag?: string;

  /**
   * 发票类型（1增值税专用发票 2普通发票）
   */
  invoiceType?: string;

  /**
   * 本次开具金额(自动计算)
   */
  issueAmount?: number;

  /**
   * 本次开具比例（自动计算）
   */
  issuancePercentage?: number;

  /**
   * 冲红标识（1是，0否）
   */
  redInkFlag?: string;

  /**
   * 项目ID
   */
  projectId?: string | number;

  /**
   * 冗余，项目号
   */
  projectCode?: string;

  /**
   * 冗余，项目名称
   */
  projectName?: string;

  /**
   * 冗余，验收日期，冗余（从erp_project_acceptance获取字段acceptance_date）
   */
  acceptanceDate?: string;

  /**
   * 发货日期，发货单中是分批发记录的
   */
  deliveryDate?: string;

  /**
   * 冗余，收货日期，冗余（从erp_project_receiving表中获取arrival_date）
   */
  arrivalDate?: string;

  /**
   * 版本，新版本+1
   */
  invoiceVersion?: number;

  /**
   * 项目类型(1、实施类，2备件类)
   */
  invoiceCategory?: string;

  /**
   * 合同ID
   */
  contractId?: string | number;

  /**
   * 冗余，合同总价
   */
  totalPrice?: number;

  /**
   * 冗余，客户ID
   */
  customerId?: string | number;

  /**
   * 冗余，客户名称
   */
  customerName?: string;

  /**
   * 冗余，合同付款条款
   */
  paymentMethod?: string;

  /**
   * 累计回款金额
   */
  returnedMoney?: number;

  /**
   * 累计回款比例
   */
  returnedRate?: number;

  /**
   * 是否全部投料（1是 0否）
   */
  feedingFlag?: string;

  /**
   * 成本是否归集完整（1是 0否）
   */
  costCompleteFlag?: string;

  /**
   * 是否建立销售订单（1是 0否）
   */
  saleOrderCreateFlag?: string;

  /**
   * 流程状态
   */
  flowStatus?: string;

  /**
   * 开票状态(1暂存 2审批中 3可用)
   */
  invoiceStatus?: string;

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

  /**
   * 发票附件ID，多个以,隔开
   */
  ossId?: string;

  /**
   * 提前开票原因
   */
  earlyReason?: string;

  /**
   * 发起人ID
   */
  requestBy?: number;

  /**
   * 发起部门ID
   */
  requestDept?: number;

  /**
   * 发起人名称,关联nickname
   */
  requestByName?: string;

  /**
   * 发起部门名称
   */
  requestDeptName?: string;

  /**
   * 发起日期
   */
  issueDate?: string;

  /**
   * 合同编号
   */
  contractCode?: string;

  /**
   * 有无合同（1有 2无）
   */
  contractFlag?: string;

  /**
   * 项目经理ID
   */
  managerId?: string | number;

  /**
   * 开票明细列表
   */
  erpFinInvoiceDetailList?: Array<FinInvoiceDetailVO>;

  /**
   * 待删除开票明细ID列表
   */
  toDeletedInvoiceDetailIdList?: Array<number>;
}

export interface FinInvoiceInfoQuery extends PageQuery {
  /**
   * 开票申请编号
   */
  invoiceCode?: string;

  /**
   * 提前开票标识(1是，0否)
   */
  earlyFlag?: string;

  /**
   * 发票类型（1增值税专用发票 2普通发票）
   */
  invoiceType?: string;

  /**
   * 本次开具金额(自动计算)
   */
  issueAmount?: number;

  /**
   * 本次开具比例（自动计算）
   */
  issuancePercentage?: number;

  /**
   * 冲红标识（1是，0否）
   */
  redInkFlag?: string;

  /**
   * 项目ID
   */
  projectId?: string | number;

  /**
   * 冗余，项目号
   */
  projectCode?: string;

  /**
   * 冗余，项目名称
   */
  projectName?: string;

  /**
   * 冗余，验收日期，冗余（从erp_project_acceptance获取字段acceptance_date）
   */
  acceptanceDate?: string;

  /**
   * 发货日期，发货单中是分批发记录的
   */
  deliveryDate?: string;

  /**
   * 冗余，收货日期，冗余（从erp_project_receiving表中获取arrival_date）
   */
  arrivalDate?: string;

  /**
   * 版本，新版本+1
   */
  invoiceVersion?: number;

  /**
   * 项目类型(1、实施类，2备件类)
   */
  invoiceCategory?: string;

  /**
   * 合同ID
   */
  contractId?: string | number;

  /**
   * 冗余，合同总价
   */
  totalPrice?: number;

  /**
   * 冗余，客户ID
   */
  customerId?: string | number;

  /**
   * 冗余，客户名称
   */
  customerName?: string;

  /**
   * 冗余，合同付款条款
   */
  paymentMethod?: string;

  /**
   * 累计回款金额
   */
  returnedMoney?: number;

  /**
   * 累计回款比例
   */
  returnedRate?: number;

  /**
   * 是否全部投料（1是 0否）
   */
  feedingFlag?: string;

  /**
   * 成本是否归集完整（1是 0否）
   */
  costCompleteFlag?: string;

  /**
   * 是否建立销售订单（1是 0否）
   */
  saleOrderCreateFlag?: string;

  /**
   * 流程状态
   */
  flowStatus?: string;

  /**
   * 开票状态(1暂存 2审批中 3可用)
   */
  invoiceStatus?: string;

  /**
   * 提前开票原因
   */
  earlyReason?: string;

  /**
   * 发起人ID
   */
  requestBy?: number;

  /**
   * 发起部门ID
   */
  requestDept?: number;

  /**
   * 发起人名称,关联nickname
   */
  requestByName?: string;

  /**
   * 发起部门名称
   */
  requestDeptName?: string;

  /**
   * 发起日期
   */
  issueDate?: string;

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