package com.xingxi.common.mq.bo.invoice;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;

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

/**
 * 发票信息对象
 * 
 * @author xingxi
 * @date 2022-02-17
 */
@Data
@ToString
public class InvoiceBO
{
    /** 编号 */
    private Long id;

    /** 发票请求唯一流水号 */
    private String fpqqlsh;

    /** 平台编码 */
    private String dsptbm;

    /** 开票方识别号 */
    private String nsrsbh;

    /** 开票方名称 */
    private String nsrmc;

    /** 分机号 */
    private Long fjh;

    /** 开票方电子档案号 */
    private String nsrdzdah;

    /** 税务机构代码 */
    private String swjgDm;

    /** 代开标志 */
    private String dkbz;

    /** 收购标志 */
    private String sgbz;

    /** 票样代码 */
    private String pydm;

    /** 主要开票项目 */
    private String kpxm;

    /** 编码表版本号 */
    private String bmbBbh;

    /** 销方识别号 */
    private String xhfNsrsbh;

    /** 销方名称 */
    private String xhfmc;

    /** 销方地址 */
    private String xhfDz;

    /** 销方电话 */
    private String xhfDh;

    /** 销方银行名称 */
    private String xhfYh;

    /** 销方银行账号 */
    private String xhfYhzh;

    /** 购货方名称 */
    private String ghfmc;

    /** 购货方税号 */
    private String ghfNsrsbh;

    /** 购货方地址 */
    private String ghfDz;

    /** 购货方省份 */
    private String ghfSf;

    /** 购货方固定电话 */
    private String ghfGddh;

    /** 购货方手机 */
    private String ghfSj;

    /** 购货方邮箱 */
    private String ghfEmail;

    /** 购货方企业类型 */
    private String ghfqylx;

    /** 购货方银行名称 */
    private String ghfYh;

    /** 购货方银行账号 */
    private String ghfYhzh;

    /** 行业代码 */
    private String hyDm;

    /** 行业名称 */
    private String hyMc;

    /** 开票员 */
    private String kpy;

    /** 收款员 */
    private String sky;

    /** 复核人 */
    private String fhr;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date kprq;

    /** 开票类型 */
    private Integer kplx;

    /** 原发票代码 */
    private String yfpDm;

    /** 原发票号码 */
    private String yfpHm;

    /** 特殊冲红标志 */
    private String tschbz;

    /** 操作代码 */
    private String czdm;

    /** 清单标志 */
    private String qdBz;

    /** 清单发票项目名称 */
    private String QDXMMC;

    /** 冲红原因 */
    private String chyy;

    /** 价税合计金额 */
    private BigDecimal kphjje;

    /** 合计不含税金额 */
    private BigDecimal hjbhsje;

    /** 合计税额 */
    private BigDecimal hjse;

    /** 备注 */
    private String bz;

    /** 备用字段1 */
    private String byzd1;

    /** 备用字段2 */
    private String byzd2;

    /** 备用字段3 */
    private String byzd3;

    /** 备用字段4 */
    private String byzd4;

    /** 备用字段5 */
    private String byzd5;

    /** 订单号 */
    private String ddh;

    /** 退货单号 */
    private String thdh;

    /** 订单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dddate;

    /** 返回Code */
    private String returnCode;

    /** 返回信息 */
    private String returnMessage;

    /** 销方用户ID */
    private Long sellerId;

    /** 购方用户ID */
    private Long buyerId;

    /** 申请发票ID */
    private Long applyId;

    /** 申请发票内部编号 */
    private String applyNo;

    /** 税率 */
    private String taxRate;

    /** 开票方式 */
    private String invoiceMode;

    /** 开票状态 */
    private String invoiceStatus;

}
