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

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

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

/**
 * @Description
 * @Author 巩权林
 * @Date 2022/4/13 16:29
 **/
@Data
public class Nuonuo2BillInfoDTO {

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

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

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

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

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

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

    /**
     * 购货方开户行名称
     */
    // private String buyerBank;

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

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

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

    /**
     * 销方名称
     */
    // 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;

    /**
     * 销方开户行名称
     */
    // private String sellerBank;

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

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

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

    /**
     * 红字信息表编号
     */
    @JSONField(name = "billInfoNo")
    private String redInvoiceInfoCode;

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

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

    /**
     * 开票类型
     */
    @JSONField(name = "invoiceType")
    private String kptype;

    /**
     * 原billInfo订单号
     */
    // private String originSystemOrderno;

    /**
     * 编码表编号
     */
    // private String bmbbh;

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

    /**
     * 原发票号码
     */
    @JSONField(name = "invoiceNum")
    private String originFphm;

    /**
     * 推送方式
     */
    @JSONField(name = "pushMode")
    private String tsfs;

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

    /**
     * 清单项目名称
     */
    @JSONField(name = "listName")
    private String qdxmmc;

    /**
     * 代开标志
     */
    @JSONField(name = "proxyInvoiceFlag")
    private String dkbz;

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

    /**
     * 开票状态
     */
    // private Integer state;

    /**
     * 订单来源
     */
    // private String source;

    /**
     * 服务公司
     */
    // private String serviceSupplierKey;

    /**
     * 单据类型
     */
    // private String billType;

    /**
     * 业务留存字段
     */
    // private String businessRemark;

    /**
     * 不含税金额
     */
    private BigDecimal taxfreeamt;

    /**
     * 开票时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date invoicedTime;

    /**
     * 税额
     */
    private BigDecimal tax;

    /**
     * 含税金额
     */
    private BigDecimal taxamt;

    /**
     * 回调地址
     */
    @JSONField(name = "callBackUrl")
    private String callbackUrl;

    @JSONField(name = "invoiceDetail")
    List<Nuonuo2BillDetailDTO> billDetailList;

}
