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

import com.alibaba.fastjson.annotation.JSONField;
import com.jianshui.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 发票明细对象 bill_detail
 *
 * @author tianenhui
 * @date 2020-12-06
 */
@Data
public class HxBillDetailDTO implements Serializable {
    @JSONField(name = "final long serialVersionUID = 1L")
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Excel(name = "主键ID")
    @JSONField(name = "detailId")
    private Long detailId;

    /**
     * 发票信息ID
     */
    @Excel(name = "发票信息ID")
    @JSONField(name = "billId")
    private String billId;

    /**
     * 开票订单号
     */
    @Excel(name = "开票订单号")
    @JSONField(name = "orderno")
    private String orderno;

    /**
     * 订单ID
     */
    @Excel(name = "订单ID")
    @JSONField(name = "orderId")
    private String orderId;

    /**
     * 商品ID
     */
    @Excel(name = "商品ID")
    @JSONField(name = "productId")
    private String productId;

    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    @JSONField(name = "goodsname")
    private String goodName;

    /**
     * 数量
     */
    @Excel(name = "数量")
    @JSONField(name = "num")
    private BigDecimal num;

    /**
     * 单价
     */
    @Excel(name = "单价")
    @JSONField(name = "price")
    private BigDecimal price;

    /**
     * 单价含税标志（0 不含税 1 含税）
     */
    @Excel(name = "单价含税标志", readConverterExp = "0=不含税,1=含税")
    @JSONField(name = "hsbz")
    private Integer hsbz;

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

    /**
     * 规格型号
     */
    @Excel(name = "规格型号")
    @JSONField(name = "spec")
    private String spec;

    /**
     * 单位
     */
    @Excel(name = "单位")
    @JSONField(name = "unit")
    private String unit;

    /**
     * 税收分类编码
     */
    @Excel(name = "税收分类编码")
    @JSONField(name = "spbm")
    private String spbm;

    /**
     * 自行编码
     */
    @Excel(name = "自行编码")
    @JSONField(name = "zsbm")
    private String zsbm;

    /**
     * 发票行性质（0正常行 1折扣行 2被折扣行）
     */
    @Excel(name = "发票行性质", readConverterExp = "0=正常行,1=折扣行,2=被折扣行")
    @JSONField(name = "fphxz")
    private Integer fphxz;

    /**
     * 优惠政策标识（0不使用 1使用）
     */
    @Excel(name = "是否使用优惠政策", readConverterExp = "0=不使用,1=使用")
    @JSONField(name = "yhzcbs")
    private Integer yhzcbs;

    /**
     * 增值税特殊管理
     */
    @Excel(name = "增值税特殊管理")
    @JSONField(name = "zzstsgl")
    private String zzstsgl;

    /**
     * 零税率标识
     */
    @Excel(name = "零税率标识", readConverterExp = "1=免税,2=不征税,3=普通零税率")
    @JSONField(name = "lslbs")
    private String lslbs;

    /**
     * 扣除额
     */
    @Excel(name = "扣除额")
    @JSONField(name = "kce")
    private BigDecimal kce;

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

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

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

    /**
     * 备注
     */
    @Excel(name = "备注")
    @JSONField(name = "memo")
    private String memo;

    @JSONField(name = "createTime")
    private String createTime;
    //特殊票种
    @JSONField(name = "tspz")
    private String tspz;
    //超限额自动拆分
    @JSONField(name = "cxezdcf")
    private String cxezdcf;
    //重新计算单价和数量
    @JSONField(name = "cxjsdjsl")
    private String cxjsdjsl;
    //折扣
    @JSONField(name = "discount")
    private String discount;

















}
