package com.jianshui.invoice.domain.dto.adapter.response.nuonuo2;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.jianshui.common.annotation.Excel;
import com.jianshui.invoice.domain.Invoice;
import com.jianshui.invoice.domain.InvoiceDetail;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description
 * @Author 巩权林
 * @Date 2022/4/14 00:45
 **/
@Data
public class Invoice2Nuonuo2 {

    /**
     * 系统订单号
     */
    @JSONField(name = "serialNo")
    private String systemOrderno;

    /**
     * 客户订单号
     */
    @JSONField(name = "orderNo")
    private String outTradeOrderno;

    /**
     * 发票种类
     */
    @JSONField(name = "invoiceKind")
    private String invoiceType;

    /**
     * 开票状态
     */
    @JSONField(name = "status")
    private Integer state;

    /**
     * 发票代码
     */
    @JSONField(name = "invoiceCode")
    private String fpdm;

    /**
     * 发票号码
     */
    @JSONField(name = "invoiceNo")
    private String fphm;

    /**
     * 开票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "invoiceTime")
    private Date kprq;

    /**
     * 购方名称
     */
    @JSONField(name = "payerName")
    private String buyerName;

    /**
     * 购方税号
     */
    @JSONField(name = "payerTaxNo")
    private String buyerTaxnum;

    /**
     * 购方地址
     */
    @JSONField(name = "address")
    private String buyerAddress;

    /**
     * 购方电话
     */
    @JSONField(name = "telephone")
    private String buyerTelephone;

    /**
     * 购方开户行及账户
     */
    @JSONField(name = "bankAccount")
    private String buyerAccount;

    /**
     * 购方邮箱
     */
    @JSONField(name = "notifyEmail")
    private String buyerEmail;

    /**
     * 购方联系电话，可空
     */
    @JSONField(name = "phone")
    private String buyerPhone;

    /**
     * 销方名称
     */
    @JSONField(name = "saleName")
    private String sellerName;

    /**
     * 销方税号
     */
    @JSONField(name = "salerTaxNum")
    private String sellerTaxnum;

    /**
     * 销方地址
     */
    @JSONField(name = "salerAddress")
    private String sellerAddress;

    /**
     * 销方电话
     */
    @JSONField(name = "salerTel")
    private String sellerTelephone;

    /**
     * 销方开户行及账户
     */
    @JSONField(name = "salerAccount")
    private String sellerAccount;

    /**
     * 备注
     */
    @JSONField(name = "remark")
    private String message;

    /**
     * 开票人
     */
    @JSONField(name = "clerk")
    private String clerk;

    /**
     * 收款人
     */
    @JSONField(name = "payee")
    private String payee;

    /**
     * 复核人
     */
    @JSONField(name = "checker")
    private String checker;

    /**
     * 不含税金额
     */
    @JSONField(name = "exTaxAmount")
    private BigDecimal taxfreeamt;

    /**
     * 税额
     */
    @JSONField(name = "taxAmount")
    private BigDecimal tax;

    /**
     * 含税金额
     */
    @JSONField(name = "orderAmount")
    private BigDecimal taxamt;


    /**
     * 校验码
     */
    @JSONField(name = "checkCode")
    private String jym;

    /**
     * 二维码
     */
    @JSONField(name = "qrCode")
    private String qrCode;

    /**
     * 税控设备号
     */
    @JSONField(name = "machineCode")
    private String machineCode;

    /**
     * 发票密文
     */
    @JSONField(name = "cipherText")
    private String cipherText;

    /**
     * 发票 pdf 地址
     */
    @JSONField(name = "paperPdfUrl")
    private String invoicePdfUrl;

    /**
     * 发票详情地址
     */
    @JSONField(name = "imgUrls")
    private String invoiceJpgUrl;

    /**
     * 开票信息，成功或者失败的信息
     */
    @JSONField(name = "failCause")
    private String invoiceMsg;

    /**
     * 结果信息
     */
    @JSONField(name = "statusMsg")
    private String invoiceResultMsg;

    /**
     * 成品油标志
     */
    @JSONField(name = "productOilFlag")
    private String productOilFlag;

    /**
     * 清单标志
     */
    @JSONField(name = "listFlag")
    private String qdbz;

    /**
     * ofdUrl
     */
    @JSONField(name = "ofdUrl")
    private String cOfdUrl;

    /**
     * 分机号
     */
    @JSONField(name = "extensionNumber")
    private String fjh;

    /**
     * 终端号
     */
    @JSONField(name = "terminalNumber")
    private String terminalNumber;

    /**
     * 已开发票明细信息
     */
    @JSONField(name = "invoiceItems")
    private List<InvoiceDetail2Nuonuo2> invoiceDetailList;
}
