package com.jianshui.invoice.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jianshui.common.annotation.Excel;
import com.jianshui.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 发票明细对象 bill_detail
 * 
 * @author Gong Quanlin
 * @date 2022-03-26
 */
public class BillDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 发票信息ID */
    @Excel(name = "发票信息ID")
    private Long billInfoId;

    /** 明细序号 */
    @Excel(name = "明细序号")
    private Long index;

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

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

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

    /** 含税标志 */
    @Excel(name = "含税标志")
    private Integer hsbz;

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

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

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

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

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

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

    /** 发票行性质 */
    @Excel(name = "发票行性质")
    private Integer fphxz;

    /** 优惠政策标识 */
    @Excel(name = "优惠政策标识")
    private Integer yhzcbs;

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

    /** 零税率标识 */
    @Excel(name = "零税率标识")
    private String lslbs;

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

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

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

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

    /** 特殊票种 */
    @Excel(name = "特殊票种")
    private String tspz;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date updatedTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setBillInfoId(Long billInfoId) 
    {
        this.billInfoId = billInfoId;
    }

    public Long getBillInfoId() 
    {
        return billInfoId;
    }
    public void setIndex(Long index) 
    {
        this.index = index;
    }

    public Long getIndex() 
    {
        return index;
    }
    public void setGoodName(String goodName) 
    {
        this.goodName = goodName;
    }

    public String getGoodName() 
    {
        return goodName;
    }
    public void setNum(BigDecimal num) 
    {
        this.num = num;
    }

    public BigDecimal getNum() 
    {
        return num;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setHsbz(Integer hsbz) 
    {
        this.hsbz = hsbz;
    }

    public Integer getHsbz() 
    {
        return hsbz;
    }
    public void setTaxrate(BigDecimal taxrate) 
    {
        this.taxrate = taxrate;
    }

    public BigDecimal getTaxrate() 
    {
        return taxrate;
    }
    public void setSpec(String spec) 
    {
        this.spec = spec;
    }

    public String getSpec() 
    {
        return spec;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setSpbm(String spbm) 
    {
        this.spbm = spbm;
    }

    public String getSpbm() 
    {
        return spbm;
    }
    public void setBmbbh(String bmbbh) 
    {
        this.bmbbh = bmbbh;
    }

    public String getBmbbh() 
    {
        return bmbbh;
    }
    public void setZsbm(String zsbm) 
    {
        this.zsbm = zsbm;
    }

    public String getZsbm() 
    {
        return zsbm;
    }
    public void setFphxz(Integer fphxz) 
    {
        this.fphxz = fphxz;
    }

    public Integer getFphxz() 
    {
        return fphxz;
    }
    public void setYhzcbs(Integer yhzcbs) 
    {
        this.yhzcbs = yhzcbs;
    }

    public Integer getYhzcbs() 
    {
        return yhzcbs;
    }
    public void setZzstsgl(String zzstsgl) 
    {
        this.zzstsgl = zzstsgl;
    }

    public String getZzstsgl() 
    {
        return zzstsgl;
    }
    public void setLslbs(String lslbs) 
    {
        this.lslbs = lslbs;
    }

    public String getLslbs() 
    {
        return lslbs;
    }
    public void setKce(BigDecimal kce) 
    {
        this.kce = kce;
    }

    public BigDecimal getKce() 
    {
        return kce;
    }
    public void setTaxfreeamt(BigDecimal taxfreeamt) 
    {
        this.taxfreeamt = taxfreeamt;
    }

    public BigDecimal getTaxfreeamt() 
    {
        return taxfreeamt;
    }
    public void setTax(BigDecimal tax) 
    {
        this.tax = tax;
    }

    public BigDecimal getTax() 
    {
        return tax;
    }
    public void setTaxamt(BigDecimal taxamt) 
    {
        this.taxamt = taxamt;
    }

    public BigDecimal getTaxamt() 
    {
        return taxamt;
    }
    public void setTspz(String tspz) 
    {
        this.tspz = tspz;
    }

    public String getTspz() 
    {
        return tspz;
    }
    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("billInfoId", getBillInfoId())
            .append("index", getIndex())
            .append("goodName", getGoodName())
            .append("num", getNum())
            .append("price", getPrice())
            .append("hsbz", getHsbz())
            .append("taxrate", getTaxrate())
            .append("spec", getSpec())
            .append("unit", getUnit())
            .append("spbm", getSpbm())
            .append("bmbbh", getBmbbh())
            .append("zsbm", getZsbm())
            .append("fphxz", getFphxz())
            .append("yhzcbs", getYhzcbs())
            .append("zzstsgl", getZzstsgl())
            .append("lslbs", getLslbs())
            .append("kce", getKce())
            .append("taxfreeamt", getTaxfreeamt())
            .append("tax", getTax())
            .append("taxamt", getTaxamt())
            .append("tspz", getTspz())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updatedTime", getUpdatedTime())
            .toString();
    }
}
