package com.fs.nuonuo.vo;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Data
public class InvoiceResultVo {
    /* 发票请求流水号 */
    private String serialNo;
    /* 订单编号 */
    private String orderNo;
    /* 发票状态： 2 :开票完成（ 最终状 态），其他状态分别为: 20:开票中; 21:开票成功签章中;22:开票失败;24: 开票成功签章失败;3:发票已作废 31: 发票作废中 备注：22、24状态时，无需再查询，请确认开票失败原因以及签章失败原因； 注：请以该状态码区分发票状态 */
    private String status;
    /* 发票状态描述 */
    private String statusMsg;
    /* 失败原因 */
    private String failCause;
    /* 发票pdf地址（若同时返回了ofdUrl与pdfUrl，则pdf文件不能做为原始凭证，请用ofd文件做为原始凭证） */
    private String pdfUrl;
    /* 发票图片地址 */
    private String pictureUrl;
    /* 开票时间 */
    private LocalDateTime invoiceTime;
    /* 发票代码（数电电票时为空，数电纸票时有值） */
    private String invoiceCode;
    /* 发票号码（数电电票时返回原来的20位数电票号码，数电纸票时为8位的纸票号码） */
    private String invoiceNo;
    /* allElectronicInvoiceNumber 数电票号码（数电电票、数电纸票时均返回20位数电票号码） */
    private String allElectronicInvoiceNumbe;
    /* 不含税金额 */
    private String exTaxAmount;
    /* 合计税额 */
    private String taxAmount;
    /* 价税合计 */
    private String orderAmount;
    /* 购方名称（付款方名称） */
    private String payerName;
    /* 购方税号（付款方税号） */
    private String payerTaxNo;
    /* 购方地址 */
    private String address;
    /* 购方电话 */
    private String telephone;
    /* 购方开户行及账号 */
    private String bankAccount;
    /* 发票种类，包含：增值税电子普通发票、增值税普通发票、专用发票(电子)、增值税专用发票、收购发票(电子)、收购发票(纸质)、增值税普通发票(卷式)、机动车销售统一发票、二手车销售统一发票、电子发票(增值税专用发票)、电子发票(普通发票)、全电纸质发票(增值税专用发票)、全电纸质发票(普通发票)； 备注：电子发票(增值税专用发票)即数电专票(电子)，电子发票(普通发票)即 数电普票(电子) */
    private String invoiceKind;
    /* 校验码（数电票时为空） */
    private String checkCode;
    /* 二维码 */
    private String qrCode;
    /* 税控设备号（机器编码）；数电票时为空 */
    private String machineCode;
    /* 发票密文（数电票时为空） */
    private String cipherText;
    /* 含底图纸票pdf地址 */
    private String paperPdfUrl;
    /* 发票ofd地址（公共服务平台签章及数电电票时返回） */
    private String ofdUrl;
    /* 发票xml地址（数电电票且企业配置成支持获取xml时返回） */
    private String xmlUrl;
    /* 开票员 */
    private String clerk;
    /* 收款人 */
    private String payee;
    /* 复核人 */
    private String checker;
    /* 销方银行账号 */
    private String salerAccount;
    /* 销方电话 */
    private String salerTel;
    /* 销方地址 */
    private String salerAddress;
    /* 销方税号 */
    private String salerTaxNum;
    /* 销方名称 */
    private String saleName;
    /* 备注 */
    private String remark;
    /* 成品油标志：0非成品油，1成品油 */
    private String productOilFlag;
    /* 图片地址（多个图片以逗号隔开） */
    private String imgUrls;
    /* 分机号 */
    private String extensionNumber;
    /* 终端号 */
    private String terminalNumber;
    /* 部门门店id（诺诺系统中的id） */
    private String deptId;
    /* 开票员id（诺诺系统中的id） */
    private String clerkId;
    /* 对应蓝票发票代码，红票时有值（蓝票为数电电票时为空，数电纸票时有值） */
    private String oldInvoiceCode;
    /* 对应蓝票发票号码，红票时有值（蓝票为数电电票时返回原来的20位数电票号码，数电纸票时为8位的纸票号码） */
    private String oldInvoiceNo;
    /* 对应蓝票数电票号码，红票时有值（蓝票为数电票（电子+纸质）时 20位） */
    private String oldEleInvoiceNumber;
    /* 清单标志:0,非清单;1,清单票 */
    private String listFlag;
    /* 清单项目名称:打印清单时对应发票票面项目名称，注意：税总要求清单项目名称为（详见销货清单） */
    private String listName;
    /* 购方手机(开票成功会短信提醒购方) */
    private String phone;
    /* 购方邮箱推送邮箱(开票成功会邮件提醒购方) */
    private String notifyEmail;
    /* 是否机动车类专票 0-否 1-是 */
    private String vehicleFlag;
    /* 数据创建时间（回传其他信息时返回） */
    private String createTime;
    /* 数据更新时间（回传其他信息时返回） */
    private String updateTime;
    /* 发票状态更新时间（回传其他信息时返回；涉及状态：开票中、开票失败、开票成功签章中、开票成功签章失败、开票完成、发票作废中、发票已作废） */
    private String stateUpdateTime;
    /* 代开标志 0-非代开 1-代开（回传其他信息时返回） */
    private String proxyInvoiceFlag;
    /* 用于开票的订单的时间（回传其他信息时返回） */
    private String invoiceDate;
    /* 开票类型 1-蓝票 2-红票（回传其他信息时返回） */
    private String invoiceType;
    /* 冲红原因 1:销货退回;2:开票有误;3:服务中止;4:发生销售折让（红票且票种为p、c、e、f、r（成品油发票除外）且回传其他信息时返回） */
    private String redReason;
    /* 作废时间（已作废状态下的发票，且回传其他信息时返回） */
    private String invalidTime;
    /* 作废来源 1-诺诺工作台 2-API接口 3-开票软件 4-验签失败作废 5-其他（已作废状态下的发票，且回传其他信息时返回） */
    private String invalidSource;
    /* 数电纸票作废原因 1:销货退回;2:开票有误;3:服务中止;4:其他（已作废状态下的发票，且票为数电纸票且回传其他信息时返回） */
    private String invalidReason;
    /* 其他作废原因详情（作废原因为4 且回传其他信息时返回） */
    private String specificReason;
    /* 发票特定要素：（后续枚举值会有扩展，回传其他信息时返回）0-普通 1-成品油发票 2-稀土 3-建筑服务 4-货物运输服务 6-不动产经营租赁服务 9-旅客运输服务 16-农产品收购 31-建安发票 32-房地产销售发票 33-二手车发票反向开具 34-电子烟 35-矿产品 */
    private String specificFactor;
    /* 数电发票差额征税开具方式：01 全额开票，02 差额开票 */
    private String invoiceDifferenceType;
    /* 邮箱交付状态（0-未交付，1-交付成功，2-交付失败，3-交付中，4-不会交付；注：回传其他信息时返回） */
    private String emailNotifyStatus;
    /* 手机交付状态（0-未交付，1-交付成功，2-交付失败，3-交付中，4-不会交付；注：回传其他信息时返回） */
    private String phoneNotifyStatus;
    /* 购买方经办人姓名（数电票特有字段） */
    private String buyerManagerName;
    /* 经办人证件类型：101-组织机构代码证, 102-营业执照, 103-税务登记证, 199-其他单位证件, 201-居民身份证, 202-军官证, 203-武警警官证, 204-士兵证, 205-军队离退休干部证, 206-残疾人证,207-残疾军人证（1-8级）, 208-外国护照, 210-港澳居民来往内地通行证, 212-中华人民共和国往来港澳通行证, 213-台湾居民来往大陆通行证, 214-大陆居民往来台湾通行证, 215-外国人居留证, 216-外交官证 299-其他个人证件(数电票特有) */
    private String managerCardType;
    /* 经办人证件号码（数电票特有字段） */
    private String managerCardNo;
    private String bField1;
    private String bField2;
    private String bField3;
    /* 购买方自然人标志：0-否，1-是（数电普票（电子）时才有可能返回，为1时，版式文件上在购方名称最后面会额外显示 （个人） ） */
    private String naturalPersonFlag;
    /* 发票明细集合 */
    private List<InvoiceItemsVo> invoiceItems;

}
