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

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

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

/**
 * 开票信息对象 bill_info
 *
 * @author tianenhui
 * @date 2020-12-06
 */
@Data
public class HxRedInfoDTO {

    /**
     * 主键ID
     */
    // @JSONField(name = "billNo")
    // private Long id;

    /**
     * 本系统订单号，本系统全局唯一
     */
    // @JSONField(name = "billNo")
    // private String systemOrderno;

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

    /**
     * 流水号
     */
    // (name = "流水号")
    // @JSONField(name = "billNo")
    // private String fpqqlsh;

    /**
     * bill_info表的bill_id
     */
    // (name = "bill_info表的bill_id")
    // @JSONField(name = "billNo")
    // private Long billInfoId;

    /**
     * 信息表编号
     */
    // (name = "信息表编号")
    // @JSONField(name = "billNo")
    // private String redInfoNo;

    /**
     * 信息表状态
     */
    // (name = "信息表状态")
    // @JSONField(name = "billNo")
    // private String redInfoStatus;

    /**
     * 信息表状态描述
     */
    // (name = "信息表状态描述")
    // @JSONField(name = "billNo")
    // private String redInfoMessage;

    /**
     * 信息表类型
     */
    // (name = "信息表类型")
    // @JSONField(name = "billNo")
    // private String redInfoType;

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

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

    /**
     * 税种类别
     */
    // (name = "税种类别")
    // @JSONField(name = "billNo")
    // private String taxType;

    /**
     * 多税率标志
     */
    // (name = "多税率标志")
    // @JSONField(name = "billNo")
    // private String multTaxRate;

    /**
     * 填开日期
     */
    // (name = "填开日期")
    @JSONField(name = "billTime")
    private String billInputTime;

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

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

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

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

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

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

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

    /**
     * 申请说明
     */
    // (name = "申请说明")
    @JSONField(name = "applyRemark")
    private String applyRemark;

    /**
     * 申请表pdf 地址
     */
    // (name = "申请表pdf 地址")
    // @JSONField(name = "billNo")
    // private String pdfUrl;

    /**
     * 商品编码版本号
     */
    // (name = "商品编码版本号")
    // @JSONField(name = "billNo")
    // private String bmbbh;

    /**
     * 营业税标志
     */
    // (name = "营业税标志")
    // @JSONField(name = "billNo")
    // private String businessTaxCode;

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    // (name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    // @JSONField(name = "billTime")
    private Date applyTime;

    /**
     * 发票种类 invoice_type（ p电子增值税普通发票 c增值税普通发票 s 增值税专用发票 e 收购发票 f 收购发票 r增值税普通发票）
     */
    // (name = "发票种类 invoice_type", readConverterExp = "p=电子增值税普通发票,c=增值税普通发票,s=,增=值税专用发票,e=,收=购发票,f=,收=购发票,r=增值税普通发票")
    @JSONField(name = "invoiceLine")
    private String invoiceType;

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

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

    /**
     * 设备编号
     */
    // (name = "设备编号")
    // @JSONField(name = "billNo")
    private String jspbh;

    /**
     * 所属月份
     */
    // (name = "所属月份")
    // @JSONField(name = "billNo")
    private String ssyf;

    /**
     * 税率
     */
    // (name = "税率")
    // @JSONField(name = "billNo")
    private BigDecimal taxrate;

    /**
     * 申请选择
     */
    // (name = "申请选择")
    // @JSONField(name = "billNo")
    private String sqxz;

    /**
     * 经办人
     */
    // (name = "经办人")
    @JSONField(name = "operator")
    private String jbr;

    /**
     * 申请方税号
     */
    // (name = "申请方税号")
    // @JSONField(name = "billNo")
    private String reqnsrsbh;

    /**
     * 红字信息表详情信息
     */
    @JSONField(name = "invoiceRedApplyDetails")
    private List<HxRedInfoDetailsDTO> redinfodetailList;

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

    /**
     * 原发票开票日期
     */
    @JSONField(name = "originKprq")
    private String originKprq;


    /**
     * 信息表特殊标识
     */
    @JSONField(name = "redInfoSpecFlag")
    private String redInfoSpecFlag;

    @JSONField(name = "businessTaxCode")
    private String businessTaxCode;

}
